Урок из серии: «Язык программирования Паскаль»
Один из важнейших операторов Паскаля – условный оператор. Он позволяет изменять порядок выполнения операторов в зависимости от некоторого условия, представляющего собой логическое выражение типа Boolean. Если значение равно True, то выполняется одна группа операторов, если False, то другая группа операторов или не выполняется ничего.
В языке Паскаль имеются два условных оператора: if (оператор ветвления) и case (оператор выбора). Оператор if обеспечивает выбор из двух альтернатив, оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.
На этом уроке рассмотрим оператор If.
Условный оператор If (оператор ветвления)
Полная формы условного оператора называется If-then-else, имеет вид:
If условие Then [оператор1] Else [оператор2];
Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.
If then Begin [операторы1] End Else begin [операторы2] End;
Слова if (если) и Then (то) – зарезервированные.
Замечание. Перед ключевым словом else (иначе) точка с запятой не ставится, она ставиться после всего оператора If.
Условие представляют собой логические выражение. Простые условия записываются в виде равенств или неравенств. В сложных условиях несколько простых условий объединяются с помощью логических операций or, and. В этом случае простые условия заключаются в круглые скобки.
На рисунке показана блок-схема полной формы оператора.
Алгоритм выполнения полного условного оператора:
- Проверяется значение логического выражения, записанного в условии после слова If
- Если условие истинно (значение выражения условие равно True), то выполняется оператор 1, указанный после слова Then
- Если условие ложно, то выполняется оператор 2, записанный после слова Else.
Неполная форма условного оператора называется if-then, имеет вид:
If условие Then [оператор];
Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.
If условие Then Begin [операторы] End;
В неполном ветвлении ветвь Else отсутствует.
На рисунке показана блок схема оператора if-then.
Алгоритм выполнения неполного условного оператора
- Проверяется значение логического выражения, записанного в условии после слова If
- Если условие истинно (значение выражения условие равно True), то выполняется операторы, указанный после слова Then
- Если условие ложно, то ничего делать не надо. Происходит переход к следующему оператору.
Операторы ветвления могут быть вложенными, т.е. один оператор if можно расположить внутри другого. В этом случае он позволяет производить выбор более чем из двух вариантов. При написании исходного кода с вложенными операторами для удобочитаемости кода вложенные операторы выделяются отступами.
If then begin [операторы 1;] end Else if eckjdbt 2 then begin [операторы2;] End . . . else if условиеN [операторыN;] end else begin ; end;
Применение условного оператора if рассмотрим на примерах.
Пример 1. С клавиатуры ввести два различных числа. Найти большее из них и вывести его на экран.
Решение
В этом примере нужно произвести выбор одного из двух вариантов, для этого используется оператор if—then—else.
program primer6_1; var a, b, m:integer; begin writeln('Введите два числа: '); readln(a, b); if a>b then m:=a else m:=b; writeln('Большее из них: ', m); end. |
Пример 2. Даны три отрезка. Можно ли из них построить треугольник?
Решение. Для любого треугольника сумма его двух сторон должна быть больше третьей стороны (неравенство треугольника). Если a, b, c – стороны предполагаемого треугольника, то нужно сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольник из таких отрезков не построить.
Для решения этой задачи используется оператор if—then—else со сложным условием.
program primer6_2; var a, b, c: integer; begin write (' Введите длины отрезков: '); readln (a,b,c); if (a < b+c) and (b < a+c) and (c < a+b) then writeln ('Можно построить треугольник.') else writeln ('Нельзя построить треугольник.'); end. |
Задачи для самостоятельного выполнения
- Найти наибольшее из трех данных чисел.
- Запишите условный оператор, в котором значение переменной вычисляется по формуле: a + b, если a — нечетное и a*b, если a — четное.
- Вывести на экран номер четверти, которой принадлежит точка с координатами (x, y), при условии, что x и y отличны от 0.
- После выполнения операторов
a := 0;
If a<>0 Then; a := 2
значение переменной равно двум. Объясните почему. - Если целое число M делится нацело на целое число N, то вывести на экран частное от деления, в противном случае — сообщение »M на N нацело не делится».
На этом уроке рассказывалось об условном операторе if и его применении при решении задач. Простой оператор ветвления используется для для выбора одного из двух возможных продолжений алгоритма, для выбора более чем из двух продолжений можно использовать вложенный оператор ветвления.
Проверь себя!
Следующий урок: Оператор выбора Case