Schemat blokowy.


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)


Zasady tworzenia schematów blokowych

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.

Przykład

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.


Wróć do spisu tematów