4.3. Условный оператор
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Условный оператор является средством ветвления программы.
Структура условного оператора имеет следующий вид:
If <условие> Then <оператор 1> Else <оператор 2> IfEnd
где If, Then, Else, IfEnd - встроенные операторы (если, то, иначе, конец):
- <условие> - произвольное выражение логического типа;
- <оператор 1>, <оператор 2> - любые операторы калькулятора.
Блок-схема условного оператора представлена на рисунке. Условный оператор работает следующим образом:
Сначала проверяется условное выражение <условие>. Если условие выполняется, то выполняется <оператор 1>, а <оператор 2> пропускается. Если условие не выполняется, то <оператор 1> пропускается, а выполняется <оператор 2>.
Блок-схема условного оператора If - Then - Else - IfEnd
Блок-схема условного оператора If - Then - IfEnd
Пример 6.
Ввести два различных числа. Определить минимальное и максимальное число.
"Введите 1 число":?→А↵
"Введите 2 число":?→В↵
If А>B↵
Then "Первое число больше второго"
Else "Второе число больше первого"
IfEnd↵
На практике часто используют укороченную схему условного оператора: If <условие> Then <оператор 1>
Пример 7.
"Введите 1 число":?→А↵
"Введите 2 число":?→В↵
If А>B↵
Then "Первое число больше второго"
IfEnd↵
If А<B↵
Then "Второе число больше первого"
IfEnd↵
If А=B↵
Then "Числа равны"
IfEnd
Если в зависимости от выполнения или невыполнения условия необходимо выполнить последовательность операторов, то они перечисляются:
If <условие> Then <оператор 1>↵
Then <оператор 2> ↵
Then <оператор 3> ↵
…
Then <оператор n>↵
IfEnd
"Оператор" в условном операторе может быть любым, в том числе и условным оператором. В таких случаях возникают конструкции с вложенными условиями типа:
If <условие1> Then <оператор 1>↵
Else If <условие2> Then <оператор 2> ↵
Else If <условие3> Then <оператор 3> IfEnd
В таких случаях удобно использовать составные условия.
Пример 8.
Ввести три числа. Определить максимальное число.
"Введите 1 число":?→А↵
"Введите 2 число":?→В↵
"Введите 3 число":?→С↵
If (А>B) And (A>C)↵
Then "Первое число максимум"
IfEnd↵
If (В>А) And (В>C)↵
Then "Второе число максимум"
IfEnd↵
If (С>B) And (С>А)↵
Then "Третье число максимум"
IfEnd↵
If (А=B) And (A=C)↵
Then "Числа равны"
IfEnd
Пример 9.
Ввести целые числа а, b, с. Выяснить, имеет ли уравнение ax2 + bx + с = 0 действительные корни. Если имеет, то найти их и вывести на экран. В противном случае должно быть выведено сообщение, что корней нет.
"Введите число А":?→А↵
"Введите число В":?→В↵
"Введите число С":?→С↵
В2-4A×С→D↵
If D<0↵
Then "Корней нет "↵
Else (-В+ √D)÷2A→Y↵
(-В- √D)÷2A→O↵
"X1=": Y
"X2=": О
IfEnd↵
"END" : Stop
Задачи
23. Ввести три числа. Вывести их в порядке возрастания.
24. Ввести три числа. Вывести их в порядке убывания.
25. Ввести три числа. Удвоить эти числа, если a > b > c, и заменить их абсолютными значениями, если это не так.
26. Ввести два целых числа. Заменить первое число нулем, если оно меньше или равно второму, и оставить числа без изменения, если это не так.
27. Ввести два числа. Меньшее из этих чисел заменить их полусуммой, а большее - их удвоенным произведением.
28. Ввести целые числа a, b, c, d. Если a - наименьшее из них, то каждое число заменить на наибольшее; если a > b > c > d, то все числа заменить их квадратами; иначе числа оставить без изменения. Вывести полученные числа на экран.
29. Ввести числа х и у. Если оба числа отрицательны, то каждое заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях оставить числа без изменения. Вывести числа.
30. Ввести положительные числа а, b, с, х, у. Выяснить, пройдет ли кирпич с ребрами a, b, c в отверстие со сторонами х и у. Просовывать кирпич разрешается только так, чтобы каждое из ребер было параллельно или перпендикулярно каждой из сторон отверстия.
31. Ввести три числа x, y, z. Вывести те из них, которые принадлежат интервалу [0..10].
32. Ввести три числа x, y, z. Если их сумма меньше 10, то наименьшее из этих чисел заменить полусуммой двух других, в противном случае наибольшее из этих чисел заменить модулем полуразности двух других.
33. Ввести положительные числа x, y, z.
а) Выяснить, существует ли треугольник со сторонами, имеющими длины x, y, z.
б) Если треугольник существует, то ответить - является ли он остроугольным, тупоугольным или прямоугольным.
34. Ввести числа х1, х2, х3, у1, у2, у3. Определить, принадлежит ли начало координат треугольнику с вершинами, координаты которых (х1, у1), (х2, у2), (х3, у3).
35. Составить программу определения большей площади из двух фигур: круга и квадрата. Сторона квадрата равна а, а радиус круга r. Значения а и r вводятся с клавиатуры. Вывести на экран значение площади большей фигуры.
36. Ввести четыре вещественных положительных числа a, b, c и d. Определить, можно ли построить четырехугольник со сторонами, имеющими такие длины.