Algorytmy i struktury danych. wykład 2
|
|
- Marta Matusiak
- 5 lat temu
- Przeglądów:
Transkrypt
1
2 Plan wykładu: Pojęcie algorytmu. Projektowanie wstępujące i zstępujące. Rekurencja.
3 Pojęcie algorytmu
4 Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy zadań, przetwarzając dane należące do pewnej klasy danych. Ciekawostka: Słowo algorytm pochodzi od łacińskiej wersji nazwiska perskiego matematyka Muhammad ibn Musa al-chuwarizmi, żyjącego w IX wieku. Algorytm ma przeprowadzić system z pewnego stanu początkowego do stanu końcowego. Algorytm może zostać zaimplementowany jako program komputerowy lub ciąg czynności dla innego urządzenia. Przykładem może tu być maszyna tkająca, wykorzystywana przez chińskich rzemieślników. Najprostszy przykład algorytmu przepis kuchenny: dane: lista produktów, zbiór czynności, wynik: potrawa.
5 Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy zadań, przetwarzając dane należące do pewnej klasy danych. Algorytmy wykonywane w życiu codziennym: przygotowywanie potraw, jazda samochodem, wchodzenie/wychodzenie z pomieszczenia, kupowanie w sklepach, obsługa pilota telewizyjnego, włączanie/wyłączanie urządzeń, i wiele innych.
6 Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy zadań, przetwarzając dane należące do pewnej klasy danych. Algorytmy wykonywane w życiu codziennym: przygotowywanie potraw, jazda samochodem, wchodzenie/wychodzenie z pomieszczenia, kupowanie w sklepach, obsługa pilota telewizyjnego, włączanie/wyłączanie urządzeń, i wiele innych. Gdzie można znaleźć algorytmy?: w systemach komputerowych, w telefonach komórkowych, w aparatach fotograficznych, w urządzeniach mechanicznych, wszędzie tam, gdzie wykonywane czynności można podzielić na powtarzające się czynności.
7 Pojęcie algorytmu Czynności związane z opracowaniem algorytmu: 1. określenie problemu, 2. określenie danych wejściowych, 3. określenie wyniku, jaki powinien zostać wyznaczony, 4. opracowania rozwiązania problemu. Algorytm powinien spełniać następujące założenia: 1. poprawność 2. jednoznaczność 3. skończoność 4. uniwersalność
8 Pojęcie algorytmu Czynności związane z opracowaniem algorytmu: 1. określenie problemu, 2. określenie danych wejściowych, 3. określenie wyniku, jaki powinien zostać wyznaczony, 4. opracowania rozwiązania problemu. Algorytm powinien spełniać następujące założenia: 1. poprawność 2. jednoznaczność 3. skończoność 4. uniwersalność dla każdego właściwego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników
9 Pojęcie algorytmu Czynności związane z opracowaniem algorytmu: 1. określenie problemu, 2. określenie danych wejściowych, 3. określenie wyniku, jaki powinien zostać wyznaczony, 4. opracowania rozwiązania problemu. Algorytm powinien spełniać następujące założenia: 1. poprawność 2. jednoznaczność 3. skończoność 4. uniwersalność dla każdego właściwego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników wykonanie algorytmu dla tych samych danych powoduje wyznaczenie tego samego wyniku
10 Pojęcie algorytmu Czynności związane z opracowaniem algorytmu: 1. określenie problemu, 2. określenie danych wejściowych, 3. określenie wyniku, jaki powinien zostać wyznaczony, 4. opracowania rozwiązania problemu. Algorytm powinien spełniać następujące założenia: 1. poprawność 2. jednoznaczność 3. skończoność 4. uniwersalność dla każdego właściwego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników każdy algorytm musi kiedyś zakończyć się wykonanie algorytmu dla tych samych danych powoduje wyznaczenie tego samego wyniku
11 Pojęcie algorytmu Czynności związane z opracowaniem algorytmu: 1. określenie problemu, 2. określenie danych wejściowych, 3. określenie wyniku, jaki powinien zostać wyznaczony, 4. opracowania rozwiązania problemu. Algorytm powinien spełniać następujące założenia: 1. poprawność 2. jednoznaczność 3. skończoność 4. uniwersalność dla każdego właściwego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników algorytm rozwiązuje dowolne zadanie z pewnej grupy zadań każdy algorytm musi kiedyś zakończyć się wykonanie algorytmu dla tych samych danych powoduje wyznaczenie tego samego wyniku
12 Pojęcie algorytmu Sposoby zapisywania algorytmów: 1. język naturalny 2. schematy blokowe 3. języki formalne 4. funkcje rekurencyjne
13 Pojęcie algorytmu Sposoby zapisywania algorytmów: 1. język naturalny 2. schematy blokowe 3. języki formalne 4. funkcje rekurencyjne Sposób najbardziej rozpowszechniony. Zalety: prostota zapisu, brak specyficznych konstrukcji formalnych, szeroki zasób słownictwa. Wady: mała precyzja, możliwe błędy interpretacji, miejscami zbyt mała zwięzłość.
14 Pojęcie algorytmu Sposoby zapisywania algorytmów: 1. język naturalny 2. schematy blokowe 3. języki formalne 4. funkcje rekurencyjne Sposób najbardziej rozpowszechniony. Zalety: prostota zapisu, brak specyficznych konstrukcji formalnych, szeroki zasób słownictwa. Wady: mała precyzja, możliwe błędy interpretacji, miejscami zbyt mała zwięzłość. Jest to sformalizowany zapis algorytmów. Zalety: stosowanie symboli graficznych i linii połączeń, łatwość interpretacji, łatwość wyznaczania bloków funkcjonalnych. Wady: techniczny brak możliwości przedstawiania dużych algorytmów.
15 Pojęcie algorytmu Sposoby zapisywania algorytmów: 1. język naturalny 2. schematy blokowe 3. języki formalne 4. funkcje rekurencyjne Sposób najbardziej rozpowszechniony. Zalety: prostota zapisu, brak specyficznych konstrukcji formalnych, szeroki zasób słownictwa. Wady: mała precyzja, możliwe błędy interpretacji, miejscami zbyt mała zwięzłość. Sposób najczęściej stosowany w praktyce. Zalety: stosowanie dowolnego języka programowania lub specjalnej notacji, zapewnia jednoznaczność zapisu. Jest to sformalizowany zapis algorytmów. Zalety: stosowanie symboli graficznych i linii połączeń, łatwość interpretacji, łatwość wyznaczania bloków funkcjonalnych. Wady: techniczny brak możliwości przedstawiania dużych algorytmów.
16 Pojęcie algorytmu Sposoby zapisywania algorytmów: 1. język naturalny 2. schematy blokowe 3. języki formalne 4. funkcje rekurencyjne Sposób stosowany wszędzie tam, gdzie łatwo można przedstawić rozwiązanie problemu przy pomocy rekurencji. Sposób najczęściej stosowany w praktyce. Zalety: stosowanie dowolnego języka programowania lub specjalnej notacji, zapewnia jednoznaczność zapisu. Sposób najbardziej rozpowszechniony. Zalety: prostota zapisu, brak specyficznych konstrukcji formalnych, szeroki zasób słownictwa. Wady: mała precyzja, możliwe błędy interpretacji, miejscami zbyt mała zwięzłość. Jest to sformalizowany zapis algorytmów. Zalety: stosowanie symboli graficznych i linii połączeń, łatwość interpretacji, łatwość wyznaczania bloków funkcjonalnych. Wady: techniczny brak możliwości przedstawiania dużych algorytmów.
17 Pojęcie algorytmu - schematy blokowe Symbole używane do tworzenia schematów blokowych: Symbol START Znaczenie Symbol określa miejsce rozpoczęcia czynności związanych z algorytmem. Można zdefiniować tylko jedno takie miejsce w całym schemacie. STOP Symbol określa miejsce zakończenia algorytmu. Możliwe jest definiowanie wielu miejsc zakończenia. A:= A + 10; Blok operacyjny, definiuje czynności wykonywane na danym etapie algorytmu. TAK A = B? NIE Symbol określa blok decyzyjny (rozgałęzienie). Pisz n Symbol określa blok wejście i wyjścia. Symbole połączeń między blokami (linia). Czasem po wyjściu z węzła używa się strzałki w celu określenia kierunku przepływu sterowania.
18 Pojęcie algorytmu - przykład Przykład algorytmu: Przedstawić algorytm obliczania n y= i=1 x (i)
19 Pojęcie algorytmu - przykład Przykład algorytmu: Przedstawić algorytm obliczania Rozwiązanie: a. opis za pomocą notacji: 1. y = 1 : idź do 2 2. i = 1 : idź do 3 3. y = y *x(i) : idź do 4 4. czy i = n? : tak_(idź do 6) nie_(idź do 5) 5. i = i + 1 : idź do 3 6. koniec n y= i=1 x (i)
20 Pojęcie algorytmu - przykład Przykład algorytmu: Przedstawić algorytm obliczania n y= i=1 x (i) Rozwiązanie: a. opis za pomocą notacji: b. opis przy pomocy schematu blokowego: 1. y = 1 : idź do 2 2. i = 1 : idź do 3 3. y = y *x(i) : idź do 4 4. czy i = n? : tak_(idź do 6) nie_(idź do 5) 5. i = i + 1 : idź do 3 6. koniec START y = 1 i = 1 i = i +1 y = y * x(i) NIE i = n? TAK STOP
21 Maszyna Turinga
22 Maszyna Turinga Maszyna Turinga jest to abstrakcyjny automat, służący do analizy algorytmów. Maszyna Turinga składa się nieskończenie długiej taśmy, podzielonej na kratki oraz głowicy przesuwającej się nad taśmą. Głowica ma możliwość odczytywania i zapisywania symboli. Pewnym przybliżeniem maszyny Turinga jest komputer klasy PC.
23 Maszyna Turinga Maszyna Turinga jest to abstrakcyjny automat, służący do analizy algorytmów. Maszyna Turinga składa się nieskończenie długiej taśmy, podzielonej na kratki oraz głowicy przesuwającej się nad taśmą. Głowica ma możliwość odczytywania i zapisywania symboli. Pewnym przybliżeniem maszyny Turinga jest komputer klasy PC. Podstawowe definicje: Zbiór symboli S={s i } Napis ciąg symboli alfabetu S, Głowica zbiór symboli, które będą przetwarzane przez maszynę Turinga alfabet, rozróżnia, odczytuje i zapisuje symbole alfabetu S na taśmie, przyjmuje jeden ze stanów q 1,..., q m, Stan maszyny określa stan głowicy q j i odczytany przez nią symbol s i S ij =(s i, q j ), Ruch głowicy Opisuje akcje, jaką ma wykonać głowica maszyny Turinga. Ruch głowicy jest reakcją maszyny na stan S ij i jest opisany przez R ij =(s k, K, q l ), gdzie: s k jest symbolem, który ma być zapisany przez głowicę, K określa sposób przesunięcia głowicy, q l jest stanem do którego ma przejść głowica.
24 Maszyna Turinga Tablica charakterystyczna maszyny Turinga jest to funkcja jednoznacznie określająca ruch R ij głowicy G, związany ze stanem S ij.
25 Maszyna Turinga Tablica charakterystyczna maszyny Turinga jest to funkcja jednoznacznie określająca ruch R ij głowicy G, związany ze stanem S ij. Przykład tablicy charakterystycznej: T q 1... q j... q m s 1 R R 1j... R 1m s i R i1... R ij... R im s n R n1... R nj... R nm
26 Maszyna Turinga Tablica charakterystyczna maszyny Turinga jest to funkcja jednoznacznie określająca ruch R ij głowicy G, związany ze stanem S ij. Przykład tablicy charakterystycznej: T q 1... q j... q m s 1 R R 1j... R 1m s i R i1... R ij... R im s n R n1... R nj... R nm Schemat maszyny Turinga: q i R ij G s k
27 Maszyna Turinga Twierdzenie: Każdy algorytm jest deterministyczny, jeśli można go zrealizować na odpowiednio zaprogramowanej maszynie Turinga.
28 Maszyna Turinga - przykład Przykład: W zbiorze napisów trzyliterowych utworzonych z liter a, b i c poprawny jest tylko napis abc.opracować algorytm rozpoznawania takiego napisu.
29 Maszyna Turinga - przykład Przykład: W zbiorze napisów trzyliterowych utworzonych z liter a, b i c poprawny jest tylko napis abc.opracować algorytm rozpoznawania takiego napisu. Rozwiązanie: 1. Pobierz symbol. Jeśli pobrano a, to pobierz następny symbol i idź do 2, w przeciwnym przypadku idź do Jeśli pobrany został symbol b, to pobierz następny symbol i przejdź do 3, w przeciwnym przypadku idź do Jeśli pobranym symbolem jest c, to idź do 5, w przeciwnym przypadku idź do Wyprowadź informację napis nieprawidłowy. 5. Wyprowadź informację napis prawidłowy.
30 Maszyna Turinga - przykład Przykład: W zbiorze napisów trzyliterowych utworzonych z liter a, b i c poprawny jest tylko napis abc.opracować algorytm rozpoznawania takiego napisu. Rozwiązanie: 1. Pobierz symbol. Jeśli pobrano a, to pobierz następny symbol i idź do 2, w przeciwnym przypadku idź do Jeśli pobrany został symbol b, to pobierz następny symbol i przejdź do 3, w przeciwnym przypadku idź do Jeśli pobranym symbolem jest c, to idź do 5, w przeciwnym przypadku idź do Wyprowadź informację napis nieprawidłowy. 5. Wyprowadź informację napis prawidłowy. Schemat blokowy: START Pobierz symbol a TAK Pobierz symbol b TAK Pobierz symbol c TAK NIE NIE NIE KONIEC niepoprawny KONIEC niepoprawny KONIEC niepoprawny KONIEC poprawny
31 Maszyna Turinga - przykład Przykład: W zbiorze napisów trzyliterowych utworzonych z liter a, b i c poprawny jest tylko napis abc.opracować algorytm rozpoznawania takiego napisu. Rozwiązanie: 1. Pobierz symbol. Jeśli pobrano a, to pobierz następny symbol i idź do 2, w przeciwnym przypadku idź do Jeśli pobrany został symbol b, to pobierz następny symbol i przejdź do 3, w przeciwnym przypadku idź do Jeśli pobranym symbolem jest c, to idź do 5, w przeciwnym przypadku idź do Wyprowadź informację napis nieprawidłowy. 5. Wyprowadź informację napis prawidłowy. Schemat blokowy: 1 Pobierz START symbol a TAK 2 3 Pobierz TAK Pobierz b symbol symbol c TAK NIE NIE NIE KONIEC 4 niepoprawny 4 Stany głowicy maszyny Turinga KONIEC niepoprawny 4 KONIEC niepoprawny KONIEC poprawny 5
32 Maszyna Turinga - przykład Przykład: W zbiorze napisów trzyliterowych utworzonych z liter a, b i c poprawny jest tylko napis abc.opracować algorytm rozpoznawania takiego napisu. Oznaczenia: a, b, c - symbole alfabetu, P operacja pobierz symbol, N operacja nie rób nic, q n przejdź do stanu n. Tablica charakterystyczna maszyny Turinga: q 1 q 2 q 3 q 4 q 5 a Pq 2 Nq 4 Nq 4 Nq 4 Nq 5 b Nq 4 Pq 3 Nq 4 Nq 4 Nq 5 c Nq 4 Nq 4 Nq 5 Nq 4 Nq 5
33 Programowanie wstępujące
34 Programowanie wstępujące Programowanie wstępujące (ang. bottom-up design) polega na określeniu podstawowych zadań, których wykonanie będzie konieczne do realizacji algorytmu. Tak zdefiniowane zadania wykorzystuje się do budowy większych fragmentów algorytmu, aż do zbudowania modułowego rozwiązania problemu. Ten typ projektowania stosuje się najczęściej w językach proceduralnych, gdzie Podstawowe problemy są rozwiązywane przez procedury, a cały algorytm jest realizowany przez kompletny program.
35 Programowanie zstępujące
36 Programowanie zstępujące Programowanie zstępujące (ang. top-down design) polega na dekompozycji zadań wykonywanych przez algorytm na podzadania, które są łatwe do implementacji W ogólności problem dzieli się na mniejsze podproblemy, które są następnie dzielone na kolejne podproblemy, aż do podproblemów, których rozwiązanie jest oczywiste. Zalety programowania zstępującego: systematyzacja, modularność, przejrzystość kodu, przenośność rozwiązań.
37 Programowanie zstępujące Programowanie zstępujące (ang. top-down design) polega na dekompozycji zadań wykonywanych przez algorytm na podzadania, które są łatwe do implementacji W ogólności problem dzieli się na mniejsze podproblemy, które są następnie dzielone na kolejne podproblemy, aż do podproblemów, których rozwiązanie jest oczywiste. Zalety programowania zstępującego: systematyzacja, modularność, przejrzystość kodu, przenośność rozwiązań. Tego typu postępowanie pozwala na uwzględnienie wszelkich aspektów jakie mają być realizowane przez algorytm.
38 Programowanie zstępujące Programowanie zstępujące (ang. top-down design) polega na dekompozycji zadań wykonywanych przez algorytm na podzadania, które są łatwe do implementacji W ogólności problem dzieli się na mniejsze podproblemy, które są następnie dzielone na kolejne podproblemy, aż do podproblemów, których rozwiązanie jest oczywiste. Zalety programowania zstępującego: systematyzacja, modularność, przejrzystość kodu, przenośność rozwiązań. Tego typu postępowanie pozwala na uwzględnienie wszelkich aspektów jakie mają być realizowane przez algorytm. Algorytm projektuje się w formie modułów, dzięki czemu pewne elementy można wykorzystać ponownie.
39 Programowanie zstępujące Programowanie zstępujące (ang. top-down design) polega na dekompozycji zadań wykonywanych przez algorytm na podzadania, które są łatwe do implementacji W ogólności problem dzieli się na mniejsze podproblemy, które są następnie dzielone na kolejne podproblemy, aż do podproblemów, których rozwiązanie jest oczywiste. Zalety programowania zstępującego: systematyzacja, modularność, przejrzystość kodu, przenośność rozwiązań. Dzięki modularności kod staje się czytelny cecha pożądana w przypadku pracy zespołowej. Tego typu postępowanie pozwala na uwzględnienie wszelkich aspektów jakie mają być realizowane przez algorytm. Algorytm projektuje się w formie modułów, dzięki czemu pewne elementy można wykorzystać ponownie.
40 Programowanie zstępujące Programowanie zstępujące (ang. top-down design) polega na dekompozycji zadań wykonywanych przez algorytm na podzadania, które są łatwe do implementacji W ogólności problem dzieli się na mniejsze podproblemy, które są następnie dzielone na kolejne podproblemy, aż do podproblemów, których rozwiązanie jest oczywiste. Zalety programowania zstępującego: systematyzacja, modularność, przejrzystość kodu, przenośność rozwiązań. Tego typu postępowanie pozwala na uwzględnienie wszelkich aspektów jakie mają być realizowane przez algorytm. Opracowane moduły najczęściej można łatwo dostosować do podobnych problemów. Dzięki modularności kod staje się czytelny cecha pożądana w przypadku pracy zespołowej. Algorytm projektuje się w formie modułów, dzięki czemu pewne elementy można wykorzystać ponownie.
41 Iteracja
42 Iteracja Iteracja jednokrotne wykonanie jednego z elementów algorytmu. Realizacja iteracji: a. w języku C: przy pomocy pętli for, przy pomocy pętli while, przy pomocy pętli do..while.
43 Iteracja Iteracja jednokrotne wykonanie jednego z elementów algorytmu. Realizacja iteracji: a. w języku C: przy pomocy pętli for, przy pomocy pętli while, przy pomocy pętli do..while. b. w języku Pascal: przy pomocy pętli for, przy pomocy pętli while...do, przy pomocy pętli repeat..until.
44 Iteracja Iteracja jednokrotne wykonanie jednego z elementów algorytmu. Realizacja iteracji: a. w języku C: przy pomocy pętli for, przy pomocy pętli while, przy pomocy pętli do..while. b. w języku Pascal: przy pomocy pętli for, przy pomocy pętli while...do, przy pomocy pętli repeat..until. c. w schemacie blokowym: A = B[i] NIE i = n? TAK
45 Iteracja Iteracja jednokrotne wykonanie jednego z elementów algorytmu. Realizacja iteracji: a. w języku C: przy pomocy pętli for, przy pomocy pętli while, przy pomocy pętli do..while. b. w języku Pascal: przy pomocy pętli for, przy pomocy pętli while...do, przy pomocy pętli repeat..until. c. w schemacie blokowym: d. w opisie słownym: przez wskazanie kroku do którego ma zostać przekazane sterowanie. A = B[i] NIE i = n? TAK
46 Rozejście / rozgałęzienie
47 Rozejście / rozgałęzienie Rozejście lub rozgałęzienie zmiana sterowania w algorytmie, czyli wykonanie innych, alternatywnych czynności po pojawieniu się określonych danych lub okoliczności. W językach programowania do realizacji rozgałęzień wykorzystuje się instrukcję warunkową if lub instrukcję wyboru case.
48 Rozejście / rozgałęzienie Rozejście lub rozgałęzienie zmiana sterowania w algorytmie, czyli wykonanie innych, alternatywnych czynności po pojawieniu się określonych danych lub okoliczności. W językach programowania do realizacji rozgałęzień wykorzystuje się instrukcję warunkową if lub instrukcję wyboru case. Przykład: if liczba = 100 then // czynności dla tego przypadku else if liczba > 100 then if liczba < 200 then // czynności, gdy liczba większa 100 // i jednocześnie mniejsza od 200 else // czynności, gdy liczba większa lub // równa 200 else // czynności, gdy liczba mniejsza lub // równa 100
49 Rozejście / rozgałęzienie Rozejście lub rozgałęzienie zmiana sterowania w algorytmie, czyli wykonanie innych, alternatywnych czynności po pojawieniu się określonych danych lub okoliczności. W językach programowania do realizacji rozgałęzień wykorzystuje się instrukcję warunkową if lub instrukcję wyboru case. Przykład: if liczba = 100 then case liczba of // czynności dla tego przypadku 0..99: else // liczba mniejsza lub równa 100 if liczba > 100 then break; if liczba < 200 then 100: // czynności, gdy liczba większa 100 // liczba równa 100 // i jednocześnie mniejsza od 200 break; else : // czynności, gdy liczba większa lub // liczba większa do 100 i mniejsza od 200 // równa 200 break; else else // czynności, gdy liczba mniejsza lub // pozostałe przypadki // równa 100 end;
50 Rekurencja
51 Rekurencja Rekurencja polega na odwołaniu się funkcji do samej siebie. Rekurencja jest jedną z podstawowych technik programowania. Ze względu na własności programowanie rekurencyjne może ułatwić rozwiązanie pewnej klasy zadań.
52 Rekurencja Rekurencja polega na odwołaniu się funkcji do samej siebie. Rekurencja jest jedną z podstawowych technik programowania. Ze względu na własności programowanie rekurencyjne może ułatwić rozwiązanie pewnej klasy zadań.
53 Rekurencja Rekurencja polega na odwołaniu się funkcji do samej siebie. Rekurencja jest jedną z podstawowych technik programowania. Ze względu na własności programowanie rekurencyjne może ułatwić rozwiązanie pewnej klasy zadań. Niebezpieczeństwa związane z rekurencją: możliwe wielokrotne wykonywanie tych samych obliczeń, nieprzejrzystość kodu algorytmu, nieskończone wykonywanie kodu błędny warunek zakończenia, możliwe większe zużycie pamięci każde wywołanie funkcji powoduje alokacje pewnej ilości pamięci.
54 Rekurencja Rekurencja polega na odwołaniu się funkcji do samej siebie. Przykład:
55 Rekurencja Rekurencja polega na odwołaniu się funkcji do samej siebie. Przykład: Algorytm rekurencyjny: krok 1: rysuj trójkąt, krok 2: zastosuj przekształcenie skalujące współrzędne trójkąta, powodujące zmniejszenie jego powierzchni o 5%, krok 3: zastosuj przekształcenie obracające współrzędne trójkąta o 5 stopni względem środka trójkąta, krok 4: wykonaj algorytm od kroku 1.
56 Rekurencja Rekurencja polega na odwołaniu się funkcji do samej siebie. Przykład: Algorytm rekurencyjny: krok 1: rysuj trójkąt, krok 2: zastosuj przekształcenie skalujące współrzędne trójkąta, powodujące zmniejszenie jego powierzchni o 5%, krok 3: zastosuj przekształcenie obracające współrzędne trójkąta o 5 stopni względem środka trójkąta, krok 4: wykonaj algorytm od kroku 1. Algorytm rekurencyjny z zakończeniem: krok 1: przypisz poziomowi wartość 1, krok 2: rysuj trójkąt, krok 3: zastosuj przekształcenie skalujące współrzędne trójkąta, powodujące zmniejszenie jego powierzchni o 5%, krok 4: zastosuj przekształcenie obracające współrzędne trójkąta o 5 stopni względem środka trójkąta, krok 5: jeśli poziom jest mniejszy niż 20, to zwiększ poziom o 1, krok 6: jeśli poziom jest równy 20 to zakończ algorytm, krok 7: wykonaj algorytm od kroku 2.
57 Koniec wykładu
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
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
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.
Metody Programowania
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 15: Klasyczne techniki
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
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
Podstawy Informatyki Maszyna Turinga
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga 2 3 4 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga,
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
ECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
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
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
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
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,
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
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
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
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
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
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
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
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
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
Języki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A
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
Schemat programowania dynamicznego (ang. dynamic programming)
Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten
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
1. Maszyna Turinga, gramatyki formalne i ONP
1. Maszyna uringa, gramatyki formalne i OP 1.1.Maszyna uringa Automat skończony składa się ze skończonego zbioru stanów i zbioru przejść ze stanu do stanu, zachodzących przy różnych symbolach wejściowych
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca
Maszyna Turinga języki
Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę
Języki i metodyka programowania
Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura
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
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
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
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
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
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,
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
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
START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC
GRUPA I Co to jest algorytm, a czym jest program komputerowy? Algorytm: uporządkowany i uściślony sposób rozwiązywania problemu, zawierający szczegółowy opis wykonywanych czynności. Program komputerowy:
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
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,
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
Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania.
Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Część I Zadanie 1.1. (0 2) Wymagania ogólne Wymagania szczegółowe po testowanie rozwiązania (5.7.). strategia
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych
Praktyka Programowania
Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:
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
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga
Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 01 Algorytm Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-chorezmi (z Chorezmu), który ok. 820 r n.e. opisał
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ę
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych
Metody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej
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
Programowanie dynamiczne
Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem
Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej
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
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
INFORMATYKA. Algorytmy.
INFORMATYKA Algorytmy http://www.infoceram.agh.edu.pl ALGORYTM ALGORYTM to skończony ciąg jasno zdefiniowanych czynności, wskazujący kolejność operacji koniecznych do rozwiązania zadanego problemu. Słowo
1. Algorytmy Składniki algorytmu Podstawowymi elementami każdego algorytmu są dane oraz operacje Metody opisu algorytmu
1. Algorytmy ZADAIE (warunki wejsciowe) Dane wejscio we OPERACJE Dane wyjsciowe Struktura i funkcjonowanie algorytmu Zadanie wykonane Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi
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
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
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
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
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)
Język programowania PASCAL
Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO
TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).
INFORMATYKA kl. II gimnazjum Krzysztof Gładkowski TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF). Czas: 2godz. Przygotowanie środowiska. Pomoce dydaktyczne. Oprogramowanie środowisko
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
Efektywna analiza składniowa GBK
TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji
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.
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
Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych
Temat 2. Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych Cele edukacyjne Usystematyzowanie podstawowych pojęć: algorytm z warunkami, iteracja, algorytm iteracyjny, zmienna sterująca.
Sortowanie przez scalanie
Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie
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
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
Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
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
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
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
Wstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Algorytmy i struktury danych
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.
Poprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
PODSTAWY ALGORYTMIKI
1 PODSTAWY ALGORYTMIKI Algorytm sposób rozwiązania danego problemu Może być opisany słownie, może być przedstawiony wzorem matematycznym lub za pomocą schematów blokowych. Programowanie jest to metoda
Algorytmy i struktury danych
Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty
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
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
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
Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA
I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów
Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
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)
Turing i jego maszyny
Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan
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
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
Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}
Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy
Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program
Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki
Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A
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.
Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych
Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów
Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.
Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów
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
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