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,
w jakim mają być realizowane.
Termin algorytm pochodzi od zlatynizowanej formy (Algorismus, Algorithmus) nazwiska
matematyka arabskiego Muhammada ibn Musa al-Khwarazmi’ego (ok. 790 - ok. 840 r. ne.)
Algorytmy obliczeniowe powstawały już w czasach starożytnych, są to m.in.:
algorytm Euklidesa,
algorytm Eratostenesa (tzw. sito Eratostenesa).
Algorytmy i komputery
→
każdy komputer wykonuje jakiś program
→
każdy program jest zapisem jakiegoś algorytmu
Algorytm opisuje logiczny ciąg operacji, które ma wykonać program
Algorytmy można przedstawiać w różny sposób. Jednym z bardziej popularnych jest schemat
blokowy, inne to opis w postaci listy kroków, czy też opis przy użyciu pewnego umownego
pseudojęzyka.
Algorytm zapisany za pomocą języka programowania jest programem
Schemat blokowy (sieć działań) jest graficznym przedstawieniem algorytmu. Składa się z
pewnej liczby figur geometrycznych (prostokątów, rombów itp.) nazywanych blokami oraz
łączących ich linii z zaznaczonym kierunkiem. Pokazuje wszystkie operacje, które mają być
wykonane i określa kolejność ich wykonania
Blok
→
graficzna reprezentacja pewnej czynności (operacji)
Symbole schematów blokowych
Blok operacyjny (obliczenia). Ma kształt prostokąta. Wewnątrz bloku umieszcza się zapis jednej
lub kilku operacji
1
Bloki wejścia/wyjścia (wprowadzanie i wyprowadzanie danych). Mają kształt równoległoboku.
Wewnątrz bloku umieszcza się nazwy zmiennych, którym mają być nadane wartości
wprowadzone z urządzenia wejścia lub nazwy zmiennych, których wartości mają być wypisane
na urządzenie wyjścia
Blok warunkowy (decyzyjny). Wewnątrz bloku umieszcza się zapis badanego warunku
2
Bloki graniczne (początek i koniec algorytmu)
Blok procesu. Proces zdefiniowany poza algorytmem
Bloki łącznikowe (stronicowe i międzystronicowe)
3
Komentarz
Podstawowe rodzaje algorytmów
Algorytm liniowy
Jest to najprostsza forma realizacji procesu obliczeniowego. Ma ustaloną z góry kolejność
realizacji poszczególnych etapów, a wszystkie czynności wykonywane są jeden raz.
Przykład: obliczanie pola i obwodu koła
Dane: promień r
Wynik: pole p i obwód ob
Wzory do obliczeń
2
r
p
π
=
;
r
2
ob
π
=
4
Algorytm rozgałęziony
Rozwidla się na kilka gałęzi. W zależności od danych, pewne czynności są wykonane, inne nie
Przykład: rozwiązywanie równania kwadratowego ax
2
+ bx + c = 0
Dane: współczynniki a, b, c
Wynik: pierwiastki x
1
i x
2
albo pierwiastek
x albo brak pierwiastków
Metoda rozwiązania: algorytm „delty” znany ze szkoły średniej
5
Algorytm cykliczny
Pewne czynności wykonywane są wielokrotnie (w pętli).
Przykład: sumowanie ciągu n liczb a
1
, a
2
, a
3
...... a
n
Dane: n oraz a
1
, a
2
, a
3
...... a
n
Wynik:
∑
=
n
1
i
i
a
Metoda rozwiązania: tak jak przy użyciu kalkulatora z funkcją „dodaj do pamięci” (M+)
M
←
0
M
←
M + a
i
←
tę czynność powtarzamy n razy
6
Algorytm cykliczny – symulacja działania
7
Przykład algorytmu gry w kółko i krzyżyk. Gra człowiek (gracz) z komputerem (komp), przy
czym grę rozpoczyna komputer
(Rysunek oparty na schemacie podanym w skrypcie: Ambroziak K.,
Kott R.K.: Programowanie maszyn cyfrowych. Materiały do ćwiczeń. Wyd. Politechniki Warszawskiej,
Warszawa, 1984; w skrypcie tym jest też program w Fortranie, grający w trybie tekstowym).
Pierwszy program do gry w „kółko i krzyżyk” opracował A.S. Douglas
w 1952 dla potrzeb swojej rozprawy doktorskiej poświęconej
możliwościom interakcji między człowiekiem i maszyną, którą
postanowił zilustrować komputerową symulacją wspomnianej gry (na
komputerze EDSAC – pierwszym oddanym do użytku komputerze
zbudowanym zgodnie z koncepcją von Neumanna). Była to pierwsza gra
komputerowa i jednocześnie pierwsza gra działająca w trybie
graficznym.
Symulator EDSAC'a wraz z pakietem programów (w tym również oryginalną grą Douglasa)
można pobrać ze strony http://www.dcs.warwick.ac.uk/~edsac/
8
Grę „kółko i krzyżyk” w wersji opracowanej przez J. Walkenbach’a (arkusz Excela wraz z
programem w Visual Basicu) można pobrać ze strony autora:
http://j-walkblog.com/blog/index/P14569/
adres pliku:
http://j-walkblog.com/blog/docs/jwalk-tick-tac-toe.xls
9