Тема: TurboPascal. Розгалужені алгоритми і програми.
Мета: Формування умінь створення розгалужених алгоритмів і програм на алгоритмічній мові високого рівня Pascal.
Теоретичні відомості
Розгалуження – це алгоритмічна конструкція, де перевіряється умова і залежно від її істинності чи хибності виконується та чи інша серія команд. Команди розгалуження мають такі різновиди:
- умовна команда (повна чи неповна форма);
- команда безумовного переходу;
- команда вибору.
Повна форма умовної команди розгалуженнямає вид:
IF <логічний вираз> THEN <серія команд 1> ELSE
<серія команд 2>;
Дія команди.
Якщо значення логічного виразу істинне, то виконується серія команд 1, якщо хибне, то виконується серія команд 2.
Коротка форма умовної команди розгалуженнямає вид:
IF <логічний вираз> THEN <серія команд >;
Дія команди.
Якщо значення логічного виразу істинне, то виконується серія команд в одному рядку програми, якщо хибне, то серія команд ігнорується, і виконується наступний після IF рядок програми.
|
|
Команда безумовного переходу змінює послідовність виконання інших команд програми шляхом переходу до виконання команди, що має мітку (позначку):
GOTO <мітка>;
Мітку треба заздалегідь оголосити на початку програми в розділі label.
Команда вибору має вигляд:
case <вираз> of
<список значень 1>:<команда 1>;
…
<список значень n>:<команда n>
else <команда n+1>
end;
Структура розгалуженої програми складається з введення аргументу, формування умови розгалуження, розрахунку в кожній вітці значення функції відповідно до умови задачі, виведення значення аргументу і обчислення значення функції.
При складанні програм з розгалуженням необхідно:
- скласти графічний алгоритм;
- ідентифікувати змінні;
- скласти програму, в якій передбачити введення аргументу і виведення значення обчисленої функції в кожній вітці алгоритму;
- розв’язати задачу на ЕОМ в діалоговому режимі.
Задачу слід розв’язати для двох значень аргументу, які вказані в умові задачі, що дає можливість тестувати алгоритм.
Хід роботи
2.1 Постановка задачі
Скласти графічний алгоритм і програму для обчислення функції
Значення сталих величин: a=1,326; b=0,967.
Задачу розв’язати для двох значень аргументу: х=1,627 і х=0,291.
2.2 Графічний алгоритм наведений на рис. 6.1.
2.3 Таблиця ідентифікації змінних
Змінна | a | b | X | |
Ідентифікатор | A | B | X | Y |
2.4 Програма мовою Pascal та результати обчислень
Program R{розгалуження};
Const
a=1.326;
b=0.967;
Var
x,y:real;
Begin
write('Введіть аргумент: ');
read(x);
if x>a*b then
begin
y:=exp(1/3*ln(abs(x-a)))*b;
writeln('x=',x:6:3,' y=',y:6:3)
|
|
end else
if (x>=b) and (x<b/a) then
begin
y:=exp(3*ln(abs(x-a)))/2;
writeln(' x=',x:6:3,' y=',y:6:3)
end else write('Система розв’язку немає')
end.
так ні
ні
так
Рисунок 6.1 – Графічний алгоритм
Введіть аргумент: 1.627
х=1.627 y=0.648
Введіть аргумент: 0.291
Система розв’язку немає
3 Контрольні запитання
1. Дайте означення логічної операції NOT, AND, OR.
2. Запишіть умову того, що число а є:
а) парне; б) ділиться без остачі на 3; в) не ділиться без остачі; г) ділиться на 3 і на 5;
3. Дано трикутник зі сторонами а,б,с. Перевірте, чи виконується умова існування трикутника.
4. Запишіть логічні вирази для нерівностей: а) 0≤х<10; б) х≤1 або х>9; г) х≤2 та х>12;
5. Що таке складений логічний вираз?
6. Які є оператори розгалуження?
7. Для чого призначена команда GOTO?
Варіанти завдань наведені в таблиці 6.1.
Таблиця 6.1 – Варіанти завдань
№ варі-анту | Вид функції | Ар-гу-мент | Зна-чення аргу-мента | A | B |
x | 1,62 1,41 | 1,62 | -1,25 | ||
y | 2,86 3,98 | 3,46 | 4,215 | ||
g | 4,751 1,17 | 6,435 | 1,87 | ||
1,321 2, 65 | 3,65 | 1,321 |
Продовження таблиці 6.1
x | 11,68 3,86 | 4,63 | 0,68 | ||
l | 2,38 7,6 | 1,361 | - | ||
x | 4,26 7,29 | 8,3 | 6,8 | ||
h | 0,21 1,65 | 0,261 | 1,658 | ||
q | 9,477 4,35 | 4,652 | 3,825 | ||
x | 3,2 6,856 | 1,5 | 10,63 | ||
o | 1,651 0,581 | 12,83 | 0,863 | ||
p | 3,271 4,956 | 3,651 | 5,82 |
Продовження таблиці 6.1
r | 8,269 2,892 | 6,347 | 21,4 | ||
s | 1,326 3,906 | 0,854 | 3,625 | ||
t | 0,365 | 1,265 | 3,126 | ||
y | 0,375 0,506 | 0,265 | 0,883 | ||
l | 2,685 7,21 | 4,735 | 8,216 | ||
3,656 8,350 | 2,876 | 12,39 | |||
c | 18,16 28,32 | 6,208 | 23,57 | ||
x | 1,627 0,291 | 1,326 | 0,967 |
Продовження таблиці 6.1
1,36 2,314 | 2,128 | 0,366 | ||||||
8,272 3,214 | 16,28 | 2,283 | ||||||
y | 2,225 7,093 | 2,703 | 12,38 | |||||
i | -5,5 -2,638 | -2 | -8 | |||||