Algorytmy
Algorytmy
Schematy blokowe
Schematy blokowe
Dr inż. Dariusz Skibicki
II
II
1. Potrzeba pisania algorytmów
2. Algorytm
Algorytm zapisany przy pomocy języka programowania jest
programem.
Algorytm - to przepis na wykonanie określonego zadania.
Notacja algorytmu – sposób zapisu algorytmu.
• Tablice decyzyjne
• Zapis Boolowski
• Schematy operacyjne Janowa
• Zapis operatorowy Lapunowa
• Sieci działań – schematy blokowe
Dane - obiekty podlegające
przekształceniom podczas wykonywania
algorytmu
Wynik – ostateczny rezultat wykonania
algorytmu
3. Tablice decyzyjne
W
1
: a<b
W
2
: a<c
W
3
: b<c
A
1
: minimalną liczbą jest a
A
2
: minimalną liczbą jest b
A
3
: minimalną liczbą jest c
Min
T
T
T
X
T
T
N
X
T
N
T
T
N
N
X
N
T
T
X
N
T
N
N
N
T
X
N
N
N
X
REGUŁY DECYZYJNE
Tablica decyzyjna - jest pewnym sposobem opisu zbioru związanych
ze sobą reguł decyzyjnych, tj. wyrażeń opisujących układ
warunków, które muszą być spełnione dla wykonania określonych
czynności.
A
1
A
2
....
....
A
J
Pole definicji
czynności
Pole specyfikacji
czynności
Nazwa Tablicy
W
1
W
2
....
....
W
J
Pole definicji
warunków
Reguły decyzyjne
Pole specyfikacji
warunków
d
e
c
y
z
j
a
1
r
e
g
u
ł
a
d
e
c
y
z
j
a
2
d
e
c
y
z
j
a
k
r
e
g
u
ł
a
Przykład: Znalezienie minimalnej
liczby spośród trzech liczb: a,b,c
4. Schematy operacyjne Janowa
Schemat operacyjne Janowa jest grafem skierowanym o następujących
własnościach:
• Do pierwszego wierzchołka prowadzi jedna gałąź wejściowa,
• Z każdego wierzchołka, z wyjątkiem ostatniego, mogą wychodzić co
najwyżej dwie gałęzie.
• Graf posiada jeden i tylko jeden wierzchołek nie posiadający wyjścia -
wierzchołek końcowy.
Przykład: Znalezienie
minimalnej liczby
spośród trzech liczb:
a,b,c.
A – rozwiązanie.
a<b
b<c
a<c
A
1
A
3
A
2
STOP
5. Schematy blokowe - sieci działań
Sieci działań (schematy blokowe) - to
graficzny sposób zapisu algorytmów polegający
na podzieleniu procesu rozwiązywania problemu
na odrębne etapy – bloki.
Blok – figura geometryczna posiadająca cechę znaczeniową.
Popularne języki programowania umożliwiają zapisanie
schematu blokowego w postaci kodu.
Linia - Poszczególne bloki łączone są liniami które
ukazują ich powiązanie logiczne, a strzałki wskazują
na kolejność wykonywania poszczególnych bloków
algorytmu.
Start
Blok 1
Blok 2
STOP
Schemat
blokowy
5.1. Symbolika schematów blokowych
Nr
Symbol
Nazwa
Opis
1.
Początek, koniec
Oznaczenie miejsca
rozpoczęcia i zakończenia
algorytmu
2.
Operator
Działanie (operacja) do
wykonania
3.
Operator
wejścia/wyjścia
Wprowadzenie danych do
pamięci lub ich
wyprowadzenie
4.
Element
decyzyjny
Operacja wyboru jednej z
alternatywnych dróg
działania
5.
Łącznik
Symbol połączenie dwóch
fragmentów sieci działania
6.
Komentarz
Oznaczenie miejsca na
komentarz
7.
Linia
Połączenie poszczególnych
symboli działania
5.2. Logika warunkowa
Logika warunkowa – pozwala na określenie sekwencji zdarzeń,
które mają nastąpić w przypadku spełnienia pewnych
warunków:
wyrażenie
Start
Sekwencja
Instrukcji 1
prawda
Sekwencja
Instrukcji 1
fałsz
Stop
IF … THEN
IF (wyrażenie) THEN
sekwencja_instrukcji1
ELSE
sekwencja_instrukcji2
END IF
SELECT CASE
SELECT CASE wyrażenie
CASE wartość 1
sekwencja_instrukcji1
CASE wartość 1
sekwencja_instrukcji2
CASE ELSE
sekwencja_instrukcji3
END SELECT
Wyrażenie
=
wartość1
Start
Sekwencja
Instrukcji 1
prawda
fałsz
Stop
Wyrażenie
=
wartość2
prawda
Sekwencja
Instrukcji 2
Sekwencja
Instrukcji 2
fałsz
5.3. Logika pętli
Logika pętli – pozwala na tworzenie kodu, który zostanie
wykonany więcej razy bez konieczności jego powielania:
FOR … NEXT
FOR wart_początkowa TO wart_końcowa STEP
skok
sekwencja_instrukcji
NEXT
Czy
wart_początkowa
=
wart_końcowa
?
Start
Sekwencja
Instrukcji
fałsz
prawda
Stop
Inkrementacja
Warunek
Start
Sekwencja
Instrukcji
fałsz
prawd
a
Stop
DO … LOOP UNTIL
DO
sekwencja_instrukcji
LOOP UNTIL warunek
Warunek
Start
Sekwencja
Instrukcji
fałsz
prawd
a
Stop
DO WHILE… LOOP
DO WHILE warunek
sekwencja_instrukcji
LOOP
5.4. Logika rozgałęziania
Logika rozgałęziania – pozwala na porzucenie normalnego trybu
wykonywania programu w celu realizacji nowej sekwencji
czynności.
Warunek
Start
Podprogram 1
fałsz
prawda
Stop
Inkrementacja
Podprogram 2
Warunek
Start
Sekwencja
Instrukcji
fałsz
prawd
a
Stop
Start
Sekwencja
Instrukcji 1
Stop
Sekwencja
Instrukcji 2
Podprogram 1
Podprogram 2
Zaleta: możliwość stosowania
wybranego fragmentu kodu
(podprogramu) w różnych miejscach
w kodzie; poprawa czytelności kodu;
skrócenie kodu.
5.5. Schemat blokowy - przykład
X>b
Start
fałsz
prawd
a
Stop
Wprowadź
a,b,c
X=a
X=a
X>c
fałsz
prawd
a
X=c
Drukuj X
Przykład: Znalezienie minimalnej liczby
spośród trzech liczb: a,b,c.
X - rozwiązanie.