Technologie Informacyjne Wykład 7

Wielkość: px
Rozpocząć pokaz od strony:

Download "Technologie Informacyjne Wykład 7"

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. 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ółowo

Zapis algorytmów (Algorytmy, Część II)

Zapis 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ółowo

Metody algortmiczne (Algorytmy Część IV)

Metody 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ółowo

Zapis algorytmów (Algorytmy, Część II)

Zapis 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ółowo

Jak tworzymy algorytmy? Wersja: 3

Jak 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ółowo

Zapis algorytmów (Algorytmy, Część II)

Zapis 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ółowo

Raport 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 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ółowo

Maszyna Turinga (Algorytmy Część III)

Maszyna 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ółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykł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ółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 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ółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

Podstawy 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ółowo

POLITECHNIKA OPOLSKA

POLITECHNIKA 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ółowo

Algorytm. a programowanie -

Algorytm. 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ółowo

Wprowadzenie do algorytmiki

Wprowadzenie 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ółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 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ółowo

POLITECHNIKA OPOLSKA

POLITECHNIKA 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ółowo

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

Informatyka 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ółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA 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ółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. 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ółowo

Rekurencja. 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. 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ółowo

Definicje. Algorytm to:

Definicje. 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ółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻ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ółowo

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy 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ółowo

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy 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ółowo

Algorytm. Krótka historia algorytmów

Algorytm. 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ółowo

1 Wprowadzenie do algorytmiki

1 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ółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm 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ółowo

Technologie informacyjne - wykład 12 -

Technologie 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ółowo

Podstawy programowania

Podstawy 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ółowo

wer.9 Wojciech Myszka, Maciej Panek grudzień 2014 r.

wer.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ółowo

Rekurencja (rekursja)

Rekurencja (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ółowo

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Podstawy 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ółowo

Typy 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:

Typy 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ółowo

Technologie 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 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ółowo

Algorytmika i pseudoprogramowanie

Algorytmika 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ółowo

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

ALGORYTMY 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ółowo

Algorytm. Krótka historia algorytmów

Algorytm. 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ółowo

Podstawy Programowania

Podstawy 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ółowo

Algorytmika. Algorytmy. prof. dr hab. inż. Joanna Józefowska. Poznań, rok akademicki 2008/2009. Plan wyk ladu Poj

Algorytmika. 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ółowo

Definicja algorytmu brzmi:

Definicja 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ółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja

Podstawy 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ółowo

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

1. 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ółowo

Algorytm - 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. 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ółowo

Algorytm. Algorytmy Marek Pudełko

Algorytm. 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ółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis 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ółowo

ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż. ADAM KOLIŃSKI ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż.

ZARZĄ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ółowo

Wykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch

Wykł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ółowo

Algorytmy. Programowanie Proceduralne 1

Algorytmy. 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ółowo

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Schematy 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ółowo

Algorytmy. Programowanie Proceduralne 1

Algorytmy. 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ółowo

Wstęp do informatyki

Wstę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ółowo

Poprawność algorytmów

Poprawność 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ółowo

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykł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ółowo

Podstawy algorytmiki Dariusz Piekarz

Podstawy 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ółowo

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Algorytm. 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ółowo

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

1. 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ółowo

Przeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej

Przeglad 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ółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, a/15

Matematyka 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ółowo

Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

Podstawy 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ółowo

Rekurencja. Przykład. Rozważmy ciąg

Rekurencja. 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ółowo

Programowanie 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 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ółowo

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Wykł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ółowo

CIĄGI wiadomości podstawowe

CIĄ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ółowo

W szkole podstawowej materiał przedstawiony powinien być w następującej kolejności:

W 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ółowo

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Algorytm. 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ółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy 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ółowo

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Wykł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ółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy 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ółowo

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wykł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ółowo

operacje 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.

operacje 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ółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy 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ółowo

Laboratorium 10: Maszyna stanów

Laboratorium 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ółowo

ALGORYTMY I PROGRAMY

ALGORYTMY 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ółowo

ALGORYTMY 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: 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ółowo

Podstawy Informatyki. Metalurgia, I rok niestacjonarne. Wykład 2 Algorytmy

Podstawy 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ółowo

Pętle. Dodał Administrator niedziela, 14 marzec :27

Pę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ółowo

Algorytmy i schematy blokowe

Algorytmy 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ółowo

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

11. 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ółowo

Klasa 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 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ółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elż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ółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstę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ółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny 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ółowo

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Zadanie 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ółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi 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ółowo

2.8. Algorytmy, schematy, programy

2.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ółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody 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ółowo

Metodyki i techniki programowania

Metodyki 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ółowo

Programowanie w języku C++ Grażyna Koba

Programowanie 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ółowo

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Instrukcje 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ółowo

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia

1. 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ółowo

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Co 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ółowo

Schematy blokowe. Algorytmy Marek Pudełko

Schematy 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ółowo

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

W 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ółowo

Metodyki i techniki programowania

Metodyki 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ółowo

Technologia informacyjna Algorytm Janusz Uriasz

Technologia 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ółowo

Algorytmy, reprezentacja algorytmów.

Algorytmy, 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ółowo

Podstawy Programowania Algorytmy i programowanie

Podstawy 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ółowo

Podstawy Programowania C++

Podstawy 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ółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdował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ółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE 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