360 likes | 1.1k Views
Algorytmy 1. Definicja algorytmu Sposoby przedstawiania algorytmów Rodzaje skrzynek wykorzystywanych w zapisie blokowym Rodzaje algorytmów. Definicja algorytmu. Algorytm jest to precyzyjny opis sposobu rozwiązania określonego zadania lub osiągnięcia jakiegoś celu.
E N D
Algorytmy 1 • Definicja algorytmu • Sposoby przedstawiania algorytmów • Rodzaje skrzynek wykorzystywanych w zapisie blokowym • Rodzaje algorytmów
Definicja algorytmu Algorytm jest to precyzyjny opis sposoburozwiązania określonego zadania lub osiągnięcia jakiegoś celu.
Występują następujące sposoby przedstawiania algorytmów: • Słowny na ogół mało dokładny. • Lista kroków. • Schemat blokowy.
Algorytm opisujący zadanie:„Czytaj definicję tak długo, aż nauczysz się jej na pamięć(przedstawiony w postaci listy kroków) • Przeczytaj definicję. 2 Czy umiesz ją na pamięć? a) jeśli tak, przejdź do kroku 3 b) jeśli nie, przejdź do kroku 1. 3. Gratulacje, nauczyłeś się definicji na pamięć.
Algorytm opisujący zadanie:„Czytaj definicję tak długo, aż nauczysz się jej na pamięć(przedstawiony w postaci schematu blokowego) Start PRZECZYTAJ DEFINICJĘ CZY UMIESZ DEFINICJĘ NA PAMIĘĆ TAK NIE GRATULACJE, NAUCZYŁEŚ SIĘ DEFINICJI NA PAMIĘĆ STOP
Start Start Start Start Start STOP STOP STOP STOP STOP SKRZYNKI GRANICZNE PRZECZYTAJ DEFINICJĘ PRZECZYTAJ DEFINICJĘ PRZECZYTAJ DEFINICJĘ PRZECZYTAJ DEFINICJĘ SKRZYNKI INSTRUKCJI CZY UMIESZ DEFINICJĘ NA PAMIĘĆ CZY UMIESZ DEFINICJĘ NA PAMIĘĆ CZY UMIESZ DEFINICJĘ NA PAMIĘĆ SKRZYNKI WARUNKU SKRZYNKI WEJŚCIA / WYJŚCIA GRATULACJE, NAUCZYŁEŚ SIĘ DEFINICJI NA PAMIĘĆ GRATULACJE, NAUCZYŁEŚ SIĘ DEFINICJI NA PAMIĘĆ
Rodzaje algorytmów ALGORYTMY REKURENCYJNE LINIOWE SEKWENCYJNE WARUNKOWE ITERACYJNE
Algorytm sekwencyjny (liniowy) • Algorytm liniowy (sekwencyjny) — instrukcje wykonywane są po kolei (w porządku, w jakim zostały wprowadzone). Przykład algorytmu linowego – przepis na jajecznicę. • 1. Przygotuj jajko, tłuszcz, przyprawy2. Wrzuć tłuszcz na patelnię3. Podgrzej patelnię4. Wbij jajko5. Dodaj przyprawy6. Wymieszaj7. Wyłóż na talerz
Algorytmy z rozgałęzieniami • Algorytmy z rozgałęzieniami to coś podobnego do algorytmów liniowych, z tym, że są różne drogi (rozgałęzienia) do uzyskania wyniku - inaczej mówiąc, algorytm wykonywany jest w zależności od pewnych warunków. Przykład algorytmu z rozgałęzieniami – „Sprawdź czy pada deszcz, jeśli tak, weź kurtkę z kapturem” 1. Wyjrzyj przez okno 2. Czy pada deszcz? a) jeśli tak, przejdź do kroku 3 b) Jeśli nie, przejdź do kroku 4 3 Weź kurtkę z kapturem 4 Wyjdź
Algorytm iteracyjny Rodzaj algorytmu w którym wielokrotnie wykonuje się pewne instrukcje, dopóki nie zostanie spełniony określony warunek Przykład algorytmu iteracyjnego – Sprawdzaj co „jakiś czas” jakie jest światło, jeśli jest czerwone czekaj, jeśli jest zielone przejdź 1. Stój2. Czy świeci się czerwone światło? A. Jeśli TAK to przejdź do kroku 1 B. Jeśli NIE to przejdź do kroku 33. Można przejść przez ulicę zachowując ostrożność
Algorytm rekurencyjny • Algorytm rekurencyjny to taki, który w pewnym kroku zawiera polecenie wykonania siebie samego dla innych danych. Przykład rekurencji. Algorytm „jedz kaszkę” • 1. Jedz kaszkę (weź łyżkę kaszki i połknij) 2. Jedz kaszkę dalej, aż talerz będzie pusty
Wyszukiwanie najmłodszego ucznia w klasie. Lista kroków. Dane: Uczniowie. Wynik: Najmłodszy uczeń Krok 1 Przyjmij, że najmłodszym uczniem w klasie jest pierwszy w kolejności Zapamiętaj jego imię. Krok 2 Jeśli zadałeś pytanie już wszystkim uczniom, to koniec algorytmu, najmłodszym jest zapamiętany uczeń. Krok 3 Przejdź do kolejnego ucznia i zapytaj go, kiedy się urodził. Jeśli urodził się później niż najmłodszy z dotychczas pytanych, to zapamiętaj jego dane. Krok 4 Wróć do kroku 2, by kontynuować zadawanie pytań
Opis w postaci listy kroków algorytmu wyszukującego wybrany element w zbiorze uporządkowanym Dane: Uporządkowany zbiór elementów. Wyróżniony element, który się w nim znajduje. Wynik : Miejsce wyróżnionego elementu w zbiorze 1. Sprawdź środkowy element zbioru 2. Jeśli jest on wyróżnionym elementem to zakończ poszukiwania. 3.Jeśli środkowy element jest większy od poszukiwanego , to pozostaw zbiór na lewo od elementu środkowego, a w przeciwnym razie (czyli gdy środkowy element jest mniejszy od poszukiwanego), pozostaw zbiór na prawo od elementu środkowego, 4. Wróć do kroku 1
Schemat blokowy algorytmu wyszukującego wybrany element w zbiorze uporządkowanym
Algorytm określający, która z dwóch podanych liczb jest mniejsza Dane: Liczby x i y Lista kroków: • Początek algorytmu • Wprowadź liczby x i y • Sprawdź warunek, czy liczba x jest mniejsza od y • Jeśli jest mniejsza to: min:=x, w przeciwnym razie: min:=y • Wyprowadź wartość min • Koniec algorytmu
Algorytm określający, która z dwóch podanych liczb jest mniejsza Start Wprowadź (x, y) X<Y TAK NIE min:=y min:=x Dane: Liczby x i y Schemat blokowy: Wyprowadź min STOP
Algorytm dodawania dwóch liczb Dane: Liczby a i b Lista kroków: • Początek algorytmu • Wprowadź liczby a i b • Oblicz wartość x:=a+b • Wyprowadź wartość x • Koniec algorytmu
Algorytm dodawania dwóch liczb Start Wprowadź (a, b) x:=a+b Dane: Liczby a i b Schemat blokowy: Wyprowadź x STOP
Opis w postaci listy kroków na przykładzie algorytmu wyszukującego największą z 4 liczb