Algorytmy cz. 2

advertisement
Algorytmy 1
1. Definicja algorytmu
2. Sposoby przedstawiania algorytmów
3. Rodzaje skrzynek wykorzystywanych
w zapisie blokowym
4. Rodzaje algorytmów
Definicja algorytmu
Algorytm jest to precyzyjny opis sposobu
rozwią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)
1. 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ęć.
Start
PRZECZYTAJ
DEFINICJĘ
NIE
CZY UMIESZ
DEFINICJĘ
NA
PAMIĘĆ
Algorytm opisujący zadanie:
„Czytaj definicję tak długo, aż nauczysz się
jej na pamięć
(przedstawiony w postaci schematu
blokowego)
TAK
GRATULACJE, NAUCZYŁEŚ
SIĘ DEFINICJI NA PAMIĘĆ
STOP
Start
PRZECZYTAJ
DEFINICJĘ
CZY UMIESZ
DEFINICJĘ
NA
PAMIĘĆ
GRATULACJE, NAUCZYŁEŚ
SIĘ DEFINICJI NA PAMIĘĆ
STOP
SKRZYNKI GRANICZNE
SKRZYNKI
INSTRUKCJI
SKRZYNKI WARUNKU
SKRZYNKI WEJŚCIA /
WYJŚCIA
Rodzaje algorytmów
ALGORYTMY
LINIOWE
SEKWENCYJNE
REKURENCYJNE
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, przyprawy
2. Wrzuć tłuszcz na patelnię
3. Podgrzej patelnię
4. Wbij jajko
5. Dodaj przyprawy
6. Wymieszaj
7. 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ój
2. Czy świeci się czerwone światło?
A. Jeśli TAK to przejdź do kroku 1
B. Jeśli NIE to przejdź do kroku 3
3. 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
Przykłady różnych algorytmów
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ń
Schemat blokowy algorytmu
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:
1. Początek algorytmu
2. Wprowadź liczby x i y
3. Sprawdź warunek, czy liczba x jest mniejsza
od y
4. Jeśli jest mniejsza to: min:=x, w przeciwnym
razie: min:=y
5. Wyprowadź wartość min
6. Koniec algorytmu
Start
Wprowadź
(x, y)
TAK
NIE
X<Y
min:=y
Algorytm
określający,
która z dwóch
podanych liczb
jest mniejsza
min:=x
Wyprowadź min
STOP
Dane: Liczby
xiy
Schemat
blokowy:
Algorytm dodawania dwóch liczb
Dane: Liczby a i b
Lista kroków:
1. Początek algorytmu
2. Wprowadź liczby a i b
3. Oblicz wartość x:=a+b
4. Wyprowadź wartość x
5. Koniec algorytmu
Start
Wprowadź
(a, b)
x:=a+b
Wyprowadź x
STOP
Algorytm
dodawania
dwóch liczb
Dane: Liczby a i b
Schemat blokowy:
Opis w postaci listy kroków na
przykładzie algorytmu wyszukującego
największą z 4 liczb
Opis w postaci schematu blokowego
Koniec
Download