Ćwiczenie III

 

1. Pojęcia

            Definicja schematu blokowego

 

2. Wiadomości

2.1 Definicje

 

W przypadku prostych algorytmów możliwy jest ich zapis w postaci słownej. Podany sposób nie jest odpowiedni jednak w sytuacji bardziej skomplikowanych czynności. W takim razie stosowany jest zapis w postaci schematu blokowego

 

Schemat blokowy to graficzny zapis algorytmu rozwiązania zadania, przedstawiający opis i kolejność wykonywania czynności realizujących dany algorytm. Schematy blokowe są narzędziem stosunkowo prostym, nakierowanym przede wszystkim na prezentację kolejnych czynności w projektowanym algorytmie. Są szczególnie przydatne podczas pisania złożonych programów komputerowych. Cechuje je: prosta zasada budowy (mała liczba elementów), pewna elastyczność zapisów, możliwość zapisu z użyciem składu wybranego języka programowania, łatwa kontrola poprawności algorytmu. Pozwalają na stosunkowo prostą zamianę instrukcji na instrukcje programu komputerowego.

 

 

Schemat blokowy - jest jedną z najpopularniejszych form przedstawiania algorytmu.  Rodzaje sieci działań:

Proste (sekwencyjne) - nie używa się w nich bloków warunkowych. W takiej sieci działań kolejność realizacji poszczególnych operacji jest ściśle określona i żadna z nich nie może być pominięta ani powtórzona.

Z rozwidleniem - zawiera w sobie wybór jednej z kilku możliwych dróg realizacji danego zadania. Istnieje w nim przynajmniej jeden blok warunkowy.

Z pętlą, często w trakcie realizacji danego zadania konieczne jest powtórzenie niektórych operacji różniących się jedynie zestawem danych. Pętla obejmuje tą część bloków, która ma być powtarzana.

Złożone - będące kombinacją powyższych sieci.

 

 

2.2 Elementy składowe schematu blokowego

 

strzałka - wskazuje jednoznacznie powiązania i ich kierunek;

 

operand - prostokąt, do którego wpisywane są wszystkie operacje z wyjątkiem instrukcji wyboru;

 

predykat - romb, do którego wpisywane są wyłącznie instrukcje wyboru;

 

etykieta - owal służący do oznaczania początku bądź końca sekwencji schematu    (kończą,zaczynają lub przerywają/przenoszą schemat).

 

W schemacie blokowym poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (bloków). Połączenia określają kolejność i sposób wykonywania operacji realizujących dany algorytm. W literaturze informatycznej przyjęto pewne standardowe oznaczenia poszczególnych działań (są to figury geometryczne), ale można również używać innych oznaczeń (muszą one jednak być takie same dla określonego typu operacji).

 

 Elementem poprzedzającym pisanie kodu programu powinno być przygotowanie schematu jego działania (algorytmu). Jednym ze sposobów przedstawiania algorytmów są schematy blokowe. Schemat blokowy jest to układ figur geometrycznych (nazywanych skrzynkami lub blokami) połączonych ze sobą odcinkami prostymi, łamanymi lub krzywymi (ścieżki sterujące). Figury służą do przedstawiania rodzaju działań zaprojektowanych w algorytmie, linie wskazują kolejność wykonywania tych działań. Każda figura w schemacie blokowym prezentuje określony rodzaj operacji. Zasadniczą zaletą schematów blokowych jest to, że graficznie prezentują one algorytm zarówno od strony występujących w nim działań, jak i ich kolejności. Operacje arytmetyczne oraz aplikacje typu WSTAW oznaczane są za pomocą prostokąta, w którym wpisywany jest komentarz określający daną operację. Przy tym, jeśli kilka operacji tworzy logiczną całość, to wszystkie one mogą być umieszczone w jednej bloku. Zalecane jest nie umieszczanie zbyt dużej liczby operacji nawet wtedy, kiedy są one powiązane ze sobą bezpośrednio, ponieważ może to zmniejszyć czytelność schematu. Operacje odczytywania danych oraz wprowadzania wyników oznaczone są za pomocą równoległoboków (w środku powinien znajdować się odpowiedni komentarz). Operacja warunkowa JEŻELI jest oznaczona za pomocą rombu, w którym wpisuje się odpowiedni warunek. Operacje warunkowe zawsze prowadzą do konieczności rozwiązania dwóch dróg: jednej (TAK ) kiedy rozpatrywany warunek jest spełniony i drugiej kiedy rozpatrywany warunek nie jest spełniony (NIE). Operacje START i STOP są oznaczone figurą podobną do elipsy z odpowiednim komentarzem

 

 

 

 

 

Elementy schematu blokowego

Symbol graficzny

Nazwa skrzynki (bloku)

Funkcja

Opis

Skrzynki graniczne

Blok graniczy

Początek algorytmu lub koniec

mają kształt owalu. Ze skrzynki START wychodzi tylko jedno połączenie, skrzynka STOP nie ma połączenia wychodzącego.

Skrzynka graniczna

Skrzynka operacyjna

Skrzynka operacyjna

Wykonywanie różnych działań, np. sumowania

ma kształt prostokąta.

Skrzynka wejścia / wyjścia

Skrzynka wejścia / wyjścia

Wprowadzanie (czytanie) danych lub wyprowadzanie (drukowanie, pisanie) wyników

jest równoległobokiem, wchodzi i wychodzi z niej jedno połączenie.

Skrzynka graniczna

Skrzynka warunkowa

Skrzynka warunkowa

Sprawdzanie warunku, np. czy N > 0

mają kształt rombu. Ze skrzynki wychodzą tylko dwa połączenia: jedno oznaczone TAK, a drugie NIE.

 

 

 

 

 

2.3 Zasady budowy schematu blokowego

 

1) Każda operacja jest umieszczona w skrzynce

2) Schemat ma tylko jedną skrzynkę "początek" i przynajmniej jedną skrzynkę "koniec"

3) Skrzynki są ze sobą połączone.

4) Ze skrzynki wychodzi jedno połączenie; wyjątek stanowią skrzynki: "koniec" (z której nie wychodzą już żądne połączenia) oraz "warunkowa"

(z której wychodzą dwa połączenia opisane TAK i NIE - w zależności od tego, czy warunek jest spełniony czy nie, można wyjść jedną z dwóch dróg)

5) W skrzynce "operacyjnej" zamiast znaku "=" pojawia się oznaczenie ":="

 

 

 

2.4 Algorytmy - budowa

 

proste (sekwencyjne) - nie używa się w nich bloków warunkowych. W takiej sieci działań kolejność realizacji poszczególnych operacji jest ściśle określona i żadna z  nich nie może być pominięta ani powtórzona.

 

z rozwidleniem - zawiera w sobie wybór jednej z kilku możliwych dróg realizacji danego zadania. Istnieje w nim przynajmniej jeden blok warunkowy.

 

z pętlą, często w trakcie realizacji danego zadania konieczne jest powtórzenie niektórych operacji różniących się jedynie zestawem danych. Pętla obejmuje tą część bloków, która ma być powtarzana. 

 

złożone - będące kombinacją powyższych sieci.

 

 

2.5 Przykłady i zadania

 

 

Instrukcje warunkowe

 

 

Iteracja

 

 

 

 

 

 

 

 

 

 

 

Przykład zapisu algorytmu w postaci blokowej

 

 

 

 

 

Zadanie 1 (algorytm liniowy)

Dane:  Liczby  rzeczywiste a, b;

Wynik: suma s, różnica r, iloczyn c

 

Zadanie 2

Zmodyfikuj algorytm z zadania 1 dołączając jako wynik iloraz d liczb a, b.

 

Zadanie 3

Dane:  Liczby  rzeczywiste a, b;

Wynik:  Komunikaty: „ a mniejsze od b” , „a nie jest mniejsze od b”

 

Zadanie 4

Dane: Liczby  rzeczywiste a, b;

Wynik:  Rozwiązanie równania ax + b = 0.

Zadanie 5

Oblicz wartość funkcji: f(x) = |x| 

Dane: Dowolna liczba rzeczywista x;

Wynik: Wartość  funkcji f(x).

 

Zadanie dodatkowe

Wykonaj zadanie 5 ale dla funkcji x / |x|.

Kod w Pascalu

 

 

3. Zadania i ćwiczenia

 

Ćwiczenie 1
Dany jest ciąg liczb o nieznanej długości. Ostatnia liczba w ciągu równa się zero. Oblicz sumę elementów tego ciągu. Oblicz iloczyn elementów tego ciągu.

 

 

 

Ćwiczenie 2
Oblicz sumę n - kolejnych liczb naturalnych. Pierwsza z liczb wprowadzona z klawiatury i równa się b.

 

 

 

 

 

 

Ćwiczenie 3
Oblicz iloczyn n - kolejnych liczb naturalnych. Pierwsza z liczb jest wprowadzona z klawiatury i równa się b.

 

 

Ćwiczenie 4
Dany jest ciąg n-elementowy. Elementy tego ciągu są różne. Wskaż największy element ciągu.

 



 

Ćwiczenie 5

Dany jest ciąg liczb o nieznanej długości. Ostatnia liczba w ciągu równa się zero. Oblicz średnią arytmetyczną elementów ciągu - schemat blokowy.

 

Ćwiczenie 6

Wykonywania czterech podstawowych rzeczywistych działań matematycznych tj. dodawanie, odejmowanie, mnożenie i dzielenie, gdzie pierwszym zapytaniem algorytmu powinno być pytanie o rodzaj operacji, a dopiero kolejnymi pytanie o argumenty tej operacji - schemat blokowy.

 

Ćwiczenie 7

Wykonywania czterech podstawowych zespolonych działań matematycznych tj. dodawanie, odejmowanie, mnożenie i dzielenie, gdzie pierwszym zapytaniem algorytmu powinno być pytanie o rodzaj operacji, a dopiero kolejnymi pytanie o argumenty tej operacji - schemat blokowy.

 

Ćwiczenie 8

Napisać schemat blokowy iteracyjnego obliczania funkcji silnia ( n! ).

 

Ćwiczenie 9

Napisać schemat blokowy pobierający od użytkownika liczbę zespoloną i wypisujący wartość modułu oraz argumentu tej liczby.

 

Ćwiczenie 10

Schemat blokowy procedury sortującej tablicę n-elementową metodą przez wstawianie.