Elementami schematu blokowego są:
• Strzałki — określają kierunek przepływu danych lub kolejność wykonywania działań.
Powinny składać się z linii prostych, należy unikać łuków oraz krzyżowania się linii.
• Operacja START (rys. 1) — oznacza punkt startu algorytmu (programu). Od tego bloku
rozpoczyna się wykonywanie algorytmu. Występuje dokładnie jeden raz w każdym
schemacie blokowym.
• Operacja STOP (rys. 2) — oznacza punkt zakończenia algorytmu (programu). Na tym
bloku kończy się wykonywanie algorytmu. Najczęściej występuje jeden raz, jednakże dla
zwiększenia czytelności schematu może zostać powtórzony wielokrotnie.
Operacje odczytywania danych oraz wprowadzania wyników (rys. 3) — oznaczone za
pomocą równoległoboków. W środku równoległoboku wpisuje się odpowiedni komentarz,
odpowiadający żądanej operacji. Należy podkreślić, że inne operacje, nie będące operacjami
wejścia / wyjścia oznaczane są innym blokiem — blokiem operacji.
Operacja warunkowa JEŻELI (rys. 4) — oznaczona za pomocą rombu. Wewnątrz rombu
znajduje się odpowiedni warunek. Słowo JEŻELI zazwyczaj pomija się. Operacje warunkowe
zawsze prowadzą do konieczności rozważenia dwóch dróg: jednej (TAK) kiedy
rozpatrywany warunek jest spełniony i drugiej (NIE), kiedy rozpatrywany warunek nie
jest spełniony. Blok ten odpowiada instrukcji warunkowej (if ). Przy zapisie warunku powinno
się używać operatorów matematycznych =, 6=, <, ¬, >, , nie zaś zapisu znanego
z języków programowania (np. ”>=”). Do łączenia warunków powinno się również używać
operatorów logicznych: koniunkcji (”∧”) — oznaczającej ”i”, oraz alternatywy (”∨”)
— oznaczającej ”lub”.
Komentarz (rys. 5) — blok używany do wyjaśnienia znaczenia instrukcji zawartych w blokach.
Tekst komentarza wpisuje się między kreskami. Ukośna kreska wskazuje (dotyka)
komentowanego bloku.
Łącznik stronnicowy (rys. 6) — oznacza łączenie w obrębie jednej strony. Używany w przypadku,
gdy użycie strzałki znacząco zmniejszyłoby czytelność schematu. Poszczególne
łączniki oznacza się liczbami całkowitymi. Zawsze istnieją dwa łączniki oznaczone tym
samym numerem: jeden źródłowy, drugi — docelowy. Strzałka skierowana jest do łącznika
źródłowego oraz od łącznika docelowego.
Łącznik międzystronnicowy (rys. 7) — używany w przypadku, gdy konieczne jest przeniesienie
sterowania między stronami (arkuszami papieru) schematu. Zasady jego użycia
są analogiczne do zasad użycia łącznika stronnicowego. Poszczególne łączniki oznacza się
liczbami całkowitymi. Zawsze istnieją dwa łączniki oznaczone tym samym numerem: jeden
źródłowy, drugi — docelowy. Strzałka skierowana jest do łącznika źródłowego oraz
od łącznika docelowego.
Blok operacji (rys. 8) — oznaczany za pomocą prostokąta, w którym wpisuje się komentarz
określający daną operację. Jeśli kilka operacji tworzy logiczną całość, to wszystkie one
mogą być umieszczone w jednym bloku. Nie zaleca się umieszczania tam zbyt dużej liczby
operacji nawet wtedy, kiedy są one powiązane ze sobą bezpośrednio, ponieważ może to
zmniejszyć czytelność schematu. Instrukcje przypisania oznacza się przy pomocy strzałki
(←). Instrukcję w C ”x = y;” na schemacie powinno się oznaczyć jako ”x ← y”. Jeśli
zachodzi potrzeba użycia tablic, n-ty element można oznaczyć jako tablica[n]. Należy
podkreślić, że elementy numerowane są od zera, tj. n = 0, 1, 2, . . .. Należy podkreślić,
że operacje wejścia / wyjścia oznaczane są innym blokiem — blokiem operacji
odczytywania danych oraz wprowadzania wyników.
Blok proceduralny (rys. 9) — proces określony poza programem i z tego powodu nie
wymagający zdefiniowania w rozpatrywanym programie (podprogram), przy definiowaniu
tych elementów należy pamiętać, że ich wykonanie nie rozpoczyna się od START i nie
kończy STOP (najczęściej podprogram kończy wykonanie instrukcji powrotu (RETURN)
do głównego programu)
1. Schemat powinien być prosty i co za tym idzie czytelny. W razie złożonego rozwiązania
schemat należy podzielić na mniejsze części (podprogramy) i zamieścić je na osobnych
arkuszach.
2. Schemat blokowy powinien być jednakowo dobrze rozumiany przez programistów posługujących
się różnymi językami programowania. Z tego powodu nie powinno się używać w
schematach składni jakiegokolwiek języka programowania. Preferowane jest użycie operatorów
matematycznych, rozumianych przez wszystkich.
3. Do rysowania schematów dobrze jest używać szablonów. Dzięki takiemu rozwiązaniu polepsza
się czytelność schematu.
4. W blokach niezbędne jest komentowanie zarówno zaprojektowanych operacji, jak i kolejności
ich wykonywania. Komentarze powinny być krótkie, lecz dostatecznie dokładnie
wyjaśniające znaczenie opisywanych elementów.
5. Należy unikać rysowania przecinających się ścieżek sterowania. W razie konieczności lepiej
jest wprowadzić odpowiednie łączniki, które pozwolą na wyeliminowanie niektórych linii
wskazujących kolejność działań w algorytmie.
6. Należy dokładnie numerować arkusze, na których został rozrysowany schemat blokowy.
7. Trzeba liczyć się z możliwością wystąpienia konieczości wprowadzenia poprawek do schematu,
dlatego wskazane jest tak tworzyć arkusze, aby możliwe było naniesienie poprawek
bez konieczności przerysowywania całego schematu.
8. Należy unikać zarówno zbyt dużej szczegółowości jak i zbytniej ogólności schematów.
Oczywiste operacje można zapisać w formie pseudokodu (np. ”Odczytaj z pliku liczbę
x”).
9. Nie należy umieszczać zbyt dużej liczby operacji w jednym bloku.
10. Operacja warunkowa JEŻELI zawsze prowadzi do konieczości rozważenia dwóch dróg:
gdy warunek jest spełniony i gdy nie jest.
Algorytm sprawdzający, czy suma dwóch liczb podanych przez użytkownika jest parzysta.
Wskazówka: instrukcję wyznaczającą resztę z dzielenia liczby a przez b (czyli a mod b) zapisuje
się w języku C++ jako a % b.
Zadanie nr 1
Napisz algorytm za pomocą schematu blokowego. Algorytm ma obliczać średnią arytmetyczną trzech liczb,
których wartości są wczytywane podczas działania algorytmu. Wynik wyświetl na ekranie monitora.
Zadanie nr 2
Napisz algorytm za pomocą schematu blokowego. Algorytm ma obliczać objętość (V) oraz sumę długości
wszystkich krawędzi prostopadłościanu (D). Wartości zmiennych a, b, c są podawane podczas działania algorytmu.
Zadanie nr 3
Napisz algorytm za pomocą schematu blokowego. Algorytm ma obliczać pole i obwód prostokąta o bokach, których wartości są wczytywane podczas działania algorytmu.
Zadanie nr 4
Napisz algorytm za pomocą pseudojęzyka i schematów blokowych. Algorytm ma obliczać objętość prostopadłościanu. Długości krawędzi są podawane podczas działania programu.
Zadanie nr 5
Napisz algorytm za pomocą pseudojęzyka i schematów blokowych. Algorytm ma obliczać pole powierzchni i obwód koła.
Zadanie nr 6
Samochód spala 6,5 litra benzyny na 100 km. 1 litr benzyny kosztuje 3,29 zł. Z Zakopanego do Krakowa jest 132 km. Napisz algorytm, który oblicza koszt przejazdu z Zakopanego do Krakowa.
Zadanie nr 7
Babcia powiedziała Bartkowi, że na każde urodziny otrzyma od niej dwa razy więcej złotych niż będzie miał lat, a dziadek powiedział, że od niego dostanie na kaŜde urodziny o 20 złotych więcej niż liczba jego lat. Napisz algorytm, który będzie obliczał ilość pieniędzy jaką otrzyma Bartek od babci i dziadka na x-te urodziny..
Zadanie nr 8
Kasia ulokowała w banku pewna ilość pieniędzy na okres jednego roku. Oprocentowanie roczne w tym banku wynosi 19,4%.
Napisz algorytm, który będzie obliczał ilość pieniędzy na koncie po jednym roku dla dowolnej sumy pieniędzy.
Zadanie nr 9
Bartek ma w skarbonce 358 złotych. Postanowił kupić na Dzień Matki trzy prezenty: kwiaty, bombonierę i perfumy. Napisz
algorytm, który będzie wczytywał z klawiatury wartości trzech towarów oraz obliczał ilość pieniędzy jaka pozostanie
Bartkowi na koncie.
Zadanie nr 10
Jakub postanowił zakupić akwarium o pewnych wymiarach. Napisz algorytm, który oblicza ilość litrów wody jaka zmieści
się w tym akwarium. Wartości wysokości, szerokości i długości są podawane podczas działania algorytmu. Zakładamy że nie liczymy grubości ścianek szkła z którego zbudowano akwarium.