Technologie Informacyjne Wykład 7
|
|
- Kamil Małek
- 6 lat temu
- Przeglądów:
Transkrypt
1 Technologie Informacyjne Wykład 7 Algorytmy. Podstawowe konstrukcje algorytmiczne (przegląd, podział zadania, programowanie dynamiczne, rekurencja,... ) Wojciech Myszka Jakub Słowiński Instytut Materiałoznawstwa i Mechaniki Technicznej Wydział Mechaniczny Politechnika Wrocławska 2014 (IMMT PWr) TI-W / 1
2 Krótkie podsumowanie Krótkie podsumowanie Wiemy: (IMMT PWr) TI-W / 1
3 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer (IMMT PWr) TI-W / 1
4 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. (IMMT PWr) TI-W / 1
5 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... (IMMT PWr) TI-W / 1
6 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa (IMMT PWr) TI-W / 1
7 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa 5 troszeczkę o tym, że komputery potrzebują programów (IMMT PWr) TI-W / 1
8 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa 5 troszeczkę o tym, że komputery potrzebują programów 6 co to jest program (IMMT PWr) TI-W / 1
9 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa 5 troszeczkę o tym, że komputery potrzebują programów 6 co to jest program (IMMT PWr) TI-W / 1
10 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa 5 troszeczkę o tym, że komputery potrzebują programów 6 co to jest program Nie bardzo wiemy: (IMMT PWr) TI-W / 1
11 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa 5 troszeczkę o tym, że komputery potrzebują programów 6 co to jest program Nie bardzo wiemy: 1 skąd się bierze program (IMMT PWr) TI-W / 1
12 Krótkie podsumowanie Krótkie podsumowanie Wiemy: 1 co to jest komputer 2 z jakich elementów jest skonstruowany. 3 co to jest procesor... 4 i jak działa 5 troszeczkę o tym, że komputery potrzebują programów 6 co to jest program Nie bardzo wiemy: 1 skąd się bierze program 2 i czy na pewno jest niezbędny... (IMMT PWr) TI-W / 1
13 Jak powstaje program Jak powstaje program Na podstawie (IMMT PWr) TI-W / 1
14 Jak powstaje program Jak powstaje program Tak opowiedział klient (IMMT PWr) TI-W / 1
15 Jak powstaje program Jak powstaje program Tak opowiedział klient Tak zrozumiał kierownik projektu (IMMT PWr) TI-W / 1
16 Jak powstaje program Jak powstaje program Tak opowiedział klient Tak zrozumiał kierownik projektu Tak zaprojektowali analitycy (IMMT PWr) TI-W / 1
17 Jak powstaje program Jak powstaje program Tak zaprogramowali programiści (IMMT PWr) TI-W / 1
18 Jak powstaje program Jak powstaje program Tak zaprogramowali programiści Tak zobaczyli to beta-testerzy (IMMT PWr) TI-W / 1
19 Jak powstaje program Jak powstaje program Tak zaprogramowali programiści Tak zobaczyli to beta-testerzy Tak przedstawia marketing (IMMT PWr) TI-W / 1
20 Jak powstaje program Jak powstaje program Tak wygląda dokumentacja (IMMT PWr) TI-W / 1
21 Jak powstaje program Jak powstaje program Tak wygląda dokumentacja Tak wygląda po zainstalowaniu u klienta (IMMT PWr) TI-W / 1
22 Jak powstaje program Jak powstaje program Tak wygląda dokumentacja Tak wygląda po zainstalowaniu u klienta Za co klient zapłacił (IMMT PWr) TI-W / 1
23 Jak powstaje program Jak powstaje program Tak wygląda wsparcie (IMMT PWr) TI-W / 1
24 Jak powstaje program Jak powstaje program Tak wygląda wsparcie Tak wyglądają procedury awaryjne (IMMT PWr) TI-W / 1
25 Jak powstaje program Jak powstaje program Tak wygląda wsparcie Tak wyglądają procedury awaryjne Tego klient potrzebował (IMMT PWr) TI-W / 1
26 Jak powstaje program Jak powstaje program To był oczywiście żart... (IMMT PWr) TI-W / 1
27 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: (IMMT PWr) TI-W / 1
28 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem (IMMT PWr) TI-W / 1
29 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) (IMMT PWr) TI-W / 1
30 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie (IMMT PWr) TI-W / 1
31 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie Testy (IMMT PWr) TI-W / 1
32 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie Testy Dokumentacja (IMMT PWr) TI-W / 1
33 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie Testy Dokumentacja Instalacja u klienta (IMMT PWr) TI-W / 1
34 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie Testy Dokumentacja Instalacja u klienta Eksploatacja/Wsparcie (IMMT PWr) TI-W / 1
35 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie Testy Dokumentacja Instalacja u klienta Eksploatacja/Wsparcie... (IMMT PWr) TI-W / 1
36 Jak powstaje program Jak powstaje program To był oczywiście żart... Ale to jest jakoś tak: Rozmowa z klientem Projekt i algorytm(y) Programowanie Testy Dokumentacja Instalacja u klienta Eksploatacja/Wsparcie... (IMMT PWr) TI-W / 1
37 Co to sa algorytmy? Algorytmy... Codzienne czynności zwykle wykonuje się w określonym porządku, wiele z nich jest jedno- lub dwustronnie zależnych. Przykładem niech będzie sprzątanie: mycie okien, zmiana firanek, wytarcie mebli, odkurzenie i umycie podłogi. Czynności te dają wykonać się pojedynczo niezależnie, ale żeby sprzątanie miało sens należy wykonać je w pewnej (z góry) określonej kolejności. Podobnie rzecz ma się z operacjami, które wykonywać będzie, w ramach określonego programu, komputer. Zautomatyzowany, zapisany w określonym języku programowania algorytm będzie programem, wykonywanym przez maszynę lub urządzenie (lub ich zestaw). (IMMT PWr) TI-W / 1
38 Co to sa algorytmy? Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). (IMMT PWr) TI-W / 1
39 Co to sa algorytmy? Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). Pochodzi od nazwiska Abu Abdallah Muhammad ibn Musa al-khwarizmi perskiego matematyka (IX w.) i pierwotnie oznaczało (każde) obliczenia w dziesiętnym systemie obliczeniowym. (IMMT PWr) TI-W / 1
40 Co to sa algorytmy? Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). Pochodzi od nazwiska Abu Abdallah Muhammad ibn Musa al-khwarizmi perskiego matematyka (IX w.) i pierwotnie oznaczało (każde) obliczenia w dziesiętnym systemie obliczeniowym.algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych. (Wikipedia) (IMMT PWr) TI-W / 1
41 Co to sa algorytmy? Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). Pochodzi od nazwiska Abu Abdallah Muhammad ibn Musa al-khwarizmi perskiego matematyka (IX w.) i pierwotnie oznaczało (każde) obliczenia w dziesiętnym systemie obliczeniowym.algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych. (Wikipedia)Czasami rezygnuje się z żądania skończoności. Czasami, jeżeli algorytm się nie kończy nazywamy go metodą obliczeniową. (IMMT PWr) TI-W / 1
42 Przepis kucharski Algorytm I Przepis kucharski Składniki: 22 dag twardej czekolady półsłodkiej, 2 łyżki stołowe 1 wody, filiżanki cukru pudru, 6 jajek rozdzielonych na żółtka 4 i białka... (IMMT PWr) TI-W / 1
43 Przepis kucharski Algorytm II Przepis kucharski Przepis: Włóż czekoladę z dwiema łyżkami stołowymi wody do garnka o podwójnym dnie. Kiedy czekolada się rozpuści, domieszaj cukier puder; dodaj po trochu masło. Odstaw. Ubijaj żółtka około 5 minut, aż staną się gęste i nabiorą koloru cytrynowego. Delikatnie dołóż czekoladę. Ponownie lekko podgrzej, aby rozpuścić czekoladę, jeśli to będzie konieczne. Domieszaj rum i wanilię. Ubijaj białka aż do spienienia. Ubijając dodaj 2 łyżki stołowe cukru i ubijaj dalej, aż (IMMT PWr) TI-W / 1
44 Przepis kucharski Algorytm III Przepis kucharski utworzą się sztywne pagórki. Delikatnie połącz białka z masą czekoladowo-żółtkową. Wlej do salaterek (oddzielnych naczyń), które będą podane na stół. Ochładzaj przez co najmniej 4 godziny. Wedle życzenia podawaj z bitą śmietaną. Wyjdzie z tego 6 do 8 porcji. (IMMT PWr) TI-W / 1
45 Algorytm Euklidesa Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: (IMMT PWr) TI-W / 1
46 Algorytm Euklidesa Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. (IMMT PWr) TI-W / 1
47 Algorytm Euklidesa Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) (IMMT PWr) TI-W / 1
48 Algorytm Euklidesa Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. (IMMT PWr) TI-W / 1
49 Algorytm Euklidesa Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
50 Algorytm Euklidesa Dzielenie z resztą Dygresja 5 3 = (IMMT PWr) TI-W / 1
51 Algorytm Euklidesa Dzielenie z resztą Dygresja 5 3 = (IMMT PWr) TI-W / 1
52 Algorytm Euklidesa Dzielenie z resztą Dygresja 5 3 = = (6) (IMMT PWr) TI-W / 1
53 Algorytm Euklidesa Dzielenie z resztą Dygresja 5 3 = = (6) = (IMMT PWr) TI-W / 1
54 Algorytm Euklidesa Dzielenie z resztą Dygresja 5 3 = = (6) = = 1 reszta 2 (IMMT PWr) TI-W / 1
55 Algorytm Euklidesa Dzielenie z resztą Dygresja bo 5 3 = = (6) = = 1 reszta = 5 (IMMT PWr) TI-W / 1
56 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
57 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r /44 = 0 r 24 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
58 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
59 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
60 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
61 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r /24 = 1 r 20 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
62 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
63 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
64 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
65 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r /20 = 1 r 4 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
66 Algorytm Euklidesa Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
67 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r l 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
68 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r l 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
69 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r /4 = 5 r 0 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
70 Algorytm Euklidesa Algorytm Euklidesa Przykład m n r l 1 [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2 [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3 [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1. (IMMT PWr) TI-W / 1
71 Cechy algorytmu Skończoność Po pierwsze powinien być skończony; oznacza to, że po skończonej (być może bardzo dużej) liczbie kroków algorytm się zatrzyma. 1 Pytanie pomocnicze: Co gwarantuje, że algorytm Euklidesa zakończy się w skończonej liczbie kroków? Procedura, która ma wszystkie cechy algorytmu poza skończonością nazywana jest metodą obliczeniową. Podaj przykłady metod obliczeniowych realizowanych przez rzeczywiste komputery. 1 Ale sama skończoność to jednak za mało z praktycznego punktu widzenia dobry algorytm powinien gwarantować, że obliczenia zostaną zakończone w skończonym ale rozsądnym czasie! (IMMT PWr) TI-W / 1
72 Cechy algorytmu Cechy algorytmu II Dobre zdefiniowanie Po drugie powinien być dobrze zdefiniowany. Każdy krok algorytmu musi być opisany precyzyjnie. Wszystkie możliwe przypadki powinny być uwzględnione, a podejmowane akcje dobrze opisane. 2 Oczywiście język naturalny nie jest wystarczająco precyzyjny może to prowadzić do nieporozumień. z tego powodu używa się bardziej formalnych sposobów zapisu algorytmów, aż po języki programowania... 2 Zwracam też uwagę, że algorytmy kucharskie nie są odpowiednio precyzyjne: co to znaczy lekko podgrzej? (IMMT PWr) TI-W / 1
73 Cechy algorytmu Cechy algorytmu III Dane wejściowe Po trzecie powinien mieć precyzyjnie zdefiniowane dane wejściowe. Pewne algorytmy mogą nie mieć danych wejściowych (mieć zero danych wejściowych). Dane wejściowe to wartości, które muszą być zdefiniowane zanim rozpocznie się wykonanie algorytmu. (IMMT PWr) TI-W / 1
74 Cechy algorytmu Cechy algorytmu IV Dane wyjściowe Po czwarte zdefiniowane dane wyjściowe. Daną wyjściową algorytmu Euklidesa jest liczna n która jest naprawdę największym wspólnym dzielnikiem danych wejściowych. Osobną sprawą jest pokazanie skąd wynika, że wynik algorytmu Euklidesa jest rzeczywiście NWD liczb m i n. (IMMT PWr) TI-W / 1
75 Cechy algorytmu Cechy algorytmu V Efektywność Po piąte algorytm powinien być określony efektywnie to znaczy jego operacje powinny być wystarczająco proste by można je (teoretycznie?) wykonać w skończonym czasie z wykorzystaniem kartki i ołówka. (IMMT PWr) TI-W / 1
76 Sposoby zapisu algorytmów Zapis algorytmu 1 Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie rozkazującym. (IMMT PWr) TI-W / 1
77 Sposoby zapisu algorytmów Zapis algorytmu 1 Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie rozkazującym. 2 Schematy blokowe. O tym za chwilę... (IMMT PWr) TI-W / 1
78 Sposoby zapisu algorytmów Zapis algorytmu 1 Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie rozkazującym. 2 Schematy blokowe. O tym za chwilę... 3 Tablice decyzyjne. O tym później... (IMMT PWr) TI-W / 1
79 Sposoby zapisu algorytmów Zapis algorytmu 1 Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie rozkazującym. 2 Schematy blokowe. O tym za chwilę... 3 Tablice decyzyjne. O tym później... 4 Pseudojęzyk rodzaj formalnego zapisu podobny do... (IMMT PWr) TI-W / 1
80 Sposoby zapisu algorytmów Zapis algorytmu 1 Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie rozkazującym. 2 Schematy blokowe. O tym za chwilę... 3 Tablice decyzyjne. O tym później... 4 Pseudojęzyk rodzaj formalnego zapisu podobny do... 5 Język programowania. Następny semestr??? Wcale!!? (IMMT PWr) TI-W / 1
81 Sposoby zapisu algorytmów Zapis algorytmu Schemat blokowy Schemat blokowy (ang. block diagram, flowchart) diagram, na którym procedura, system albo program komputerowy, są reprezentowane przez opisane figury geometryczne połączone liniami zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu rozwiązania zadania. Schemat blokowy pozwala dostrzec istotne etapy algorytmu i logiczne zależności między nimi. Zależnie od przedstawianego zagadnienia stosowane są różne zestawy figur geometrycznych zwanych blokami, których kształty reprezentują umownie rodzaje elementów składowych. (IMMT PWr) TI-W / 1
82 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok graniczny Blok graniczny oznacza on początek, koniec, przerwanie lub wstrzymanie wykonywania działania, np. blok startu programu. (IMMT PWr) TI-W / 1
83 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok wejścia-wyjści Blok wejścia-wyjścia przedstawia czynność wprowadzania danych do programu i przyporządkowania ich zmiennym dla późniejszego wykorzystania jak i wyprowadzenia wyników obliczeń, np. czytaj z, pisz z+10. (IMMT PWr) TI-W / 1
84 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok obliczeniowy Blok obliczeniowy oznacza wykonanie operacji w efekcie, której zmienią się wartości, postać lub miejsce zapisu danych, np. z = z + 1. (IMMT PWr) TI-W / 1
85 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok decyzyjny Blok decyzyjny przedstawia wybór jednego z dwóch wariantów wykonywania programu na podstawie sprawdzenia warunku wpisanego w ów blok, np. a = b. (IMMT PWr) TI-W / 1
86 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok wywołania podprogramu Blok wywołania podprogramu oznacza zmianę wykonywanej czynności na skutek wywołania podprogramu, np. MAX(x,y,z) (IMMT PWr) TI-W / 1
87 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok fragmentu Blok fragmentu przedstawia część programu zdefiniowanego odrębnie, np. sortowanie. (IMMT PWr) TI-W / 1
88 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Blok komentarza Blok komentarza pozwala wprowadzać komentarze wyjaśniające poszczególne części schematu co ułatwia zrozumienie go czytającemu, np. wprowadzenie danych. (IMMT PWr) TI-W / 1
89 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Łącznik wewnętrzny Łącznik wewnętrzny służy do łączenia odrębnych części schematu znajdujących się na tej samej stronie, powiązane ze sobą łączniki oznaczone są tym samym napisem, np. A1, 7. (IMMT PWr) TI-W / 1
90 Sposoby zapisu algorytmów Symbole używane na schematach blokowych Schemat blokowy Łącznik zewnętrzny Łącznik zewnętrzny służy do łączenia odrębnych części schematu znajdujących się na odrębnych stronach, powinien być opisany jak łącznik wewnętrzny, poza tym powinien zawierać numer strony, do której się odwołuje, np. 4.3, 2,B2. (IMMT PWr) TI-W / 1
91 Tablice decyzyjne Tablice decyzyjne Alternatywa dla schematu blokowego. Bardzo wygodne w przypadku opisu problemów z ogromną ilością decyzji. Nieźle nadaje się do opisu problemów z życia wziętych. Średnie zastosowanie w przypadku problemów obliczeniowych. Dziś już nieco zapomniane. (IMMT PWr) TI-W / 1
92 Tablice decyzyjne Tablice decyzyjne c.d Pomysł tak, gdzieś z lat 50 (zeszłego wieku)! Tablica decyzyjna to mieszanka warunków i decyzji które należy podejmować w zależności od ich spełnienia. (IMMT PWr) TI-W / 1
93 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Samochód nie spełnia wymagań (IMMT PWr) TI-W / 1
94 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Samochód nie spełnia wymagań (IMMT PWr) TI-W / 1
95 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Samochód nie spełnia wymagań Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów (IMMT PWr) TI-W / 1
96 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Samochód nie spełnia wymagań (IMMT PWr) TI-W / 1
97 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Rezygnuj Samochód nie spełnia wymagań (IMMT PWr) TI-W / 1
98 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Rezygnuj Targuj się; kup jeżeli zbiłeś cenę Samochód nie spełnia wymagań (IMMT PWr) TI-W / 1
99 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Rezygnuj Targuj się; kup jeżeli zbiłeś cenę Targuj się; kup niezależnie od wyników targów Samochód nie spełnia wymagań (IMMT PWr) TI-W / 1
100 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Rezygnuj Targuj się; kup jeżeli zbiłeś cenę Targuj się; kup niezależnie od wyników targów Samochód nie spełnia wymagań Rezygnuj (IMMT PWr) TI-W / 1
101 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Rezygnuj Targuj się; kup jeżeli zbiłeś cenę Targuj się; kup niezależnie od wyników targów Samochód nie spełnia wymagań Rezygnuj Rezygnuj (IMMT PWr) TI-W / 1
102 Tablice decyzyjne Zakup samochodu cena nadmierna cena OK cena niedoszacowana Samochód spełnia wszystkie wymagania Targuj się; jak się nie uda wróć następnego dnia i targuj się; kup nawet jak nie uda się zbić ceny Targuj się; kup niezależnie od wyniku targów kup Samochód nie spełnia wszystkich wymagań ale stan i wyposażenie są akceptowalne Rezygnuj Targuj się; kup jeżeli zbiłeś cenę Targuj się; kup niezależnie od wyników targów Samochód nie spełnia wymagań Rezygnuj Rezygnuj Targuj się o dodatki; kup jeśli cena dodatków jest rozsądna (IMMT PWr) TI-W / 1
103 Tablice decyzyjne Wkładanie palta R1 R2 R3 C1 Pada T T N C2 Zimno T N T A1 Włóż ocieplany płaszcz przeciwdeszczowy X A2 Włóż zwykły płaszcz przeciwdeszczowy X A3 Włóż ciepły płaszcz X (IMMT PWr) TI-W / 1
104 Tablice decyzyjne Wkładanie palta c.d. W tabeli pominęliśmy warunek: Pada N Zimno N nie wymaga on żadnej specjalnej akcji, choć można by go dodać definiując akcję: Nie wkładaj żadnego płaszcza. (IMMT PWr) TI-W / 1
105 Tablice decyzyjne Przykład: sklepik Kolejny przykład to tablica decyzyjna opisująca działania związane z przyjęciem i realizacją zamówienia. Tablica uwzględnia też politykę firmy, którą można opisać tak: 1 Firma obsługuje tylko zarejestrowanych klientów. 2 Firma dostarcza tylko towary znajdujące się na liście towarów. (IMMT PWr) TI-W / 1
106 Tablice decyzyjne Sklepik c.d. C1 Towar na liście T N T C2 Klient zarejestrowany T N T C3 Wystarczający zapas towaru T N A1 Zarezerwuj towar X A2 Zarejestruj transakcję X A3 Zapisz zamówienie na liście do realizacji X A4 Wyślij towar X A5 Odrzuć transakcję X X (IMMT PWr) TI-W / 1
107 Struktury sterujące Struktury sterujące Podczas realizacji algorytmu steruje się kolejnością poszczególnych jego etapów. Układ instrukcji, które są temu pomocne nazywa się strukturami sterującymi. Stosuje się: bezpośrednie następstwo - a potem, następnie ; wybór warunkowy - jeśli A to B ; iteracja ograniczona - zrób coś kreśloną liczbę razy warunkowa - jeśli spełniony jest warunek, wówczas wykonuj Można tworzyć pętle zagnieżdżone wewnątrz innych pętli (np. j razy wykonaj pętlę i). (IMMT PWr) TI-W / 1
108 Struktury sterujące Skoki Przekazanie sterowania Skok bezwarunkowy ma postać przejdź do G ( G" to określone miejsce programu algorytmu). Skok warunkowy przejdź do G jeżeli spełniony jest jakiś warunek. Duża liczba skoków (do przodu, do tyłu) zmniejsza czytelność algorytmu. Skoki powodują również problemy techniczne: czy można wyskoczyć ze środka pętli? Czy można do środka pętli wskoczyć? (IMMT PWr) TI-W / 1
109 Struktury sterujące Podprogramy Podprogramy Podprogram wyodrębniony zestaw instrukcji (osobny algorytm) realizujący pewne zamknięte dzieło : ma dobrze 3 zdefiniowany zestaw danych (parametrów) wejściowych, zestaw danych wyjściowych i relację (zależność) pomiędzy nimi. Oszczędność kodu (ta sama czynność wykonywana kilkakrotnie w różnych miejscach programu). Przejrzystość kodu ( duży problem dzielimy na mniejsze, dobrze zdefiniowane fragmenty). 3 Używając słowa dobrze będę miał na myśli precyzyjnie. (IMMT PWr) TI-W / 1
110 Dane Zmienna Zmienna Rodzaj pudełka do którego można coś włożyć, wyjąć. (Tak jak pokój hotelowy.) Zmienna zazwyczaj ma jakąś nazwę (przez którą się do niej odwołujemy). Wartość zmiennej (zawartość pokoju hotelowego) zmienia się w razie potrzeb. W algorytmach używamy zmiennych do przechowywania (pamiętania) różnych wartości. Zakładamy wówczas, że to co tam wstawimy nie ulega zmianie (zniszczeniu) w sposób samorzutny. Fakt przypisania wartości do zmiennej zaznaczamy w algorytmach w bardzo różny sposób. Najprostszy będzie taki: X = 5, X := X + 1 czy X A + B. (IMMT PWr) TI-W / 1
111 Dane Wektor Wektor, tablica I Zestaw wartości w których wprowadziliśmy rodzaj uporządkowania (dyskutując na temat wyszukiwania wartości maksymalnej mówiliśmy weźmy pierwszą wartość albo jakoś tak). Jeżeli szereg zmiennych tego samego typu ustawimy jedną za drugą (i zaczniemy się do nich odwoływać przez numer: pierwsza, druga,... ) mamy do czynienia (IMMT PWr) TI-W / 1
112 Dane Wektor Wektor, tablica II z wektorem (zwanym czasami tablicą jednowymiarową). Jest to pewna analogia do piętra w hotelu: jest tam szereg pokoi. Nazwę przypisujemy całemu wektorowi, do poszczególnych jego elementów będziemy odwoływać się przez numer, co zapisujemy najczęściej jakoś tak: V (I ) (zawartość I tej komórki wektora V ) albo tak V [J]. I (J) nazywany bywa indeksem wektora. V (1) V (2) V (3) V (4) V (5) (IMMT PWr) TI-W / 1
113 Dane Wektor Wektor, tablica III Analogiczny zapis matematyczny: V 1 V 2 V 3 V 4 V 5 (IMMT PWr) TI-W / 1
114 Dane Tablica Tablica (wielowymiarowa) I Struktura grupująca dane w sposób bardziej złożony. Czasami mamy potrzebę grupowania danych w struktury bardziej złożone niż wektory. Struktura numerowana za pomocą dwu indeksów nazywana bywa tabelą. Nasuwa się tu analogia do całego hotelu: pierwszym indeksem jest numer piętra drugim numer pokoju na piętrze. My mówić będziemy o wierszach (poziome wektory) lub kolumnach (pionowe) tablicy. Odwołanie do elementu tabeli zapisywane bywa tak: W (I, J) albo W [I, J] lub rzadziej jako W [I ][J]. (IMMT PWr) TI-W / 1
115 Dane Tablica Tablica (wielowymiarowa) II W najprostszych sytuacjach tablice maja wszystkie wiersze (kolumny) jednakowej długości. Możliwe są jednak i bardziej ogólne przypadki. Zapis matematyczny: v 1,1 v 1,2 v 1,3 v 2,1 v 2,2 v 2,3 v 3,1 v 3,2 v 3,3 v 4,1 v 4,2 v 4,3 Zapis algorytmiczny : V (1, 1) V (1, 2) V (1, 3) V (2, 1) V (2, 2) V (2, 3) V (3, 1) V (3, 2) V (3, 3) V (4, 1) V (4, 2) V (4, 3) (IMMT PWr) TI-W / 1
116 Dane Kolejka Kolejka Struktura bardzo podobna do wektora. Dane dostarczane są do jednego końca. Do odbioru danych służy drugi koniec. (IMMT PWr) TI-W / 1
117 Dane Stos Stos Struktura podobna do wektora. Dane dostarczane są do jednego końca. Ten sam koniec służy do ich odbioru. (IMMT PWr) TI-W / 1
118 Dane Drzewo Drzewo albo hierarchia Struktura z porządkiem. Wyróżnia się specjalny obiekt będący początkiem całej struktury: korzeń. Inne elementy to następniki albo potomstwo. Każdy obiekt może mieć kilku równoważnych potomków. Każdy potomek to węzeł drzewa. Obiekty, które nie mają potomków to liście. Gałąź to droga od korzenia do liścia. (IMMT PWr) TI-W / 1
119 Dane Drzewo Drzewo root left right child child a b (IMMT PWr) TI-W / 1
120 Dane Inne Inne struktury danych Listy (pewne podobieństwo do wektorów czy tablic). Bazy danych (pewne podobieństwo do tablic). Grafy (pewne podobieństwo do drzew). (IMMT PWr) TI-W / 1
121 Upraszczanie danych Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych potrzebne są modele uogólniające i jak najprostsze... Struktura pamięci komputera jest bardzo prosta liniowa (IMMT PWr) TI-W / 1
122 Upraszczanie danych Zmienne i tablice Upraszczanie danych Zmienne i wektory bardzo łatwo dają się zlinearyzować Tablice dwu (ale i wielowymiarowe) stosunkowo łatwo można zapisać w taki sposób: trzeba się tylko umówić czy zapisujemy dane wierszami czy kolumnami Przykład (IMMT PWr) TI-W / 1
123 Upraszczanie danych Zmienne i tablice Upraszczanie danych Zmienne i wektory bardzo łatwo dają się zlinearyzować Tablice dwu (ale i wielowymiarowe) stosunkowo łatwo można zapisać w taki sposób: trzeba się tylko umówić czy zapisujemy dane wierszami czy kolumnami Przykład (IMMT PWr) TI-W / 1
124 Upraszczanie danych Zmienne i tablice Upraszczanie danych Zmienne i wektory bardzo łatwo dają się zlinearyzować Tablice dwu (ale i wielowymiarowe) stosunkowo łatwo można zapisać w taki sposób: trzeba się tylko umówić czy zapisujemy dane wierszami czy kolumnami Przykład może być zapisane tak: 11; 12; 13 * 21; 22; 23 * 31; 32; 33 * 41; 42; 43 * (IMMT PWr) TI-W / 1
125 Upraszczanie danych Zmienne i tablice Upraszczanie danych Zmienne i wektory bardzo łatwo dają się zlinearyzować Tablice dwu (ale i wielowymiarowe) stosunkowo łatwo można zapisać w taki sposób: trzeba się tylko umówić czy zapisujemy dane wierszami czy kolumnami Przykład może być zapisane tak: 11; 12; 13 * 21; 22; 23 * 31; 32; 33 * 41; 42; 43 * albo tak: 11; 21; 31; 41 * 12; 22; 32; 42 * 13; 23; 33; 43 * (IMMT PWr) TI-W / 1
126 Upraszczanie danych Zmienne i tablice Upraszczanie danych Zmienne i wektory bardzo łatwo dają się zlinearyzować Tablice dwu (ale i wielowymiarowe) stosunkowo łatwo można zapisać w taki sposób: trzeba się tylko umówić czy zapisujemy dane wierszami czy kolumnami Przykład może być zapisane tak: 11; 12; 13 * 21; 22; 23 * 31; 32; 33 * 41; 42; 43 * albo tak: 11; 21; 31; 41 * 12; 22; 32; 42 * 13; 23; 33; 43 * albo tak: {{11, 21, 31, 41}, {12, 22, 32, 42}, {13, 23, 33, 43}} czyli jako lista! (IMMT PWr) TI-W / 1
127 Upraszczanie danych Zmienne i tablice Upraszczanie danych Podobnie będzie i ze stosem i z kolejką Baza danych to właściwie tak bardziej rozbudowana tablica; ale nie znaczy że będzie łatwo... Co z drzewem? T V G Q R S W L M N P (IMMT PWr) TI-W / 1
128 Upraszczanie danych Drzewa Upraszczanie danych T V Q R S M N W P G L Pokazane drzewo można próbować zapisać tak: T ** V; G ** Q; R; S; W; L ** M; N; P** (gwiazdki oznaczają tu koniec kolejnych poziomów drzewa). Ale jedno co można odtworzyć to... (IMMT PWr) TI-W / 1
129 Upraszczanie danych Drzewa Upraszczanie danych T V Q R S M N W P G L Pokazane drzewo można próbować zapisać tak: T ** V; G ** Q; R; S; W; L ** M; N; P** (gwiazdki oznaczają tu koniec kolejnych poziomów drzewa). Ale jedno co można odtworzyć to... T V Q R S M N W P G L (IMMT PWr) TI-W / 1
130 Upraszczanie danych Drzewa Upraszczanie danych T V Q R S M N W P G L Jeżeli jednak trochę zapis skomplikować to można uzyskać coś więcej: (T) (V; G) (Q; R; S) (W; L) () (M; N) () (P) () powyższy zapis jest bardzo zwarty, ale też trochę skomplikowany: nawiasy grupują tylko węzły będące potomkami tego samego węzła. Poziomy drzewa nie są zaznaczane w żaden specjalny sposób i muszą być wyliczane. Uwaga: jest to zapis listowy! (IMMT PWr) TI-W / 1
131 Upraszczanie danych Teza Upraszczanie danych teza Przyjmujemy, że każdą strukturę danych można zapisać w postaci liniowej, na przykład na odpowiednio długiej taśmie złożonej z krateczek w których zapisane są pojedyncze dane. (IMMT PWr) TI-W / 1
132 Rekurencja Definicje Definicje Za wikipedią Rekursja albo rekurencja (ang. recursion, z łac. recurrere, przybiec z powrotem) to w logice, programowaniu i w matematyce odwoływanie się (np. funkcji lub definicji) do samej siebie. (IMMT PWr) TI-W / 1
133 Rekurencja Przykład Przykład Silnia Wersja klasyczna 0! = 1 n! = n i=1 i albo n! = n (IMMT PWr) TI-W / 1
134 Rekurencja Przykład Przykład Silnia Wersja klasyczna 0! = 1 n! = n i=1 i albo n! = n Wersja inna 0! = 1 n! = n (n 1)! (IMMT PWr) TI-W / 1
135 Rekurencja Przykład Przykład Kilka liczb In[1]:= 10! Out[1]= In[3]:= 20! Out[3]= In[4]:= 30! Out[4]= In[5]:= 40! Out[5]= (IMMT PWr) TI-W / 1
136 Rekurencja Schemat blokowy Silnia Schematy blokowe Wersja klasyczna 1 Jeżeli n = 0, silnia równa się 1; koniec algorytmu. 2 silnia 1 3 Powtarzaj dla i zmieniającego się od 1 do n silnia = silnia i 4 Koniec algorytmu. (IMMT PWr) TI-W / 1
137 Rekurencja Schemat blokowy Silnia Schematy blokowe Wersja klasyczna 1 Jeżeli n = 0, silnia równa się 1; koniec algorytmu. 2 silnia 1 3 Powtarzaj dla i zmieniającego się od 1 do n silnia = silnia i 4 Koniec algorytmu. Wersja rekurencyjna 1 Funkcja Silnia (parametrem jest n) 2 Jeżeli n = 0; wynik podstaw 1; koniec programu 3 wynik = wynik Silnia(n 1) 4 koniec (IMMT PWr) TI-W / 1
138 Rekurencja Schemat blokowy Rekurencja na obrazkach: Droste Effect (IMMT PWr) TI-W / 1
139 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
140 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
141 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
142 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
143 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
144 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
145 Rekurencja Schemat blokowy Rekurencja Escher (IMMT PWr) TI-W / 1
146 Rekurencja Wieże Hanoi Wieże Hanoi Prosta zabawka dziecięca na patyku nanizanych jest pewna liczba krążków tak, że na większym zawsze leży krążek mniejszy. Zadaniem naszym jest umieszczenie wszystkich krążków na sąsiednim patyku (korzystając z jednego tylko patyka pomocniczego) w tej samej kolejności. Podczas każdego ruchu pamiętać trzeba, że krążek większy nie może znaleźć się nigdy na krążku mniejszym. (IMMT PWr) TI-W / 1
147 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki (IMMT PWr) TI-W / 1
148 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 1 (IMMT PWr) TI-W / 1
149 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 2 (IMMT PWr) TI-W / 1
150 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 3 (IMMT PWr) TI-W / 1
151 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 4 (IMMT PWr) TI-W / 1
152 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 5 (IMMT PWr) TI-W / 1
153 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 6 (IMMT PWr) TI-W / 1
154 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 7 (IMMT PWr) TI-W / 1
155 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Trzy krążki 8 (IMMT PWr) TI-W / 1
156 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Dwa krążki (IMMT PWr) TI-W / 1
157 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Dwa krążki (IMMT PWr) TI-W / 1
158 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Dwa krążki (IMMT PWr) TI-W / 1
159 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Dwa krążki (IMMT PWr) TI-W / 1
160 Rekurencja Wieże Hanoi Wieże Hanoi Przykład Dwa krążki (IMMT PWr) TI-W / 1
161 Rekurencja Wieże Hanoi Wieże Hanoi I Czemu taka nazwa? W wielkiej świątyni Benares w Hanoi, pod kopułą, która zaznacza środek świata, znajduje się płytka z brązu, na której umocowane są trzy diamentowe igły, wysokie na łokieć i cienkie jak talia osy. Na jednej z tych igieł, w momencie stworzenia świata, Bóg umieścił 64 krążki ze szczerego złota. Największy z nich leży na płytce z brązu, a pozostałe jeden na drugim, idąc malejąco od największego do najmniejszego. Jest to wieża Brahma. Bez przerwy we dnie i w nocy kapłani przekładają krążki z jednej diamentowej igły na drugą, przestrzegając niewzruszonych praw Brahma. Prawa te chcą, aby kapłan na służbie brał tylko jeden krążek na raz i aby umieszczał go na jednej z igieł w ten sposób, by nigdy nie znalazł się pod nim krążek mniejszy. (IMMT PWr) TI-W / 1
162 Rekurencja Wieże Hanoi Wieże Hanoi II Czemu taka nazwa? Wówczas, gdy 64 krążki zostaną przełożone z igły, na której umieścił je Bóg w momencie stworzenia świata, na jedną z dwóch pozostałych igieł, wieża, świątynia, bramini rozsypią się w proch i w jednym oka mgnieniu nastąpi koniec świata. Kiedy nastąpi koniec świata? (IMMT PWr) TI-W / 1
163 Rekurencja Wieże Hanoi Wieże Hanoi Koniec świata Przy trzech krążkach trzeba 7 ruchów (przy dwu 3!) (IMMT PWr) TI-W / 1
164 Rekurencja Wieże Hanoi Wieże Hanoi Koniec świata Przy trzech krążkach trzeba 7 ruchów (przy dwu 3!) Gdy krążków jest 64 trzeba ruchów, czyli (IMMT PWr) TI-W / 1
165 Rekurencja Wieże Hanoi Wieże Hanoi Koniec świata Przy trzech krążkach trzeba 7 ruchów (przy dwu 3!) Gdy krążków jest 64 trzeba ruchów, czyli Zakładamy, że przeniesienie krążka zajmuje 1 sekundę. (IMMT PWr) TI-W / 1
166 Rekurencja Wieże Hanoi Wieże Hanoi Koniec świata Przy trzech krążkach trzeba 7 ruchów (przy dwu 3!) Gdy krążków jest 64 trzeba ruchów, czyli Zakładamy, że przeniesienie krążka zajmuje 1 sekundę. Rok ma sekund ( ) (IMMT PWr) TI-W / 1
167 Rekurencja Wieże Hanoi Wieże Hanoi Koniec świata Przy trzech krążkach trzeba 7 ruchów (przy dwu 3!) Gdy krążków jest 64 trzeba ruchów, czyli Zakładamy, że przeniesienie krążka zajmuje 1 sekundę. Rok ma sekund ( ) Praca ta zajmie 2 64 / lat (prawie 585 miliardów lat) (IMMT PWr) TI-W / 1
168 Rekurencja Wieże Hanoi Wieże Hanoi Jak rozwiązać ten problem? Gdy krążek jest tylko jeden problem nie istnieje. (IMMT PWr) TI-W / 1
169 Rekurencja Wieże Hanoi Wieże Hanoi Jak rozwiązać ten problem? Gdy krążek jest tylko jeden problem nie istnieje. Dla dwu krążków problem jest banalny. (IMMT PWr) TI-W / 1
170 Rekurencja Wieże Hanoi Wieże Hanoi Jak rozwiązać ten problem? Gdy krążek jest tylko jeden problem nie istnieje. Dla dwu krążków problem jest banalny. Dla trzech można go podzielić na trzy zadania: (IMMT PWr) TI-W / 1
171 Rekurencja Wieże Hanoi Wieże Hanoi Jak rozwiązać ten problem? Gdy krążek jest tylko jeden problem nie istnieje. Dla dwu krążków problem jest banalny. Dla trzech można go podzielić na trzy zadania: 1 Przeniesienie dwu górnych krążków na trzeci patyczek. (IMMT PWr) TI-W / 1
172 Rekurencja Wieże Hanoi Wieże Hanoi Jak rozwiązać ten problem? Gdy krążek jest tylko jeden problem nie istnieje. Dla dwu krążków problem jest banalny. Dla trzech można go podzielić na trzy zadania: 1 Przeniesienie dwu górnych krążków na trzeci patyczek. 2 Przeniesienie największego krążka na patyczek drugi. (IMMT PWr) TI-W / 1
173 Rekurencja Wieże Hanoi Wieże Hanoi Jak rozwiązać ten problem? Gdy krążek jest tylko jeden problem nie istnieje. Dla dwu krążków problem jest banalny. Dla trzech można go podzielić na trzy zadania: 1 Przeniesienie dwu górnych krążków na trzeci patyczek. 2 Przeniesienie największego krążka na patyczek drugi. 3 Ponowne przeniesienie dwu krążków na największy... (IMMT PWr) TI-W / 1
174 Rekurencja Wieże Hanoi Wieże Hanoi Przypadek ogólny 1 Przenieśmy z A na C N 1 krążków. 2 Pozostały krążek (największy! ale z czego to wynika?) przenieśmy z A na B. 3 Do pozostałych (N 1) krążków zastosujmy powyższy algorytm (patyk B możemy wykorzystywać jako roboczy, bo na samym spodzie znajduje się krążek największy). 4 powyższą procedurę należy powtarzać aż do zakończenia zadania. (Pierwszy patyczek nazwaliśmy A, drugi B a trzeci C.) (IMMT PWr) TI-W / 1
175 Rekurencja Wieże Hanoi Wieże Hanoi Procedura (rekurencyjna) Procedura przenieś N (krążków) z X na Y używając Z: 1 Jeśli N = 1 to wypisz X Y ; 2 w przeciwnym razie (jeżeli N > 1) wykonaj co następuje: 1 wywołaj przenieś N 1 z X na Z używając Y ; 2 wypisz X Y ; 3 wywołaj przenieś N 1 z Z na Y używając X ; 3 wróć; Zapis symboliczny A B oznacza weź krążek z patyka oznaczonego A i przenieś go na patyk oznaczony B Procedura służy jedynie do wypisywania instrukcji dla operataora człowieka. (IMMT PWr) TI-W / 1
176 Rekurencja Wieże Hanoi Wieże Hanoi Realizacja Start przenieść 3 z A na B używając C 1 przenieść 2 z A na C używając B 1 przenieść 1 z A na B używając C 2 A C 2 A B 1 A B 3 przenieść 1 z B na C używając A 1 B C 3 przenieść 2 z C na B używając A 1 przenieść 1 z C na A używając B 2 C B 1 C A 3 przenieść 1 z A na B używając C 1 A B (IMMT PWr) TI-W / 1
177 Przykłady Problem 1 Wejście: Dwie liczby J i K Wynik: Liczba J 2 + 3K Prosty problem wymagający wykonania elementarnych obliczeń arytmetycznych na dwu liczbach wejściowych. (IMMT PWr) TI-W / 1
178 Przykłady Problem 2 Wejście: Liczba dodatnia K Wynik: Suma liczb całkowitych od 1 do K Problem arytmetyczny, ale liczba obliczeń zmienia się w zależności od danych wejściowych. (IMMT PWr) TI-W / 1
179 Przykłady Problem 3 Wejście: Liczba dodatnia K Wynik: TAK gdy K jest liczbą pierwszą, NIE, gdy taką nie jest. Problem decyzyjny. Zadanie jest również arytmetyczne, ale wynik nie jest numeryczny. (IMMT PWr) TI-W / 1
180 Przykłady Problem 4 Wejście: Lista L słów w języku polskim. Wynik: Lista L uporządkowana alfabetycznie (leksykograficznie) Nie jest to problem arytmetyczny, konieczne jest operowanie na zmiennej liczbie danych słów. (IMMT PWr) TI-W / 1
181 Przykłady Problem 5 Wejście: Mapa drogowa z zaznaczonymi miastami i odległościami między nimi, na której są wyróżnione dwa miasta A i B. Wynik: Opis najkrótszej ścieżki (trasy) od A do B Problem poszukiwania wśród wszystkich najlepszego wariantu rozwiązania. (IMMT PWr) TI-W / 1
182 Przykłady Problem 6 Wejście: Zbiór osób znajdujących się w pomieszczeniu. Wynik: Wysokość osoby najwyższej (najniższej). (IMMT PWr) TI-W / 1
183 Przykłady Problem 6 Wejście: Zbiór osób znajdujących się w pomieszczeniu. Wynik: Wysokość osoby najwyższej (najniższej). lub Wskazanie osoby najwyższej (IMMT PWr) TI-W / 1
184 Przykłady Problem 6 Wejście: Zbiór osób znajdujących się w pomieszczeniu. Wynik: Wysokość osoby najwyższej (najniższej). lub Wskazanie osoby najwyższej Do czego sprowadza się różnica między tymi algorytmami? (IMMT PWr) TI-W / 1
185 Przykłady Przykład 7 (IMMT PWr) TI-W / 1
186 Przykłady Przykład 8 (IMMT PWr) TI-W / 1
187 Przykłady Przykład 9 (IMMT PWr) TI-W / 1
188 Przykłady Algorytm Cartera I (IMMT PWr) TI-W / 1
189 Przykłady Algorytm Cartera II (IMMT PWr) TI-W / 1
190 Przykłady Algorytm Cartera III (IMMT PWr) TI-W / 1
191 Przykłady Algorytm Cartera IV (IMMT PWr) TI-W / 1
192 Przykłady Algorytm Cartera V (IMMT PWr) TI-W / 1
193 Przykłady Algorytm Cartera VI (IMMT PWr) TI-W / 1
194 Przykłady Algorytm Cartera VII (IMMT PWr) TI-W / 1
195 Przykłady Algorytm Cartera VIII (IMMT PWr) TI-W / 1
196 Algorytmy podsumowanie Algorytmy podsumowanie Zadanie algorytmiczne składa się ze: scharakteryzowania dopuszczalnego, być może nieskończonego zbioru potencjalnych zestawów danych wejściowych; specyfikacji pożądanych wyników jako funkcji danych wejściowych. Zakłada się, że zadany jest albo zestaw dozwolonych akcji (operacji) podstawowych albo konfiguracja sprzętowa, w którą je wbudowano. Rozwiązanie zadania algorytmicznego stanowi algorytm złożony z elementarnych instrukcji zadających akcje z ustalonego zbioru. (IMMT PWr) TI-W / 1
Algorytmy. wer Wojciech Myszka 30 listopada 2008
Algorytmy Część IV wer. 1.2 Wojciech Myszka 30 listopada 2008 Spis treści I Spis treści Jak się tworzy algorytmy? Poszukiwania i wędrówki Dziel i zwyciężaj Rekurencja Definicje Przykład Schemat blokowy
Bardziej szczegółowoZapis algorytmów (Algorytmy, Część II)
Zapis algorytmów (Algorytmy, Część II) wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2017-10-21 21:08:13 +0200 Zapis algorytmu 1. Słowami. Należy używać prostych zdań (raczej równoważników zdań) w
Bardziej szczegółowoMetody algortmiczne (Algorytmy Część IV)
Metody algortmiczne (Algorytmy Część IV) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-10-02 17:27:45 +0200 Jak się tworzy algorytmy? Moja odpowiedź jest krótka: Jak się tworzy algorytmy? Moja
Bardziej szczegółowoZapis algorytmów (Algorytmy, Część II)
Zapis algorytmów (Algorytmy, Część II) wer. 8 z drobnymi modyfikacjami! Wojciech Myszka 2013-12-04 19:12:22 +0100 Zapis algorytmu 1. Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie
Bardziej szczegółowoJak tworzymy algorytmy? Wersja: 3
Jak tworzymy algorytmy? Wersja: 3 Wojciech Myszka 2010-12-06 19:59:27 +0100 Zapis algorytmu 1. Słowami. Należy używać prostych zdań (raczej równoważników zdań) w trybie rozkazującym. Zapis algorytmu 1.
Bardziej szczegółowoZapis algorytmów (Algorytmy, Część II)
Zapis algorytmów (Algorytmy, Część II) wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2018-11-13 17:52:24 +0100 Zapis algorytmu 1. Słowami. Należy używać prostych zdań (raczej równoważników zdań) w
Bardziej szczegółowoRaport z projektu. Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski
Raport z projektu Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski Problem wieży Hanoi W wielkiej świątyni Benares w Hanoi, pod kopułą, która zaznacza środek świata,
Bardziej szczegółowoMaszyna Turinga (Algorytmy Część III)
Maszyna Turinga (Algorytmy Część III) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-12-18 08:22:34 +0100 Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych
Bardziej szczegółowoWykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 7 Algorytmy Programowanie Sformułowanie problemu. Opracowanie metodyki rozwiązania. Opracowanie algorytmu. Napisanie kodu źródłowego (zakodowanie) w
Bardziej szczegółowoPOLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoWprowadzenie do algorytmiki
Wprowadzenie do algorytmiki Pojecie algorytmu Powszechnie przyjmuje się, że algorytm jest opisem krok po kroku rozwiązania postawionego problemu lub sposób osiągnięcia jakiegoś celu. Wywodzi się z matematyki
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoPOLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
Bardziej szczegółowoInformatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy
Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
Bardziej szczegółowo3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.
1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę
Bardziej szczegółowoRekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.
Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego
Bardziej szczegółowoDefinicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Bardziej szczegółowoWYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
Rekurencja - zdolność podprogramu (procedury) do wywoływania samego (samej) siebie Wieże Hanoi dane wejściowe - trzy kołki i N krążków o różniących się średnicach wynik - sekwencja ruchów przenosząca krążki
Bardziej szczegółowoPodstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie
Bardziej szczegółowoAlgorytmy komputerowe. dr inŝ. Jarosław Forenc
Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010
Bardziej szczegółowoAlgorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoAlgorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inż. Grzegorz Zych Copernicanum, pok. 3 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje programistyczne.
Bardziej szczegółowower.9 Wojciech Myszka, Maciej Panek grudzień 2014 r.
Algorytmy (Część I) wer.9 Wojciech Myszka, Maciej Panek grudzień 2014 r. Krótkie podsumowanie Wiemy: Krótkie podsumowanie Wiemy: 1. co to jest komputer Krótkie podsumowanie Wiemy: 1. co to jest komputer
Bardziej szczegółowoRekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Bardziej szczegółowoPodstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Bardziej szczegółowoTypy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:
Strona 1 z 17 Typy danych 1. Dane tekstowe rozmaite słowa zapisane w różnych alfabetach: Rozwój metod badawczych pozwala na przesunięcie granicy poznawania otaczającego coraz dalej w głąb materii: 2. Dane
Bardziej szczegółowoTechnologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:
Bardziej szczegółowoAlgorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Bardziej szczegółowoALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Bardziej szczegółowoAlgorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
Bardziej szczegółowoAlgorytmika. Algorytmy. prof. dr hab. inż. Joanna Józefowska. Poznań, rok akademicki 2008/2009. Plan wyk ladu Poj
Algorytmy Poznań, rok akademicki 2008/2009 Plan wyk ladu 1 Plan wyk ladu 2 Pojecie algorytmu Rozwiazywanie problemów Przyk lady algorytmów Cechy algorytmu 3 Zapisywanie algorytmów Sposoby zapisywania algorytmów
Bardziej szczegółowoDefinicja algorytmu brzmi:
1.1. Definicja algorytmu Często w życiu stajesz przed koniecznością rozwiązania jakiegoś zadania. Na lekcji matematyki musisz na przykład rozwiązać równanie i w tym celu wykonujesz szereg czynności: od
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 9 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład:
Bardziej szczegółowo1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.
Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna
Bardziej szczegółowoAlgorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób
Bardziej szczegółowoAlgorytm. Algorytmy Marek Pudełko
Algorytm Algorytmy Marek Pudełko Definicja Algorytm to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Algorytm ma przeprowadzić system z pewnego
Bardziej szczegółowoZapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
Bardziej szczegółowoZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż. ADAM KOLIŃSKI ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż.
1 ZARZĄDZANIE PROCESAMI I PROJEKTAMI 2 ZAKRES PROJEKTU 1. Ogólna specyfika procesów zachodzących w przedsiębiorstwie 2. Opracowanie ogólnego schematu procesów zachodzących w przedsiębiorstwie za pomocą
Bardziej szczegółowoWykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
Bardziej szczegółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Bardziej szczegółowoSchematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Bardziej szczegółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Bardziej szczegółowoWstęp do informatyki
Wstęp do informatyki Algorytmy i struktury danych Piotr Fulmański Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska 30 października 2009 Spis treści 1 Algorytm 2 Przetwarzane informacje 3 Struktury
Bardziej szczegółowoPoprawność algorytmów
Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy
Bardziej szczegółowoWykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Bardziej szczegółowoPodstawy algorytmiki Dariusz Piekarz
Podstawy algorytmiki Dariusz Piekarz CENTRUM EDUKACJI NAUCZYCIELI W KOSZALINIE Podstawa programowa kształcenia ogólnego z informatyki wprowadza już od najmłodszych klas szkoły podstawowej zagadnienia związane
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowo1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)
1. Liczby wymierne. - wartość bezwzględna liczby. dla 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) - dla < 0 ( wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna) W interpretacji
Bardziej szczegółowoPrzeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej
Przeglad podstawowych pojęć (1) Podstawy informatyki (3) dr inż. Sebastian Pluta pluta@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Program komputerowy to sekwencja instrukcji wykonywanych
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, a/15
Matematyka dyskretna Andrzej Łachwa, UJ, 2017 andrzej.lachwa@uj.edu.pl 3a/15 Indukcja matematyczna Zasada Minimum Dowolny niepusty podzbiór S zbioru liczb naturalnych ma w sobie liczbę najmniejszą. Zasada
Bardziej szczegółowoPodstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu
Podstawy Informatyki Inżyria Ciepła, I rok Wykład 7 Algorytmy Sformułowa problemu. Programowa Opracowa metodyki rozwiązania. Opracowa algorytmu. Napisa kodu źródłowego (zakodowa) w wybranym języku (Pascal,
Bardziej szczegółowoRekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy
Bardziej szczegółowoWykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych
Arytmetyka liczb całkowitych Wykład 1 Na początku zajmować się będziemy zbiorem liczb całkowitych Z = {0, ±1, ±2,...}. Zakładamy, że czytelnik zna relację
Bardziej szczegółowoCIĄGI wiadomości podstawowe
1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie
Bardziej szczegółowoW szkole podstawowej materiał przedstawiony powinien być w następującej kolejności:
Jak uczyć trudnych tematów - algorytmizacja i programowanie Wydaje się, że najtrudniejszym zagadnieniem zarówno dla ucznia, jaki i nauczyciela w edukacji informatycznej są tematy dotyczące algorytmizacji
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie informatyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoWykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL 1 Część 1 Pojęcie algorytmu 2 I. Pojęcie algorytmu Trochę historii Pierwsze
Bardziej szczegółowoPodstawy Informatyki. Algorytmy i ich poprawność
Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania
Bardziej szczegółowoWykład z Podstaw Informatyki dla I roku BO. Piotr Mika
Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Napisanie programu komputerowego: Zasada rozwiązania zadania Stworzenie sekwencji kroków algorytmu Przykłady algorytmów z życia codziennego (2/1 6)
Bardziej szczegółowooperacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoLaboratorium 10: Maszyna stanów
Wojciech Myszka Laboratorium 10: Maszyna stanów 2016-05-07 09:05:39 +0200 1. Wprowadzenie Laboratorium poświęcone jest operacjom na napisach (ciągach znaków). Przypominam, że: a to stała typu char o wartości
Bardziej szczegółowoALGORYTMY I PROGRAMY
ALGORYTMY I PROGRAMY Program to ciąg instrukcji, zapisanych w języku zrozumiałym dla komputera. Ten ciąg instrukcji realizuje jakiś algorytm. Algorytm jest opisem krok po kroku jak rozwiązać problem, czy
Bardziej szczegółowoALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:
ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: Rys1 Ćwiczenie 2 Podaj jaki ciąg znaków zostanie wypisany po wykonaniu
Bardziej szczegółowoPodstawy Informatyki. Metalurgia, I rok niestacjonarne. Wykład 2 Algorytmy
Podstawy Informatyki Metalurgia, I rok niestacjonarne Wykład 2 Algorytmy Programowanie Sformułowanie problemu. Opracowanie metodyki rozwiązania. Opracowanie algorytmu. Napisanie kodu źródłowego (zakodowanie)
Bardziej szczegółowoPętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
Bardziej szczegółowoAlgorytmy i schematy blokowe
Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,
Bardziej szczegółowo11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym
1. Instrukcja warunkowa a. słuŝy do wprowadzania danych oraz wprowadzania wyników b. to instrukcja decyzyjna c. to sposób przedstawienia algorytmu 2. Instrukcja, która opisuje wykonanie róŝnych czynności
Bardziej szczegółowoKlasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Bardziej szczegółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoWstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer
Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoZadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.
2 Egzamin maturalny z informatyki Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie lub, która odpowiedź jest prawdziwa, a która fałszywa. a) rzeanalizuj poniższy algorytm (:= oznacza instrukcję
Bardziej szczegółowowagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
Bardziej szczegółowo2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Bardziej szczegółowoMetody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Bardziej szczegółowoMetodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
Bardziej szczegółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Bardziej szczegółowoInstrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:
Instrukcje sterujące wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2017-07-05 10:53:09 +0200 Ala ma kota Część I Prosty przykład Problem 1. Zadanie polega na tym, żeby opracować algorytm który dla
Bardziej szczegółowo1. Liczby naturalne, podzielność, silnie, reszty z dzielenia
1. Liczby naturalne, podzielność, silnie, reszty z dzielenia kwadratów i sześcianów przez małe liczby, cechy podzielności przez 2, 4, 8, 5, 25, 125, 3, 9. 26 września 2009 r. Uwaga: Przyjmujemy, że 0 nie
Bardziej szczegółowoCo to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,
wprowadzenie Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, w przepisie tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm będzie określony.
Bardziej szczegółowoSchematy blokowe. Algorytmy Marek Pudełko
Schematy blokowe Algorytmy Marek Pudełko Metody zapisu algorytmów Algorytmy można zapisywać w postaci słownej, listy kroków lub symbolicznej - używając metajęzyków. Metajęzyk to język bardzo ogólny - opisujący
Bardziej szczegółowoW przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby
Część XI C++ W folderze nazwisko36 program za każdym razem sprawdza oba warunki co niepotrzebnie obciąża procesor. Ten problem można rozwiązać stosując instrukcje if...else Instrukcja if wykonuje polecenie
Bardziej szczegółowoMetodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
Bardziej szczegółowoTechnologia informacyjna Algorytm Janusz Uriasz
Technologia informacyjna Algorytm Janusz Uriasz Algorytm Algorytm - (łac. algorithmus); ścisły przepis realizacji działań w określonym porządku, system operacji, reguła komponowania operacji, sposób postępowania.
Bardziej szczegółowoAlgorytmy, reprezentacja algorytmów.
Algorytmy, reprezentacja algorytmów. Wprowadzenie do algorytmów Najważniejszym pojęciem algorytmiki jest algorytm (ang. algorithm). Nazwa pochodzi od nazwiska perskiego astronoma, astrologa, matematyka
Bardziej szczegółowoPodstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
Bardziej szczegółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Bardziej szczegółowo