Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

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

Download "Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc"

Transkrypt

1 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2007/2008 Wykład nr 7 ( )

2 Rok akademicki 2007/2008, Wykład nr 7 2/44 Plan wykładu nr 7 Definicje algorytmu komputerowego Sposoby opisu algorytmów opis słowny schemat blokowy pseudokod język programowania Klasyfikacje algorytmów Rekurencja ZłoŜoność obliczeniowa Języki programowania Generacje języków programowania

3 Rok akademicki 2007/2008, Wykład nr 7 3/44 Algorytm - definicje Definicja 1 Algorytm to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania Definicja 2 Metoda rozwiązania zadania Definicja 3 Ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych zwraca Ŝądane dane wyjściowe zwane wynikiem działania algorytmu Definicja 4 Skończony zbiór reguł, wskazujący kolejność operacji przy rozwiązywaniu problemu pewnego typu

4 Rok akademicki 2007/2008, Wykład nr 7 4/44 Algorytmy Słowo algorytm pochodzi od nazwiska Mohammed ibn Musa al-khowarizmiego (po łacinie pisane jako Algorismus), matematyka perskiego z IX wieku i początkowo oznaczało w Europie sposób obliczeń oparty na dziesiętnym systemie liczbowym Badaniem algorytmów zajmuje się algorytmika Algorytm moŝe zostać zaimplementowany w postaci programu komputerowego lub dla innego urządzenia Ten sam algorytm moŝe być zaimplementowany w róŝny sposób przy uŝyciu róŝnych języków programowania Jeśli dany algorytm da się wykonać na maszynie o dostępnej mocy obliczeniowej i pamięci oraz akceptowalnym czasie, to mówi się Ŝe jest to algorytm obliczalny

5 Rok akademicki 2007/2008, Wykład nr 7 5/44 Algorytmy Podstawowe cechy algorytmu Algorytm powinien posiadać dane wejściowe (w ilości większej lub równej zeru) pochodzące z dobrze zdefiniowanego zbioru Algorytm powinien zwracać pewien wynik Algorytm powinien być precyzyjnie zdefiniowany (kaŝdy krok algorytmu musi być jednoznacznie określony) Algorytm powinien być zawsze poprawny (dla kaŝdego z załoŝonego dopuszczalnego zestawu danych wejściowych) Algorytm powinien zawsze kończyć się po skończonej liczbie kroków (powinna istnieć poprawnie działająca reguła stopu algorytmu) Algorytm powinien być efektywny (jak najkrótszy czas wykonania i jak najmniejsze zapotrzebowanie na pamięć)

6 Rok akademicki 2007/2008, Wykład nr 7 6/44 Sposoby opisu algorytmów 1. Opis w punktach, w języku naturalnym (opis słowny, lista kroków) 2. Za pomocą schematu blokowego 3. Z zastosowaniem pseudokodu (język publikacyjny), czyli niezbyt formalnej odmianie języka programowania (np. odformalizowany Pascal, C, C++) 4. W konkretnym języku programowania, np. Pascalu, C, C++, Matlabie

7 Rok akademicki 2007/2008, Wykład nr 7 7/44 Opis słowny s algorytmu Opis słowny przypomina przepis kulinarny z ksiąŝki kucharskiej Przykład: Algorytm: Dane wejściowe: Dane wyjściowe: Kolejne kroki: Tortilla (na podstawie PodróŜy kulinarnych R. Makłowicza) 0,5 kg ziemniaków, 100 g kiełbasy Chorizo, 8 jajek gotowa Tortilla 1. Ziemniaki obrać i pokroić w plasterki 2. Kiełbasę pokroić w plasterki 3. Ziemniaki wrzucić na gorącą oliwę na patelni i przyrumienić z obu stron 4. Kiełbasę wrzucić na gorącą oliwę na patelni i przyrumienić z obu stron 5. Ubić jajka i dodać do połączonych ziemniaków i kiełbasy 6. Dodać sól i pieprz 7. UsmaŜyć z obu stron wielki omlet nadziewany chipsami ziemniaczanymi z kiełbaską

8 Rok akademicki 2007/2008, Wykład nr 7 8/44 Schematy blokowe Elementy występujące na schematach blokowych: początek algorytmu moŝe występować tylko jeden raz koniec algorytmu musi występować przynajmniej jeden raz Opis operacji elementarna instrukcja blok funkcyjny operacje obliczeniowe lub organizacyjne blok decyzyjny operacje warunkowe testy

9 Rok akademicki 2007/2008, Wykład nr 7 9/44 Sposoby opisu algorytmów - przykłady Przykład: algorytm Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb - NWD(a,b) Opis w punktach: Dane wejściowe: Dane wyjściowe: Kolejne kroki: niezerowe liczby naturalne a i b NWD(a,b) 1. Czytaj liczby a i b 2. Dopóki a i b są większe od zera, powtarzaj krok 3, a następnie przejdź do kroku 4 3. Jeśli a jest większe od b, to weź za a resztę z dzielenia a przez b, w przeciwnym razie weź za b resztę z dzielenia b przez a 4. Przyjmij jako największy wspólny dzielnik tę z liczb a i b, która pozostała większa od zera 5. Drukuj NWD(a,b)

10 Rok akademicki 2007/2008, Wykład nr 7 10/44 Sposoby opisu algorytmów - przykłady Przykład: algorytm Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb - NWD(a,b) Przykład: NWD(1675,3752) =? a b Dzielenie większej liczby przez mniejszą Zamiana b/a = 3752/1675 = 2 reszta 402 b = a/b = 1675/402 = 4 reszta 67 a = b/a = 402/67 = 6 reszta 0 b = KONIEC NWD(1675,3752) = 67

11 Rok akademicki 2007/2008, Wykład nr 7 11/44 Sposoby opisu algorytmów - przykłady Przykład: algorytm Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb - NWD(a,b) Schemat blokowy:

12 Rok akademicki 2007/2008, Wykład nr 7 12/44 Sposoby opisu algorytmów - przykłady Przykład: algorytm Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb - NWD(a,b) Pseudokod: NWD(a,b) while a>0 i b>0 do if a>b then a a mod b else b b mod a if a>0 then return a else return b

13 Rok akademicki 2007/2008, Wykład nr 7 13/44 Sposoby opisu algorytmów - przykłady Przykład: algorytm Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb - NWD(a,b) Język C: int NWD(int a, int b) { while (a>0 && b>0) if (a>b) a = a % b; else b = b % a; if (a>0) return a; else return b; }

14 Rok akademicki 2007/2008, Wykład nr 7 14/44 Sposoby opisu algorytmów - przykłady Przykład: zamiana zapisu liczby naturalnej l danej w systemie dziesiętnym, na zapis w systemie pozycyjnym o podstawie p Opis w punktach: Dane wejściowe: Dane wyjściowe: Kolejne kroki: liczba l w systemie dziesiętnym, podstawa systemu p zapis liczby l w systemie o podstawie p 1. Czytaj liczby l i p 2. Dopóki l > 0 powtarzaj krok 3 3. Wykonaj dzielenie całkowite liczby l przez p, resztę z dzielenia zapamiętaj jako kolejną cyfrę przedstawienia liczby l w nowym systemie pozycyjnym 4. Drukuj cyfry przedstawienia liczby l w nowym systemie pozycyjnym w odwrotnej kolejności niŝ były zapamiętywane

15 Rok akademicki 2007/2008, Wykład nr 7 15/44 Sposoby opisu algorytmów - przykłady Przykład: zamiana zapisu liczby naturalnej l danej w systemie dziesiętnym, na zapis w systemie pozycyjnym o podstawie p Przykład: 1751 (10) =?(6) 1751(10) = 12035(6) 1751/ 6 291/ 6 48 / 6 8 / 6 1/ 6 = = = = = reszta reszta reszta reszta reszta kolejność odczytywania cyfr liczby w systemie szóstkowym

16 Rok akademicki 2007/2008, Wykład nr 7 16/44 Klasyfikacje algorytmów Podstawowe paradygmaty tworzenia programów komputerowych: strategia dziel i zwycięŝaj programowanie dynamiczne algorytmy zachłanne programowanie liniowe algorytmy siłowe (brute force) algorytmy probabilistyczne heurystyka NajwaŜniejsze techniki implementacji algorytmów komputerowych: proceduralność obiektowość praca sekwencyjna praca wielowątkowa praca równoległa rekurencja

17 Rok akademicki 2007/2008, Wykład nr 7 17/44 Strategia dziel i zwycięŝ ęŝaj Strategia dziel i zwycięŝaj (ang. divide and conquer) jest strategią konstruowania algorytmów, jedną z najefektywniejszych metod w informatyce W strategii tej zazwyczaj rekurencyjnie dzielimy problem na dwa lub więcej mniejszych problemów tego samego (lub podobnego) typu tak długo, aŝ stanie się on wystarczająco prosty do bezpośredniego rozwiązania Rozwiązania otrzymane dla mniejszych podproblemów są scalane w celu uzyskania rozwiązania całego zadania Przykłady zastosowań: sortowanie szybkie (quicksort) wyszukiwanie binarne - polega na sprawdzeniu czy szukany element znajduje się w uporządkowanej tablicy, jeśli tak, to zwraca jego indeks

18 Rok akademicki 2007/2008, Wykład nr 7 18/44 Programowanie dynamiczne Konstrukcja programu wykorzystującego zasadę programowania dynamicznego moŝe być sformułowana w trzech etapach: Koncepcja: dla danego problemu stwórz rekurencyjny model jego rozwiązania (wraz z jednoznacznym określeniem przypadków elementarnych) stwórz tablicę, w której będzie moŝna zapamiętywać rozwiązania przypadków elementarnych i podproblemów, które zostaną obliczone na ich podstawie Inicjacja: wpisz do tablicy wartości numeryczne odpowiadające przypadkom elementarnym Progresja: na podstawie wartości wpisanych do tablicy, uŝywając formuły rekurencyjnej, oblicz rozwiązanie problemu wyŝszego rzędu i wpisz je do tablicy postępuj w ten sposób do osiągnięcia poŝądanej wartości

19 Rok akademicki 2007/2008, Wykład nr 7 19/44 Programowanie dynamiczne - przykład Koncepcja: (F 10 w ciągu Fibonaciego) model rekurencyjny rozwiązania + przypadki elementarne F tablica z rozwiązaniem = 0 0, F = 1 1, F = + n Fn 1 Fn 2 n F n 9 10 Inicjacja: wpisanie do tablicy wartości dla przypadków elementarnych n F n Progresja: obliczenie rozwiązań problemów wyŝszego rzędu aŝ do osiągnięcia poŝądanej wartości i wpisanie ich do tablicy n F n

20 Rok akademicki 2007/2008, Wykład nr 7 20/44 Algorytmy zachłanne anne Algorytm zachłanny (ang. greedy algorithm) jest to algorytm, w którym w celu rozwiązania pewnego zadania w kaŝdym kroku dokonuje się zachłannego, tj. najlepiej rokującego w danym momencie wyboru rozwiązania częściowego Algorytm podejmuje decyzję lokalnie optymalną, dokonuje wyboru wydającego się w danej chwili najlepszym, kontynuując rozwiązanie podproblemu wynikające z podjętej decyzji Algorytmy zachłanne stosowane są przede wszystkim w optymalizacji Musi zawsze istnieć kryterium pozwalające ocenić jakość rozwiązania Dokonywany lokalnie najkorzystniejszy wybór ma w załoŝeniu prowadzić do znalezienia globalnego optymalnego rozwiązania

21 Rok akademicki 2007/2008, Wykład nr 7 21/44 Programowanie liniowe Programowanie liniowe Programowanie liniowe to klasa programowania matematycznego, w której wszystkie warunki ograniczające oraz funkcja celu mają postać liniową, np. warunki ograniczające: Zadanie polega na zmaksymalizowaniu (zminimalizowaniu) funkcji celu: wiele problemów moŝna sprowadzić do maksymalizacji lub minimalizacji pewnej funkcji celu, przy ograniczonych zasobach i antagonistycznych warunkach programowanie liniowe znalazło szerokie zastosowanie w teorii decyzji, np. do optymalizacji planu produkcyjnego = α α α n n n n n n x a x a x a x a x a x a x a x a x a K K K c n x n x c x c f = K α

22 Rok akademicki 2007/2008, Wykład nr 7 22/44 Programowanie liniowe Przykład: Fabryka produkuje urządzenia A i B. W ciągu jednego dnia moŝna wytworzyć łącznie 200 urządzeń. Wyprodukowanie urządzenia A zajmuje 3 roboczogodziny, a urządzenia B - 4 roboczogodziny. Dzienna liczba dostępnych roboczogodzin wynosi 600. W ciągu jednego dnia naleŝy wyprodukować min. 50 urządzeń A i min. 50 urządzeń B. Zysk ze sprzedaŝy urządzenia A to 1000 PLN, a B PLN. Ile urządzeń A i B naleŝy dziennie wyprodukować, aby zysk był jak największy? Warunki ograniczające: x 3 x x A A + x A, x x B B 50 B 600 Funkcja celu: f = 1000 x A x B

23 Rok akademicki 2007/2008, Wykład nr 7 23/44 Algorytmy siłowe Algorytm siłowy (ang. brute force) jest to określenie algorytmu opierającego się na sukcesywnym sprawdzaniu wszystkich moŝliwych kombinacji w poszukiwaniu rozwiązania problemu Algorytm siłowy jest zazwyczaj nieoptymalny, ale najprostszy w implementacji W programowaniu termin ten odnosi się do dowolnego algorytmu, który rozwiązuje problem przez weryfikację i ocenę wszystkich wariantów postępowania Stosowane jest takŝe pojęcie ataku brute force, odnoszące się do przeprowadzanych przez człowieka lub program komputerowy prób złamania zabezpieczeń, np. odgadnięcia hasła, poprzez wypróbowanie wszystkich moŝliwych kombinacji cyfr, liter i innych znaków

24 Rok akademicki 2007/2008, Wykład nr 7 24/44 Algorytmy probabilistyczne Ogólnie algorytmy moŝna podzielić na deterministyczne i probabilistyczne Dane wejściowe Dane wejściowe Algorytm deterministyczny Algorytm probabilistyczny Generator liczb losowych Dane wyjściowe Dane wyjściowe Działanie algorytmu deterministycznego jest całkowicie zdeterminowane przez warunki początkowe (wejście), tzn. dla takich samych danych wejściowych algorytm zawsze zwraca taki sam wynik Algorytm probabilistyczny albo randomizowany (ang. randomized algorithm) to algorytm, który do swojego działania uŝywa losowości (generatora liczb pseudolosowych)

25 Rok akademicki 2007/2008, Wykład nr 7 25/44 Algorytmy probabilistyczne Główną zaletą algorytmów probabilistycznych jest działanie w średnim przypadku, dzięki czemu złośliwe dane wejściowe nie wydłuŝają jego działania Wśród algorytmów probabilistycznych wyróŝnia się algorytmy Las Vegas i algorytmy Monte Carlo Algorytm Las Vegas: Algorytm Las Vegas zawsze zwraca prawidłową odpowiedź, ale jego czas działania nie jest z góry ustalony (np. szukanie litery a w tablicy zawierającej połowę liter a i połowę liter b ) Algorytm Mone Carlo: Algorytm Monte Carlo kończy się w ustalonym czasie, ale moŝe z pewnym prawdopodobieństwem zwrócić zły wynik lub zwrócić wynik tylko z pewną dokładnością (np. obliczanie całek oznaczonych)

26 Rok akademicki 2007/2008, Wykład nr 7 26/44 Algorytmy probabilistyczne - algorytm Monte Carlo obliczamy przybliŝoną wartość całki oznaczonej metodą Monte Carlo: dla funkcji f(x), której całkę chcemy obliczyć w przedziale [x p,x k ] wyznaczamy prostokąt obejmujący pole pod wykresem tej funkcji o wysokości h i długości podstawy (x k -x p ) losujemy n punktów i zliczamy te punkty n w, które wpadają w pole pod wykresem funkcji wartość całki obliczana jest na podstawie wzoru przybliŝonego: I x k = x p x k I = f ( x) dx x p nw f ( x) dx h( xk x p ) n

27 Rok akademicki 2007/2008, Wykład nr 7 27/44 Rekurencja Rekurencja lub rekursja (ang. recursion, z łac. recurrere, przybiec z powrotem) jest to odwoływanie się np. funkcji do samej siebie Rekurencja polega na tym, Ŝe rozwiązanie danego problemu wyraŝa się za pomocą rozwiązań tego samego problemu, ale dla danych o mniejszych rozmiarach W matematyce mechanizm rekurencji stosowany jest dość często do definiowania lub opisywania algorytmów UŜycie opisu rekurencyjnego w przypadku algorytmu pozwala na przejrzysty, zwarty opis funkcji lub procedury Nie zawsze rozwiązanie rekurencyjne prowadzi do rozwiązania efektywnego, czasem prowadzi do obniŝenia efektywności programu Rekurencja zawsze zwiększa zapotrzebowanie programu na pamięć

28 Rok akademicki 2007/2008, Wykład nr 7 28/44 Rekurencja - przykłady Przykład: silnia liczby n n! = 1 n(n 1)! dla dla n n = 0 1 int silnia(int n) { if (n==0) return 1; else return n*silnia(n-1); }

29 Rok akademicki 2007/2008, Wykład nr 7 29/44 Rekurencja - przykłady Przykład: definicja ciągu Fibonacciego F n = 0 1 F n dla n = 0 dla n = Fn 2 dla n > 1 int F(int n) { if (n==0) return 0; else if (n==1) return 1; else return F(n-1) + F(n-2); }

30 Rok akademicki 2007/2008, Wykład nr 7 30/44 Rekurencja - przykłady Przykład: największy wspólny dzielnik - algorytm Euklidesa NWD(a, b) = a NWD(b,a mod b) dla dla b b = 0 1 int NWD(int a, int b) { if (b==0) return a; else return NWD(b,a % b); }

31 Rok akademicki 2007/2008, Wykład nr 7 31/44 ZłoŜoność obliczeniowa W celu rozwiązania danego problemu obliczeniowego staramy się znaleźć algorytm najbardziej efektywny, tzn. najszybszy i o moŝliwie małym zapotrzebowaniu na pamięć Do oceny efektywności programu słuŝy tzw. złoŝoność obliczeniowa ZłoŜoność obliczeniowa nazywana jest takŝe kosztem algorytmu ZłoŜoność obliczeniowa algorytmu jest to ilość zasobów (czas, pamięć, liczba procesorów) potrzebnych do jego działania ZłoŜoność obliczeniowa algorytmu jest funkcją rozmiaru danych wejściowych (np. sortowanie tablicy - im większa tablica tym więcej zasobów jest potrzebnych do jej posortowania) W zaleŝności od rozwaŝanego zasobu mówimy o: złoŝoności czasowej złoŝoności pamięciowe

32 Rok akademicki 2007/2008, Wykład nr 7 32/44 ZłoŜoność obliczeniowa ZłoŜoność czasowa: Miarą złoŝoności czasowej jest liczba operacji podstawowych (dominujących) w zaleŝności od rozmiaru danych wejściowych Operacje podstawowe to np. podstawienie, porównanie, operacja arytmetyczna Pomiar czasu zegarowego nie jest stosowany ze względu na silną zaleŝność od implementacji algorytmu, zastosowanego kompilatora, komputera, doświadczenia programisty ZłoŜoność pamięciowa: ZłoŜoność pamięciowa jest miarą wykorzystania pamięci (liczba komórek pamięci)

33 Rok akademicki 2007/2008, Wykład nr 7 33/44 ZłoŜoność obliczeniowa ZłoŜoność obliczeniowa zaleŝy od postaci danych na jakich algorytm operuje Dla pewnych, specyficznych danych algorytm moŝe wykonać się bardzo szybko, dla innych zaś znacznie wolniej Z powyŝszych powodów rozróŝnia się: złoŝoność pesymistyczną złoŝoność średnią ZłoŜoność pesymistyczna: Odpowiada najbardziej niesprzyjającym dla algorytmu danym ZłoŜoność średnia: ZłoŜoność uśredniona po wszystkich moŝliwych zestawach danych ZłoŜoność dla typowych danych wejściowych

34 Rok akademicki 2007/2008, Wykład nr 7 34/44 ZłoŜoność obliczeniowa Porównując złoŝoność algorytmów bierze się pod uwagę asymptotyczne tempo wzrostu, czyli to jak zachowuje się funkcja określająca złoŝoność wraz ze wzrostem wartości jej argumentów Asymptotyczne tempo wzrostu opisuje jak szybko dana funkcja rośnie lub maleje abstrahując od konkretnej postaci tych zmian Do opisu asymptotycznego tempa wzrostu stosuje się notację duŝego O, zwaną notacją Landaua

35 Rok akademicki 2007/2008, Wykład nr 7 35/44 Notacja O notacja ta wyraŝa złoŝoność matematyczną algorytmu w notacji tej po literze O występuje wyraŝenie w nawiasach zawierające literę n, która oznacza liczbę elementów, na której działa algorytm za miarę dobroci algorytmu przyjmuje się liczbę wykonywanych w nim elementarnych operacji, np. dodawanie, mnoŝenie, porównywanie Przykład: O(n) O(n 2 ) - złoŝoność algorytmu jest prostą funkcją liczby elementów - (jeśli sortowanie 1000 elementów zajmuje 1 s, to sortowanie - (2000 elementów zajmie 2 s) - czas konieczny do wykonania algorytmu rośnie wraz z kwadratem liczby elementów (przy podwojeniu liczby elementów ich obsługa będzie trwała cztery razy dłuŝej)

36 Rok akademicki 2007/2008, Wykład nr 7 36/44 Notacja O porównanie najczęściej występujących złoŝoności: Elementy O(log n) O(n) O(n log n) O(n 2 ) O(2 n ) , , , O(log n) - złoŝoność logarytmiczna O(n) - złoŝoność liniowa O(n log n) - złoŝoność liniowo-logarytmiczna O(n 2 ) - złoŝoność kwadratowa O(2 n ) - złoŝoność wykładnicza

37 Rok akademicki 2007/2008, Wykład nr 7 37/44 Notacja O Uwagi: przy porównywaniu róŝnych wyraŝeń O(n) stałe nie mają znaczenia i mogą być ignorowane, np. O(2n 2 ) i O(9n 2 ) mogą być rozwaŝane jak O(n 2 ) połączenie algorytmów o róŝnych złoŝonościach tworzy algorytm o wyŝszej z połączonych złoŝoności, np. dołączenie algorytmu o złoŝoności O(n 2 ) do algorytmu o złoŝoności O(n) tworzy algorytm o złoŝoności O(n 2 ) zagłębianie algorytmów (tj. mnoŝenie ich wpływu) tworzy algorytm z pomnoŝoną złoŝonością, np. algorytm O(n) zagłębiony w O(log n) daje w wyniku O(n log n)

38 Rok akademicki 2007/2008, Wykład nr 7 38/44 Język programowania Język programowania jest to usystematyzowany sposób przekazywania komputerowi poleceń do wykonania Język programowania pozwala na dokładny zapis algorytmów oraz innych zadań jakie komputer ma wykonać

39 Rok akademicki 2007/2008, Wykład nr 7 39/44 Język programowania Składnia języka określa: sposób opisywania struktur sterujących sposób opisywania struktur danych sposób tworzenia poprawnych symboli do nazywania zmiennych i struktur danych sposób stosowania interpunkcji, tj. znaków typu spacje, średniki, kropki, nawiasy sposób budowy poprawnych wyraŝeń Semantyka języka określa znaczenie poprawnych składniowo wyraŝeń

40 Rok akademicki 2007/2008, Wykład nr 7 40/44 Język programowania Implementacja języka - konkretna realizacja języka dla maszyn określonego typu Program komputerowy - zbiór (ciąg) instrukcji opisujących zadanie, które ma wykonać komputer Program komputerowy - pewna metoda obliczeniowa wyraŝona za pomocą języka programowania Kod źródłowy - postać programu wyraŝona w języku programowania Przetwarzanie kodu źródłowego odbywa się na dwa sposoby kompilacja (kompilowane języki programowania) interpretacja (interpretowane języki programowania)

41 Rok akademicki 2007/2008, Wykład nr 7 41/44 Język programowania Kompilacja: Kod źródłowy jest tłumaczony do postaci kodu maszynowego (sekwencji elementarnych operacji gotowych do bezpośredniego przetworzenia przez procesor) Kompilacja do kodu maszynowego zapewnia najwyŝszą wydajność Wygenerowany kod jest ściśle powiązany z platformą sprzętową Interpretacja: Kod źródłowy jest na bieŝąco tłumaczony i wykonywany przez dodatkowy program zwany interpreterem Języki interpretowane zapewniają większą przenośność programów, które są często niezaleŝne od platformy i systemu operacyjnego Programy w językach interpretowanych są mniej wydajne niŝ w językach kompilowanych

42 Rok akademicki 2007/2008, Wykład nr 7 42/44 Generacje językj zyków w programowania Generacje języków opisują zaawansowanie (rozbudowanie) struktury języka, co jest równocześnie związane z łatwością posługiwania się nimi im mniejsza liczba oznaczająca generację języka tym bardziej jest on zbliŝony do sprzętu im większa generacja języka tym jest on bardziej intuicyjny i niezaleŝny od sprzętu

43 Rok akademicki 2007/2008, Wykład nr 7 43/44 Języki programowania Istnieje około 2500 języków programowania

44 Rok akademicki 2007/2008, Wykład nr 7 44/44 Języki programowania

45 Rok akademicki 2007/2008, Wykład nr 7 45/44 Koniec wykładu nr 7 Dziękuj kuję za uwagę!

46 Rok akademicki 2007/2008, Wykład nr 7 46/44 Źródła a (KsiąŜ ąŝki): Adamski T., Ogrodzki J.: Algorytmy komputerowe i struktury danych. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, Rozdz Wprowadzenie (str. 9-48) Goczyła K.: Struktury danych. Wydawnictwo Politechniki Gdańskiej, Gdańsk, Rozdz. 1.3 Miary jakości algorytmów (str. 9-10) Goczyła K.: Struktury danych. Wydawnictwo Politechniki Gdańskiej, Gdańsk, Rozdz. 1.4 Szacowanie (str ) Alexander R., Bensley G.: C++. Optymalizacja oprogramowania. Wydawnictwo RM, Warszawa, Rozdz. 5 Pomiary czasu i złoŝoności (str ) Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych. WNT, Warszawa, Rozdz ZłoŜoność obliczeniowa (str ) Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych. WNT, Warszawa, Rozdz Metody układania algorytmów (str ) Cormen T.H., Leiserson Ch.E., Rivest R.L., Stein C.: Wprowadzenie do algorytmów. WNT, Warszawa, Rozdz. 1. Rola algorytmów w obliczeniach (str. 4-12)

47 Rok akademicki 2007/2008, Wykład nr 7 47/44 Źródła a (KsiąŜ ąŝki): Cormen T.H., Leiserson Ch.E., Rivest R.L., Stein C.: Wprowadzenie do algorytmów. WNT, Warszawa, Rozdz Projektowanie algorytmów (str ) Cormen T.H., Leiserson Ch.E., Rivest R.L., Stein C.: Wprowadzenie do algorytmów. WNT, Warszawa, Rozdz. 4. Rekurencje (str ) Wróblewski P.: Algorytmy, struktury danych i techniki programowania. Wydanie III, Helion, Gliwice, Rozdz. 1. Zanim wystartujemy (str ) Wróblewski P.: Algorytmy, struktury danych i techniki programowania. Wydanie III, Helion, Gliwice, Rozdz. 2. Rekurencja (str ) Wróblewski P.: Algorytmy, struktury danych i techniki programowania. Wydanie III, Helion, Gliwice, Rozdz. 9. Zaawansowane techniki programowania (str )

48 Rok akademicki 2007/2008, Wykład nr 7 48/44 Źródła a (Internet): - Algorytm - Dziel i zwycięŝaj - Programowanie dynamiczne - Algorytm zachłanny - Programowanie liniowe - Atak brute force - Algorytm probabilistyczny - Heurystyka - Rekurencja - ZłoŜoność obliczeniowa

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

Algorytmy komputerowe. dr inż. Jarosław Forenc

Algorytmy komputerowe. dr inż. Jarosław Forenc Rok akademicki 2010/2011, Wykład nr 9/10 2/38 Plan wykładu nr 9/10 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki

Bardziej szczegółowo

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2008/2009 Wykład nr 7 (24.05.2009) Rok akademicki 2008/2009, Wykład

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

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni z przedmiotu Podstawy Informatyki Kod przedmiotu: TS1C 100 003 Ćwiczenie pt. METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Bardziej szczegółowo

Struktura i funkcjonowanie komputera struktura połączeń, magistrala, DMA systemy pamięci komputerowych hierarchia pamięci, pamięć podręczna

Struktura i funkcjonowanie komputera struktura połączeń, magistrala, DMA systemy pamięci komputerowych hierarchia pamięci, pamięć podręczna Rok akademicki 2009/2010, Wykład nr 7 2/56 Plan wykładu nr 7 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2009/2010

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce

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

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

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury

Bardziej szczegółowo

Informatyka 1. Wykład nr 6 ( ) Plan wykładu nr 6. Politechnika Białostocka. - Wydział Elektryczny. Architektura von Neumanna

Informatyka 1. Wykład nr 6 ( ) Plan wykładu nr 6. Politechnika Białostocka. - Wydział Elektryczny. Architektura von Neumanna Rok akademicki 2008/2009, Wykład nr 6 2/61 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2008/2009

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

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

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

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

Podstawy programowania. Podstawy C# Przykłady algorytmów

Podstawy programowania. Podstawy C# Przykłady algorytmów Podstawy programowania Podstawy C# Przykłady algorytmów Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania

Bardziej szczegółowo

Efektywność algorytmów

Efektywność algorytmów Efektywność algorytmów Algorytmika Algorytmika to dział informatyki zajmujący się poszukiwaniem, konstruowaniem i badaniem własności algorytmów, w kontekście ich przydatności do rozwiązywania problemów

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Organizacja wykładu. Problem Sortowania. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury

Bardziej szczegółowo

Technologie informacyjne Wykład VII-IX

Technologie informacyjne Wykład VII-IX Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż

Bardziej szczegółowo

1. Analiza algorytmów przypomnienie

1. Analiza algorytmów przypomnienie 1. Analiza algorytmów przypomnienie T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Wprowadzenie do algorytmów, rozdziały 1-4 Wydawnictwa naukowo-techniczne (2004) Jak mierzyć efektywność algorytmu?

Bardziej szczegółowo

INFORMATYKA SORTOWANIE DANYCH.

INFORMATYKA SORTOWANIE DANYCH. INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania

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

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Algorytm i złożoność obliczeniowa algorytmu

Algorytm i złożoność obliczeniowa algorytmu Algorytm i złożoność obliczeniowa algorytmu Algorytm - przepis postępowania, którego wykonanie prowadzi do rozwiązania określonego problemu określa czynności, jakie należy wykonać wyszczególnia wszystkie

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

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

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

Efektywna metoda sortowania sortowanie przez scalanie

Efektywna metoda sortowania sortowanie przez scalanie Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy

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

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

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

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

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

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe: Informacje podstawowe: MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1 INFORMATYKA 1 - Pracownia specjalistyczna 30h Kod przedmiotu: ES1A200 009, ECTS: 4 pkt. Kierunek: Elektrotechnika,

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

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1 Informacje podstawowe: MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1 INFORMATYKA 1 - Pracownia specjalistyczna 30h Kod przedmiotu: EZ1A200 010, ECTS: 6 pkt. Kierunek: Elektrotechnika,

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu

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

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

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy

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

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

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

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Sortowanie danych. Jolanta Bachan. Podstawy programowania Sortowanie danych Podstawy programowania 2013-06-06 Sortowanie przez wybieranie 9 9 9 9 9 9 10 7 7 7 7 7 10 9 1 3 3 4 10 7 7 10 10 10 10 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 3 1 1 1 1 1 1 Gurbiel et al. 2000

Bardziej szczegółowo

Strategia "dziel i zwyciężaj"

Strategia dziel i zwyciężaj Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe: Informacje podstawowe: MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1 INFORMATYKA 1 - Pracownia specjalistyczna 30h Kod przedmiotu: ES1A200 009, ECTS: 4 pkt. Kierunek: Elektrotechnika,

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17 Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2015 2019 Realizacja w roku akademickim 2016/17 1.1. Podstawowe informacje o przedmiocie/module Nazwa przedmiotu/ modułu

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17 Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2016 2020 Realizacja w roku akademickim 2016/17 1.1. Podstawowe informacje o przedmiocie/module Nazwa przedmiotu/ modułu

Bardziej szczegółowo

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami. Wykład 1 Wprowadzenie do algorytmów Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami Wykaz literatury 1. N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end; Rekurencja Wykład: rekursja, funkcje rekurencyjne, wywołanie samej siebie, wyznaczanie poszczególnych liczb Fibonacciego, potęgowanie, algorytm Euklidesa REKURENCJA Rekurencja (z łac. recurrere), zwana

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

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

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

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

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe: Informacje podstawowe: MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1 INFORMATYKA 1 - Pracownia specjalistyczna 30h Kod przedmiotu: ES1A200 009, ECTS: 4 pkt. Kierunek: Elektrotechnika,

Bardziej szczegółowo

Algorytmy od problemu do wyniku

Algorytmy od problemu do wyniku Algorytmy Etapy tworzenia programu: 1) Sformułowanie zadania analiza problemu. 2) Opracowanie algorytmu sposób rozwiązania. 3) Zapisanie algorytmu w języku programowania kodowanie programu. 4) Kompilowanie

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

Wprowadzenie do złożoności obliczeniowej

Wprowadzenie do złożoności obliczeniowej problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów

Bardziej szczegółowo

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln) Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia II stopnia, rok 1 Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln) 1. Informacje ogólne

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

koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013

koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013 Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia II stopnia, rok 1 Sylabus modułu: Matematyczne podstawy informatyki (03-MO2S-12-MPIn) 1. Informacje ogólne koordynator

Bardziej szczegółowo

Algorytmy w teorii liczb

Algorytmy w teorii liczb Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Algorytmy i programowanie Algorithms and Programming Kierunek: Zarządzanie i Inżynieria Produkcji Rodzaj przedmiotu: kierunkowy Poziom studiów: studia I stopnia forma studiów: studia

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

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

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

Algorytmy i struktury danych Matematyka III sem.

Algorytmy i struktury danych Matematyka III sem. Algorytmy i struktury danych Matematyka III sem. 30 godz. wykł. / 15 godz. ćw. / 15 godz. projekt dr inŝ. Paweł Syty, 413GB, sylas@mif.pg.gda.pl, http://sylas.info Literatura T.H. Cormen i inni, Wprowadzenie

Bardziej szczegółowo

Projektowanie i Analiza Algorytmów

Projektowanie i Analiza Algorytmów POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNIK INFORMACYJNYCH Projektowanie i Analiza Algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład

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

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

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

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą

Bardziej szczegółowo

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

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

KARTA MODUŁU KSZTAŁCENIA

KARTA MODUŁU KSZTAŁCENIA KARTA MODUŁU KSZTAŁCENIA I. Informacje ogólne 1 Nazwa modułu kształcenia Algorytmy i struktury danych 2 Nazwa jednostki prowadzącej moduł Instytut Informatyki, Zakład Informatyki Stosowanej 3 Kod modułu

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę Zaliczenie Egzamin Ocena lub Zerówka Wykład z Zaliczenie Ocena Ćwiczenie Projekty 3 zadania Na ocenę Sylabus O http://wmii.uwm.edu.pl/~jakula/sylabus_23 17N1-ALISTD_PL.pdf JAK? CO? ILE? Polecane Cormen

Bardziej szczegółowo

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n

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

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje

Bardziej szczegółowo

Technologie Informatyczne Wykład VII

Technologie Informatyczne Wykład VII Technologie Informatyczne Wykład VII A. Matuszak (1) 22 listopada 2007 A. Matuszak (1) Technologie Informatyczne Wykład VII A. Matuszak (2) Technologie Informatyczne Wykład VII (Rekursja) albo rekursja

Bardziej szczegółowo