- •Лабораторная работа №19 Реализация стандартных функций: организация разветвлений
- •Варианты заданий
- •Контрольныe вопросы
- •Список литературы
- •Голубь, н.Г. Алгоритмические языки и программирование: учеб. Пособие: в 2 ч. / н.Г. Голубь, е.Г. Кириленко. – ч.1. – Харьков: хаи, 1997.
- •Джонс, ж. Решение задач в системе Турбо Паскаль / ж. Джонс, к. Харроу. – Москва, 1991.
- •Фаронов, в.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие / в.В. Фаронов. – Москва, 1997.
- •Приложение 1 пример выполнения Лабораторной работы № 19 листинг программы Work2.Pas
- •Алгоритм выполнения функции f
- •Алгоритм выполнения процедуры Input
- •Описание главной программы
- •Приложение 2 Стандартные процедуры и функции (Турбо-Паскаль)
- •Применение функций и процедур (Паскаль)
Алгоритм выполнения функции f
Сначала функции F присваивается значение TRUE и проверяется b>a.
Если условие выполняется, тогда вычисляется значение x1:=b/4.0*a.
Иначе проверяется b=a.
Если да, то х1:=-55.
Если же это условие не выполняется , то остается условие b<a, в котором надо проверить на ноль знаменатель a выражения (b-5)/a.
Если это условие (a=0) выполняется (знаменатель в выражении (b-5)/a равен нулю), вычисляется составной оператор после THEN, заключенный в скобки - begin ... end:
В этом случае строковая переменная s1:=inv1+inv2 будет равна:
‘Деление на ноль!!!!!!! Повторите ввод’.
Это сообщение выводится на экран.
Функция F принимает значение FALSE и управление передается по EXIT в основную программу.
В случае, если знаменатель не равен нулю, вычисляется значение x1:=(b-5.0)/a.
Далее проверяется, входит ли значение х1 в допустимый диапазон (для переменных типа INTEGER).
Если да, то целая переменная получает значение х:=trunc(x1).
Если значение х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
На экран сообщаем о вводе переменной А - Write(‘Введите значение ’+ inv,'===>'). При выполнении этого оператора на экране появляется сообщение: Введите значение А===>.
Вводим с клавиатуры ее значение - READLN(aL).
Проверяем входит ли это значение в допустимый диапазон:
если да, то A:=TRUNC(aL),
если нет , то переменная s1получает значение s1:=inv5+inv4
(‘Вводимое значение выходит за диапазон [-32768...32767]!!!’).
На экран выводится значение inv1 (‘Повторите ввод’).
Управление передается на метку L для повторного ввода значения А.
Эта процедура может быть использована для ввода и контроля диапазона любой целочисленной переменной типа INTEGER.
Описание главной программы
В цикле REPEAT ... UNTIL очищается экран (ClrScr), выводится на экран вид исходного задания, через процедуру INPUT вводятся переменные a и b, через функцию F вычисляется искомое значение x.
Если значение функции F равно False, управление передается на метку L1 для повторного ввода переменных а и b .
Если значение функции F равно TRUE, - выводится результат (переменная х).
На экране появляется ‘Опять? (Y/N)’.
Переменной ch:=ReadKey и в зависимости от ответа управление передается на начало цикла (ch:=’Y’) или программа заканчивает выполнение (ch:= ‘N’).