Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal ЛабРаб 1,2 укр КОНЕЦ вар14.doc
Скачиваний:
12
Добавлен:
21.02.2016
Размер:
1.47 Mб
Скачать

5.2.3. Базові структури алгоритмів

Практично будь-який алгоритм можна представити у виді композиції (послідовного з'єднання і вкладеності) декількох базових структур: послідовність, розгалуження і циклу. Кожна така структура має один вхід і один вихід. Блок-схеми базових структур представлені на мал.5.4., а приклад їхньої композиції – на мал.5.5.

Базові структури алгоритмів

Послідовність Розгалуження

да

ні

Цикл з передумовою

ні

Мал.5.4

да

Структура «Послідовність» показує, що дія S2 повинно бути виконане строго після дії S1.

Структура «Розгалуження» пропонує виконати дію S1, якщо умова виконується (істинно) або S2 – у противному випадку. Одне з дій S1 або S2 може бути вітсутнім (порожні дії).

Базова структура «Цикл з передумовою» пропонує повторювати виконання дії S1 поки умова правдива. Якщо при вході в цикл умова помилкова, то дія S1 не виконується жодного разу.

Композиція базових структур ` Мал.5.5

Алгоритм, при конструюванні якого дотримується правила композиції (послідовне з'єднання або вкладеність) приведених базових структур називають структурованим.

5.2.4. Додаткові керуючі структури

Крім приведених вище базових структур при практичному програмуванні використовуються додаткові керуючі структури: множинний вибір (мал.5.6) і цикл з після умовою (мал.5.7).

Мал.5.6 Мал.5.7

При множинному вибору виконується одна з дій S1, S2 … Sn у залежності від значення зазначеного в блоці умови. Цикл з після умовою пропонує виконання дії S1 до істинності умови (виконання дії S1 припиняється, коли умова стає правдивою). Помітимо, що дія S1 у цьому випадку виконується хоча б один раз.

5.3. Оператори вибору, розгалуження і циклу в мові паскаль.

5.3.1. Оператор розгалуження на мові Pascal

Базова структура «розгалуження» реалізована на мові ПАСКАЛЬ оператором if. Структуру умовного оператора if можна представити у виді:

If b then s1 [else s2]; або if b then s1,

де B – логічне вираження, а S1 і S2 – оператори (прості, або складені).

Виконання такого умовного оператора зводиться до виконання одного з операторівS1 або S2: якщо задане в операторі умова виконується (логічне вираження B приймає значення TRUE), то виконується оператор S1, у інакше випадку виконується оператор S2.

Приклад оператора IF: Функція Y=|X|

i

Цим оператором реалізується функція Y=|X|

f x>=0 then

y:=x

X

else

y:= -x;

5.3.2. Оператор різноманітного розгалуження (вибору) case.

Додаткова керуюча структура «різноманітний вибір» реалізована на мові ПАСКАЛЬ за допомогою оператора CASE. Структура оператора

c

де B – вираз будь-якого простого типу, за винятком REAL,

A1 A2 … An – мітки вибору (константи того ж типу, що і вираз, перераховані через кому, причому жодна з цих констант не може використовуватися в якості мітки більш одного разу),

S1, S2 … Sn – оператори.

ase B of

A1 : S1;

A2 : S2;

. . .

An : Sn

end;

При виконанні оператора вибору спочатку обчислюється значення виразу В. Потім виконується той з обираних операторів, одна з міток якого збігається зі значенням виразу, і цим виконання оператора вибору завершується. Якщо такої мітки ні, то виконується наступний за CASE оператор.

Приклади оператора вибору.

case і mod 3 of

case sym of

0 :

m

:=

0;

'=' :

k

:=

1;

1 :

m

:=

-1;

'!' :

k

:=

2;

2 :

m

:=

1

': ', '; ' :

k

:=

3;

end;

'*', '+', '/', '-' :

k

:=

4

end;

У прикладі 1 при i=5 буде виконуватися оператор m: = l тому що значення виразу (залишок від ділення i на 3) дорівнює 2. Подумайте, який варіант буде виконаний у прикладі 1 при i=-4, у прикладі 2 при sym=': '.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]