Тема: Использование условного оператора в программе на TurboPascal 7.0»
Цель работы: Овладение практическими навыками использования условного оператора в программах на TurboPascal 7.0
Пояснения к работе
Условный оператор позволяет реализовать ветвление в программе, т.е. выбор последовательности действий в зависимости от некоторого условия.
Структура простого условного оператора
IF < условие> THEN P1 ELSE P2;
< следующий оператор >;
где IF, THEN, ELSE – зарезервированные слова, а P1, P2 – операторы.
Условие – это логическое выражение, которое может принимать два значения: “ДА” – если условие верно (истинно), и “НЕТ” –, если условие неверно (ложно).
Логическое выражение состоит из:
- операндов (констант, переменных, функций);
- знаков сравнения (=, >, <, < =, > =, < >);
- логических операций OR (логическое или), AND (логическое и), NOT (отрицание);
- круглых скобок (при необходимости).
Условный оператор работает по следующему алгоритму:
· в начале вычисляется логическое выражение;
· если результат есть TRUE (истина), то выполняется оператор P1, после него выполняется следующий оператор, а оператор P2 пропускается;
· если результат есть FALSE (ложь), то выполняется оператор P2, после него выполняется следующий оператор, а оператор P1 пропускается;
· часть условного оператора начинающаяся с ELSE может отсутствовать (в зависимости от задачи).
Обратите внимание на то, что в THEN- и ELSE- части стоит только один оператор. Чтобы решить задачу, в которой по выполнению или невыполнению условия нужно совершить не одно, а несколько действий используется составной условный оператор.
Структура составного условного оператора
IF < условие> THEN
Begin
< группа операторов 1>
End
ELSE
Begin
< группа операторов 2>
End;
< следующий оператор >;
В операторные скобки Begin End можно заключить любое количество операторов. Знак " точка с запятой" не ставится перед служебным словом ELSE, но операторы в группах, естественно, отделяются друг от друга этим знаком.
Пример выполнения работы:
Условие: Ввести Х.
Вычислить значение Y
SIN X, если X> 1
Y=
COS X, если X< =1
| Составление программы:
Var
x, y: Real;
Begin
Readln(x);
If x> 1 Then
Y: =Sin(x)
Else
Y: =Cos(x);
Writeln ('Значение Y=', Y);
End.
|
Условие: Ввести два числа. Если первое число больше, то оба увеличить в 3 раза, в противном случае оба числа обнулить.
|
Var x, y: Integer;
Begin
Readln(x, y);
If x> y Then
Begin
X: =X*3; Y: =Y*3;
End
Else
Begin
X: =0; Y: =0;
End;
Writeln(x, y);
End.
|
Очень часто приходиться выбирать путь решения задачи не из двух, а из нескольких возможных вариантов. В программировании такой вариант можно реализовать с помощью нескольких условных операторов.
IF < Условие1 > THEN P1
ELSE
IF < Условие2 > THEN P2
ELSE
IF < Условие3 > THEN P3
ELSE
P4;
Алгоритм работы такой конструкции следующий:
§ если Условие1 истинно, то выполняется оператор Р1 (или блок операторов), следующих за конструкцией THEN, в противном случае этот блок пропускается;
§ если Условие1, следующее за оператором IF ложно, то анализируется Условие2, следующее за ELSE IF.
§ если оно истинно, то выполняется оператор Р2 (или блок операторов), следующих за THEN, а остальные операторы пропускаются.
§ операторы, следующие за последним ELSE, выполняются лишь в том случае, если ложны все условия в конструкциях IF.
Любая встретившаяся часть ELSE принадлежит ближайшей к ней части THEN условного оператора. Условные операторы IF в такой конструкции называются вложенными.
Пример выполнения работы:
Условие: Вычислить значение функции Y
SIN X, если X< 0
Y= COS X, если 0< =X< =1
TG X, если X> 1
| Составление программы:
Var X, Y: Real;
Begin
Readln(X);
If X< 0 Then
Y: =SIN(X)
Else If X> 1 Then
Y: =SIN(X)/COS(X)
Else
Y: =COS(X);
Writeln('Значение функции Y=', Y);
End.
|
Контрольные вопросы
· Как работает и когда используется простой условный оператор If?
· Как работает и когда используется составной условный оператор If?
· Назначение операторных скобок при записи условного оператора?
· В каких случаях используются вложенные структуры условного оператора?
· Какой тип должно иметь выражение, следующее за IF?
Варианты к лабораторной работе №4
(ваш номер по журналу соответствует номеру варианта)
№
| Задания
|
|
| x< =1
| |
Ввести X и Y. Меньшее из этих чисел заменить их полусуммой, а большее - их удвоенным произведением
|
Ввести двузначное число. Определить входит ли в него цифра 3
|
|
| x< 1, 3
x=1, 3
x> 1, 3
|
Ввести два числа. Если оба числа положительны, найти их сумму, в противном случае найти их произведение.
|
Ввести двузначное число.
Определить входит ли в него цифры 7 или 5
|
|
| x> 1, 2
x=1, 2
x< 1, 2
|
Ввести два числа. Вывести первое число, если оно больше второго, и оба, если это не так.
|
Ввести четырехзначное число.
Определить совпадают ли в нем первая и последняя цифры
|
|
|
|
Даны три числа. Найти пары кратных.
(например, 12, 6, 4. 12 кратно 6, 12 кратно 4)
|
Ввести трехзначное число.
Определить совпадают ли в нем первая и вторая цифры
|
|
| x< =1
1< x< =2
x> 2
|
Ввести двузначное число. Определить, является ли сумма его цифр четной или нет
|
Ввести трехзначное число. Определить содержит ли оно две одинаковых цифры
|
| Ввести три числа. Вычислить ||a-b|-c|, не используя стандартные функции. Вывести результат
|
Ввести четыре числа. Вывести два наибольших числа
|
Ввести трехзначное число. Вывести «да», если оно содержит только цифры 1, 2, 0
|
|
| bx< 1
bx=1
bx> 1
| |
Даны числа A, B, C, D. Если A £ B £ C £ D, то каждое число заменить наибольшим из них; если A> B> C> D, то числа не изменять; в противном случае все числа заменить их квадратами
|
Ввести трехзначное число. Определить содержит ли оно цифры 1, 2 или 3
|
|
|
|
Ввести два числа. Найти квадрат меньшего числа и куб большего
|
Ввести трехзначное число. Определить содержит ли оно цифры < 5
|
|
|
|
Дано двузначное число. Определить является ли суммы его цифр двузначным числом
|
Ввести трехзначное число. Определить входит ли в него цифра 7
|
|
| X< 0
X> =0
|
Ввести число от 0 до 1000. Определить количество цифр в числе
|
Ввести четырехзначное число. Определить симметрично ли оно
|
|
| X< =
|
Ввести три числа. Найти сумму двух из них, которые не являются min
|
Ввести двузначное число. Определить совпадают ли в нем первая и вторая цифры
|
|
| X > 10
X< =10
|
Ввести номер дня недели. Вывести одно из сообщений: «рабочий день», «суббота», «воскресенье»
|
Ввести трехзначное число
Вывести «да, если оно состоит из цифр 7, 8, 9
|
|
|
|
Ввести четырехзначное число
Вывести «да», если оно содержит две цифры 5
|
Ввести четыре числа. Вывести максимальное
|
|
| x> 1
x=1
x< 1
|
Дано двузначное число. Определить является ли суммы его цифр двузначным числом
|
Ввести два двузначных числа Вывести «да», если числа состоят из одинаковых цифр и не равны между собой
|
|
|
x> 2
| |
Ввести дату дня (день, месяц, год). Вывести дату следующего дня
|
Ввести трехзначное число Вывести «да», если оно содержит две одинаковые цифры
|
|
| t< 0, 1
t=0, 1
t> 0, 1
| |
Ввести два числа – интервал. Вывести сообщение, попадает ли третье число в заданный двумя первыми числами интервал.
|
Ввести четырехзначное число. Определить совпадают ли в нем первая и вторая цифры
|
|
| X> =12
X< 12
|
Ввести числа A, B, C, D. Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой стороне второго прямоугольника
|
Ввести четырехзначное число. Вывести «да», если все его цифры различны
|
|
| X> =3
x < 3
x=3
|
Ввести два числа. Разделить меньшее на большее
|
Ввести трехзначное число Вывести «да», если оно содержит хотя бы одну четную цифру
|
|
| X=20
X 20
|
Ввести двузначное число.
Определить входит ли в него цифры 2 или 4
|
Ввести три числа.
Вывести то из чисел, которое не является max и min
|
|
| X> -10
X< =-10
|
Даны два числа. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями
|
Ввести трехзначное число
Вывести «да», если оно содержит все одинаковые цифры
|
|
| x 1
|
Даны три числа.
Вывести те из них, которые принадлежат интервалу [1, 3]
|
Ввести четырехзначное число.
Определить совпадают ли в нем вторая и последняя цифры
|
|
|
|
Ввести трехзначное число. Вывести «Да», если оно содержит две одинаковых цифры
|
Ввести два двузначных числа. Вывести цифру (цифры), если они содержится в обоих числах
|
| Ввести координаты центров для двух окружностей и их радиусы. Определить, пересекаются ли окружности
|
Если сумма трех чисел x, y, z меньше единицы, то наименьшее из трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из x и y полусуммой двух оставшихся значений
|
Ввести два двузначных числа. Вывести «да», если числа состоят из одинаковых цифр
|
|
| X 100
X=100
|
Ввести номер года. Определить является ли он високосным (год високосный, если его номер кратен 4, однако из кратных 100 високосными являются лишь кратные 400, например, 1700, 1800 и 1900 – невисокосные годы, 2000 – високосный).
|
Ввести два двузначных числа. Вывести «да», если ни одна цифра первого числа не содержится во втором
|
|
| 10< X< 20
в остальных случаях
|
Даны координаты двух точек.
Определить какая из них находится дальше от начала координат
|
Ввести трехзначное число Вывести «да», если все цифры кратны 3
|
|
| 0< x< 10
в остальных случаях
|
Ввести координаты точки. Определить, в какой координатной четверти она находится.
|
Ввести трехзначное число Вывести «да», если оно содержит две цифры 5
|
|
| x< 0
0< =X< =10
X> 10
|
Ввести три числа. Вывести сообщение «да», если числа введены в порядке возрастания, в противном случае вывести «нет».
|
Ввести трехзначное число. Вывести «да», если все его цифры четны
|
|
| -2< X< 2
в остальных случаях
|
Задан радиус круглой металлической заготовки. Определить, можно вырезать из нее две прямоугольные пластины с размерами AxB, CxD
|
Ввести четырехзначное определить является ли оно перевертышем
|
|
| i< 4
i> 6
|
Ввести стороны двух прямоугольников. Определить, у какого из них больше площадь
|
Ввести двузначное число. Определить входит ли в него цифры 0 или 8
|
|
| -5< X< 12
в остальных случаях
|
Даны числаA, B, C. Удвоить эти числа, если A ³ B ³ C, и заменить их абсолютными значениями, если это не так
|
Ввести трехзначное число. Вывести «да», если вторая цифра больше других
|
|
| x< 1, 4
x=1, 4
x> 1, 4
|
Ввести стороны прямоугольника и радиус круга. Определить, поместится ли круг внутри прямоугольника
|
Ввести трехзначное число. Определить совпадают ли первая и последняя цифра числа
|
| | | | | | | | |