1. Спочатку функції F присвоюється значення TRUE і перевіряється b>a.
2. Якщоумова виконується, тоді обчислюється значення x1:=b/4.0*a.
3. Інакше перевіряється b=a.
4. Якщо так, то х1:=-55.
5. Якщо ж ця умова не виконується, то залишається умова b<a, у якій треба перевірити на нуль знаменник a виразу (b-5)/a.
6. Якщо ця умова (a=0) виконується (знаменник у виразі (b-5)/a дорівнює нулю), обчислюється складений оператор після THEN, взятий у дужки - begin... end:
¨ У цьому випадку стрічкова змінна s1:=inv1+inv2 буде дорівнює:
‘ Ділення на нуль!!!!!!! Повторіть введення’.
¨ Це повідомлення виводиться на екран.
¨ Функція F приймає значення FALSE і керування передається по EXIT в головну програму.
7. У випадку, якщо знаменник не дорівнює нулю, обчислюється значення x1:=(b-5.0)/a.
8. Далі перевіряється, чи входить значення х1 у допустимий діапазон (для змінних типу INTEGER).
9. Якщо так, то ціла змінна одержує значення х:=trunc(x1).
10. Якщо значення х1 виходить за допустимий діапазон, то:
¨ s1:=inv3+inv4 (‘Результат виходить за діапазон [-3268...32767]!!!!’);
|
|
¨ значенння S1 виводиться на екран - Writeln(s1);
¨ виводиться на екран отримане значення Х1 - Writeln(x1);
¨ і нове запрошення - Writeln(Inv1) (‘Повторіть ввод’).
¨ Функція F приймає значення FALSE і керування по EXIT передається в головну програму.
Далі описана процедура введення вихідного значення змінної А з перевіркою на область допустимих значень. Ім'я процедури - Input. У заголовку описані формальні параметри A:integer і inv:string (ім'я змінної). У тілі процедури використовуються локальні змінні al:real і s1:string, у полі опису міток визначена мітка L.
Алгоритм виконання процедури Input
1. На екран повідомляємо про введення змінної А - Write(‘Введіть значення ’+ inv, '===>'). При виконанні цього оператора на екрані з'являється повідомлення: Введіть значення А===>.
2. Вводимо з клавіатури її значення- READLN(a).
3. Перевіряємо чи входить ці значення в допустимий діапазон:
¨ якщо так, то A:=TRUNC(a),
¨ якщо ні, то змінна s1 отримує значення s1:=inv5+inv4
(' значення, що вводиться, виходить за діапазон [-32768...32767]!!!’).
¨ На екран виводиться значення inv1 (‘Повторіть введення’).
¨ Керування передається на мітку L для повторного введення значення А.
Ця процедура може бути використана для введення і контролю діапазону будь-якої цілої змінної типу INTEGER.
Опис головної програми
1. У циклі REPEAT... UNTIL очищається екран (ClrScr), виводиться на екран вид вихідного завдання, через процедуру INPUT вводяться змінні a і b, через функцію F обчислюється шукане значення x.
¨ Якщо значення функції F дорівнює False, керування передається на мітку L1 для повторного введення змінних а і b.
¨ Якщо значення функції F дорівнює TRUE, - виводиться результат (змінна х).
|
|
2. На екрані з'являється ‘ Знову? (Y/N)’.
3. Змінна ch:=ReadKey і в залежності від відповіді керування передається на початок циклу (ch:= ’ Y’) чи програма закінчує виконання (ch:= ‘N’).
ДОДАТОК 3
Приклад виконання лабораторної роботи № 3