- •Введення
- •Список лабораторних робіт
- •Оформлення звіту по лабораторній роботі
- •Правила написання програм
- •Правила виконання схем алгоритмів
- •Лабораторна робота № 1 лінійний обчислювальний процес
- •Лабораторна робота № 2 обчислювальний процес, що розгалужується
- •Лабораторна робота № 3 циклічний процес
- •Лабораторна робота № 4 типи даних, визначувані програмістом
- •Лабораторна робота № 5 робота з одновимірними і двовимірними масивами
- •Лабораторна робота № 6 сортування одно і двовимірних масивів.
- •Лабораторна робота № 7 функції і процедур, визначувані програмістом
- •Лабораторна робота № 8 модулі і динамічно зв'язувані бібліотеки.
- •Лабораторна робота № 9 множини і операції над ними
- •Лабораторна робота № 10 комбіновані типи (записи )
- •Лабораторна робота № 11 файли і робота з ними
- •Лабораторна робота № 12 статистичнi I динамiчнi структури даних
- •Лабораторна робота № 13 лабіринт
- •Лабораторна робота № 14 евристики.
- •Лабораторна робота № 15 класи
Лабораторна робота № 2 обчислювальний процес, що розгалужується
Завдання: Скласти алгоритм і програму за допомогою операторів галуження IF і CASE і оператора безумовного переходу GOTO. Досліджувати функцію на область допустимих значень. Завдання приведені в таблиці 2.
Управління обчислювальним процесом
Коли процес обчислення залежить від проміжних обчислень, то хід розрахунку не може бути заданий однозначно до початку розрахунку. В цьому випадку потрібне використання операторів управління обчислювальним процесом:
GOTO - оператора безумовного переходу;
IF - оператора умовного переходу;
CASE - оператора вибору.
2.1 Оператор безумовного переходу GOTO
Безумовний перехід приводить до передачі управління з одного місця програми в інше. Для виконання безумовного переходу необхідно:
перед оператором, одержуючим управління поставити мітку у вигляді цілого числа з діапазону 0..9999;
на початку програми описати цю мітку.
Опис міток виконують між заголовком програми і описом констант. Мітками можна зробити відразу декілька чисел.
Наприклад:
program prim;
label 1,2,8;
var c, i:integer;
b, d:real;
begin
read(b);
d: =sin (b); goto 1;
...
...
...
2: read(i);
c: =i+1;
write(c);
goto 8;
...
...
...
1: write(d);
goto 2;
...
...
...
8: end.
2.2 Тип даних BOOLEAN
Булеві (логічні) змінні можуть мати одне з двох значень: TRUE (істина) або FALSE (брехня).Булеві вирази використовуються для перевірки відносин між двома змінними.
Відносини:
= рівно;
> більше, ніж...;
>= більше, ніж... або рівно;
< менше, ніж ...;
<= менше, ніж..., або рівно;
<> нерівно;
Крім того, булеві вирази можуть конструюватися за допомогою булевих операцій. У мову Паскаль включені три булеві операції: AND (и), OR (або), NOT (не).
Булеві операції застосовуються, якщо потрібно перевірити складну умову. Булеві вирази можуть використовувати три булеві операції в будь-яких поєднаннях; операнди можуть бути простими булевими константами, булевими змінними або відносинами.
Порядок старшинства операцій в булевих виразах:
-
Вищий
Нижчий
( )
>
NOT
=
AND
<
OR
<>
>=
<=
У мові Паскаль є вбудована булева функція ODD (X) з цілочисельним аргументом. Функція ODD (X) повертає істину, якщо аргумент X є непарним.
2.3 Галуження
Використовуючи булеві вирази можна здійснювати перевірку різних умов в мові Паскаль. Конструкція вибору може бути реалізована за допомогою двох функцій: IF і CASE.
2.3.1 Інструкція IF
Оператори умовного переходу IF THEN і IF THEN. ELSE задають порядок проходження операторів залежно від істинності (або помилковості) виразу відношення.
Загальна форма запису:
IF булевий вираз THEN оператор IF булевий вираз THEN оператор 1 ЕLSE оператор 2
Коли оператор IF з'являється усередині іншого оператора IF, він вважається вкладеним. Вкладення використовується для зменшення числа перевірок. Проте не рекомендується використовувати більш за одного-двух рівні вкладення IF.
Якщо в операторові IF буде потрібно виконання послідовності операторів, можна поміщати цю послідовність між зарезервованими словами BEGIN і END.
Приклад:
program vybor;
var a, b:integer;
begin
writeln('введіть числа а, b');
read(а, b);
if a<b then writeln('а менше b')
else writeln('а більше b');
{ складений оператор}
if a<b then
begin
writeln('a<b');
writeln('а менше b');
end;
end.
2.3.2 Інструкція CASE
Оператор IF дозволяє програмі виконувати переходи на ту або іншу гілку за значенням булевої умови. Для здійснення вибору однієї з декількох альтернатив мова Паскаль надає іншу структуру, що управляє (оператор CASE).
Таким чином, інструкція CASE здійснює множинне галуження по ряду умов.
Загальна форма запису:
CASE вираз OF
значення: оператор;
...................
значення: оператор;
ELSE оператор;
end;
Обробка оператора починається з обчислення виразу, а далі виконується оператор, відповідний результату обчислення виразу.
Приклад 1:
case number mod 2 of
0: writeln('number- парне');
1: writeln('number- непар.');
end;
Приклад 2:
case month of
1,2,3: writeln('перший квартал');
4,5,6: writeln('другий квартал');
7,8,9: writeln('третій квартал');
10,11,12: begin
writeln('четвертий квартал');
writeln('складається з місяців:');
writeln('жовтень, листопад, грудень');
end;
end;
Змінна вибору (селектор) в операторові CASE не повинна належати типу REAL. Селектор може бути виразом.
Таблиця 2 - Варіанти завдань для лабораторної роботи № 2
-
№
Зміст завдання
Початкові дані
A
B
C
1
1.45
3.65
4.82
3.65
2
2
7.54
-2
0
3
3
4.29
0.5
4.5
8.61
4
4.95
1
2
2.57
5
7.8
2.55
10.41
4.7
6
1
2
3
-6.52
10.54
7
1.27
0.38
4.28
0.15
8
1.23
12.55
-2.75
7.32
9
16.24
2.67
11.2
3.28
10
16.25
2.26
4.83
0.865
11
1
2
3
6.58
4.35
12
14.2
10.2
2.78
6.43
13
10.42
-11.3
-1.42
-0.98
14
0.93
0.44
1.38
0.52
15
8.45
9.36
11.48
10.55
16
10.43
1.53
2.6
6.05
17
1
12
10.36
0.828
18
3.75
-6.75
1.34
3.075
19
5.016
7.22
10.98
3.5
20
Перевірити істинність виразу:
A+BC-2>5
1
-3
2
4
21
Перевірити істинність виразу:
3
6
4
7
25
8
22
Якщо вираз AВ>0 істинно
то обчислити:
3.25
-5.4
1.4
2.4
15.6
23
Перевірити числа A, B, C на парність
5
6
0
-3
8
-7
24
Отримати MAX (A, B)
3.45
4.78
25
Отримати MAX (A, B, C)
-2.5
-59
2.48
26
Отримати MIN (A, B, C)
15.28
2.33
20.73
27
Обчислити MAX(A+B+C, ABC)
5.4
8.2
0.45
28
Перевірити чи виконується А<B<C
2.54
3.27
4.28
5.44
10.5
2.1
29
Якщо A>=В>=С, то подвоїти A, B і C
інакше замінити абсолютними значеннями
5.28
2.49
4.72
7.24
3.24
-4.66
30
Надрукувати A, якщо A>В
інакше надрукувати A і B
4.58
2.27
3.54