Wymień podstawowe bloki potrzebne do konstruowania schematów blokowych ( algorytmów ) i opisz ich znaczenie .
Algorytm to skończony zbiór jasno zdefiniowanych czynności koniecznych do wykonania pewnego zadania w skończonej liczbie kroków. Ma on przeprowadzić system z pewnego stanu początkowego do pożądanego stanu końcowego. Algorytm może zostać zaimplementowany w postaci programu komputerowego lub układu elektronicznego. Kiedy podczas tego procesu programiści popełnią błąd (ang. bug), może to doprowadzić do poważnych skutków. Dla przykładu błędy w implementacji algorytmów bezpieczeństwa mogą ułatwić włamanie do systemu.
Algorytm często porównuje się do przepisu kulinarnego. Dla przykładu, aby zrobić bigos należy w określonej kolejności oraz odstępach czasowym (imperatyw czasowy) dodawać właściwe rodzaje kapusty i innych składników. Może istnieć kilka różnych przepisów dających na końcu bardzo podobną potrawę.
Główna różnica między algorytmem kulinarnym i komputerowym tkwi w zdolności jego wykonawcy do zrozumienia języka przepisu. Kucharz jest dużo bardziej inteligentny od komputera. Wiele algorytmów jasnych dla człowieka, staje się niezrozumiałe dla maszyny.
W niektórych krajach, jak USA, algorytmy mogą zostać opatentowane, jeżeli dają się zaimplementować w jakimś praktycznym celu. Opatentowanie algorytmów spowalnia rozwój informatyki, bo jeden producent może uzyskać monopol, np. na pisanie oprogramowania tworzącego pewne typy plików (np. GIF). Wiele koncernów komputerowych prowadzi między sobą prawnicze spory dotyczące własności do niektórych patentów.
Schemat blokowy to graficzne przedstawienie ciągu kroków algorytmu, często stosowane jako ideowy rysunek poprzedzający tworzenie programu.
W schemacie blokowym poszczególne operacje przedstawiane są za pomocą odpowiednio połączonych skrzynek (klocków, bloków). Sposób i kolejność działań programu określane są przez wzajemny układ i sposób łączenia bloków ze sobą. Każde działanie (krok) ma w schemacie blokowym swoje standardowe oznaczenie.
Sposób rysowania schematów blokowych
Żeby przekazać posiadany algorytm drugiemu człowiekowi lub maszynie, musimy ten algorytm zapisać. I tu powstaje problem języka do zapisywania algorytmów. Języki naturalne, takie jak język polski, język angielski itp., nie bardzo się nadają do tego celu. Mimo to od wieków algorytmy zapisywano w językach naturalnych. Problem nie był palący, dopóki nie pojawiły się komputery. Ponieważ maszyna nie potrafi się niczego domyślić, to musi mieć jednoznacznie opisane czynności. Najlepszym obecnie językiem opisu algorytmów jest tzw. schemat blokowy.
Podstawową zasadą obowiązującą przy budowę schematów blokowych, jest łączenie strzałek „wychodzących” ze strzałkami „wchodzącymi”.
Schematy blokowe są zbudowane ze strzałek oraz niżej przedstawionych elementów.
:= |
Instrukcja przypisania |
* |
Operacja mnożenia |
/ |
Operacja dzielenia |
div |
Operacja dzielenia całkowitego |
mod |
Reszta z dzielenia całkowitego |
Reguły rysowania schematów blokowych
I. Po zbudowaniu schematu blokowego nie powinno być takich strzałek, które z nikąd nie wychodzą, lub do nikąd nie dochodzą.
II. Każdy schemat blokowy musi mieć tylko jeden element startowy oraz co najmniej jeden element końca algorytmu.
PRZYKŁAD
Schemat blokowy składa się z klocków połączonych ze sobą strzałeczkami obrazującymi przepływ danych. Przedstawię w schemacie dwa najważniejsze rodzaje klocków: wykonawcze i warunkowe. Element w formie prostokąta bądź prostopadłościanu, to klocek, w którym wykonuje się jedną operację. Do tego elementu wchodzi jedna lub więcej strzałek, a dokładnie jedna z niego wychodzi.
To, co wchodzimy do klocka to dane potrzebne do wykonania jakieś operacji, to co z niego wychodzi, to oczywiście jest wynik tego działania. W tym schemacie ostatni klocek przed Końcem to:
gdzie wchodzi jedna strzałka z wynikiem działań poprzednich (zagotowaną wodą) i wychodzi jedna, która oznacza, że herbata została zaparzona (działanie wykonano).
Spójrzmy na drugi rodzaj klocka - instrukcję warunkową:
Do tej figury także dochodzi tylko jedna strzałka, natomiast wychodzą dwie - będące odpowiedzią TAK lub NIE (czyli mające wartość True lub False - Prawda lub Fałsz, 1 lub 0) na pytanie (warunek) postawiony w klocku. Jeżeli na przykład stworzymy element:
Wtedy wyraźnie widać, jakie będą efekty działania tego klocka - jednoznaczne stwierdzenie, czy warunek jest spełniony czy też nie jest. Jeżeli w czajniku jest woda, wtedy "ważna jest" strzałka "tak" i w tym kierunku się udajemy. Jeżeli wody nie ma , należy wykonać polecenia idąc za strzałką "nie" (czyli do kroku "nalej wody"). W przypadku takiego klocka należy zatem rozstrzygnąć, czy odpowiedź na pytanie wynosi TAK czy NIE.
Algorytm sprawdza, czy w czajniku jest woda jeśli jej nie ma, to kieruje do kroku "Nalej wody". Następnie, kiedy woda na pewno jest w czajniku, należy się upewnić, czy włączyliśmy gaz. Jeżeli nie, to należy to zrobić, a następnie postawić czajnik na palniku. Pozostaje czekać. Sprawdzamy, czy woda się zagotowała, jeśli nie, to czekamy dalej. Jeżeli woda się zagotowała, zalewamy herbatę. I koniec.
1