Lab_rab_Pascal_OZO / Lab_04_Условный_оператор
.docЛабораторная работа № 4.
Условный оператор.
Цель: изучение и овладение практическими навыками разработки и программирования вычислительного процесса с использованием условного оператора и вложенности условий, получение дальнейших навыков по отладке и тестированию программ.
Оборудование и программное обеспечение: компьютер, Turbo Pascal 7.0.
Место проведения:
Время:
Теоретические сведения:
Условный оператор реализует алгоритмическую конструкцию "развилка" (ветвление) и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:
полная форма: if <условие> then <оператор 1>
else <оператор 2>;
неполная (сокращенная) форма: if <условие> then <оператор>;
где <условие> - логическое выражение, истинность которого проверяется;
<оператор> - простой или составной оператор.
Пример 1: Вывести на экран наибольшее из двух данных чисел.
…………………………………………………………..
if x>y then writeln(x, ‘- максимальное’)
else writeln(y, ‘- максимальное’);
…………………………………………...........................
Внутри условного оператора возможно использование другого условного оператора, в этом случае говорят о вложенности условий.
Пример 2: Даны три действительных числа x,y,z. Получить max(x,y,z).
1 способ. …………………………………………………………………………
if (x>y) and (x>z) then writeln(‘max = ’,x)
else if (y>x) and (y>z) then writeln(‘max = ’,y)
else writeln(‘max = ’,z);
…..…………………………………………..........................................
2 способ. ..………………………………………………………………….
if x>y then if x>z then writeln(‘max = ’,x)
else writeln(‘max = ’,z)
else if y>z then writeln(‘max = ’,y)
else writeln(‘max = ’,z);
…………………………………………..................................
Данную задачу можно решить, используя промежуточную переменную max:
1 способ. ……………………… if x>y then max:=x else max:=y; if z>max then max:=z; ………………………… |
2 способ. ………………………… max:=x; if y>max then max:=y; if z>max then max:=z; ………………………… |
Порядок выполнения работы:
Задание 1:
a) Создать и отладить программу для решения следующей задачи. Даны действительные числа a, b, c. Найти наибольшую или наименьшую из комбинаций данных чисел (см. Приложение).
б) Провести численные расчеты для a=1, b=2, c=3; a=-5, b=0, c=10.
в) Дополнить программу следующим фрагментом. Определить, принадлежит ли вычисленное значение максимума (минимума) интервалу [0.5; 2.0] и выдать на экран соответствующее сообщение. Отладить и выполнить программу с произвольными значениями входных данных.
Задание 2:
Создать и отладить программу для решения следующей задачи. Вычислить значение функции Y (см. Приложение)
Методические рекомендации:
При составлении программы следует использовать оператор READLN для ввода значений переменных a, b, c; следует ввести (и описать) переменную для обозначения искомого наибольшего (или наименьшего) значения (например, max или min). При решении задачи можно воспользоваться одним из способов, описанных в примерах. При выполнении задания 1 в), для проверки условия использовать оператор IF с логическим выражением, в котором используется операция AND.
Содержание отчета по каждому заданию:
-
исходные данные (условие задачи);
-
алгоритм (блок-схема) решения задачи;
-
текст программы (или основной фрагмент программы);
-
результаты выполнения программы
-
тестовый вариант в форме с фиксированной точкой.
Контрольные вопросы:
-
Что понимают под алгоритмом ветвления?
-
Привести примеры случаев ветвления.
-
Как обозначается ветвление в блок-схемах?
-
Какие операторы ветвления существуют в языке Turbo Pascal?
-
Какую структуру имеет оператор IF?
-
Какие различия между полной и сокращенной формой оператора IF?
Приложение: (ваш номер по журналу соответствует номеру варианта)
Номер варианта |
Задание 1. |
Задание 2. |
|
1 |
max (a+b+c, abc, a-b) |
|
x<1,3 x=1,3 x>1,3 |
2 |
min (a+2b, b+3c, c) |
|
x>1,2 x=1,2 x<1,2 |
3 |
min (2a-b, c2, b+c) |
|
x<1,4 x=1,4 x>1,4 |
4 |
max (a/c, b+c, 5c) |
|
x<1 1<x<2 x>2 |
5 |
min (3a, a+b+7c, 8c) |
|
x>a x=a x<a |
6 |
max (5a+7b, b-c, 3c) |
|
bx<1 bx=1 bx>1 |
7 |
min (a2, a+2b-c, c) |
|
x>1 x=1 x<1 |
8 |
max (a+b+c, 3a+8, a+7c) |
|
x<0,5 x=0,5 x>0,5 |
9 |
min (ab, ac, bc) |
|
x<1 1<x<10 x>10 |
10 |
max (a, a2-b, ac) |
|
t<0,1 t=0,1 t>0,1
|
11 |
min (a+7, b-4, 3c) |
|
x<3 x=5 x>3 |
12 |
max (ab, b+5, ac) |
|
x = 5 x < 3 x=3 |
13 |
min (a+2b, b-c, a+c) |
|
x > 3 x = z |
14 |
max (4a, a2+c, b+c) |
|
x > 2 x=2 |
15 |
min (a-b, a-c, b-c) |
|
x > 7 x=ab |