Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПО_ЛР19.docx
Скачиваний:
4
Добавлен:
27.09.2019
Размер:
168.33 Кб
Скачать

Алгоритм выполнения функции f

  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 в основную программу.

  1. В случае, если знаменатель не равен нулю, вычисляется значение x1:=(b-5.0)/a.

  2. Далее проверяется, входит ли значение х1 в допустимый диапазон (для переменных типа INTEGER).

  3. Если да, то целая переменная получает значение х:=trunc(x1).

  4. Если значение х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(aL).

  3. Проверяем входит ли это значение в допустимый диапазон:

  • если да, то A:=TRUNC(aL),

  • если нет , то переменная s1получает значение s1:=inv5+inv4

(‘Вводимое значение выходит за диапазон [-32768...32767]!!!’).

  • На экран выводится значение inv1 (‘Повторите ввод’).

  • Управление передается на метку L для повторного ввода значения А.

Эта процедура может быть использована для ввода и контроля диапазона любой целочисленной переменной типа INTEGER.

Описание главной программы

  1. В цикле REPEAT ... UNTIL очищается экран (ClrScr), выводится на экран вид исходного задания, через процедуру INPUT вводятся переменные a и b, через функцию F вычисляется искомое значение x.

  • Если значение функции F равно False, управление передается на метку L1 для повторного ввода переменных а и b .

  • Если значение функции F равно TRUE, - выводится результат (переменная х).

  1. На экране появляется ‘Опять? (Y/N)’.

Переменной ch:=ReadKey и в зависимости от ответа управление передается на начало цикла (ch:=Y’) или программа заканчивает выполнение (ch:= ‘N’).

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