Урок 6. Условный оператор if

Урок из серии: «Язык программирования Паскаль»

Один из важнейших операторов Паскаля – условный оператор. Он позволяет изменять порядок выполнения операторов в зависимости от некоторого условия, представляющего собой логическое выражение типа 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-then-else

Алгоритм выполнения полного условного оператора:

  1. Проверяется значение логического выражения, записанного в условии после слова If
  2. Если условие истинно (значение выражения условие равно True), то выполняется оператор 1, указанный после слова Then
  3. Если условие ложно, то выполняется оператор 2, записанный после слова  Else.

Неполная форма условного оператора называется if-then, имеет вид:

If условие 
Then [оператор];

Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.

If условие Then 
Begin
[операторы]
End;

В неполном ветвлении ветвь Else отсутствует.
На рисунке показана блок схема оператора if-then.

Блок-схема оператора if-then

Алгоритм выполнения неполного условного оператора

  1. Проверяется значение логического выражения, записанного в условии после слова If
  2. Если условие истинно (значение выражения условие равно True), то выполняется операторы, указанный после слова Then
  3. Если условие ложно, то ничего делать не надо. Происходит переход к следующему оператору.

Операторы ветвления могут быть вложенными, т.е. один оператор if можно расположить внутри другого. В этом случае он позволяет производить выбор более чем из двух вариантов. При написании исходного кода с вложенными операторами для удобочитаемости  кода вложенные операторы выделяются отступами.

If  then begin
   [операторы 1;]
end
Else if eckjdbt 2 then begin
   [операторы2;]
End
   .
   .
   .
else if условиеN
   [операторыN;]
end
else begin
   ;
 end;

Применение условного оператора if рассмотрим на примерах.

Пример 1. С клавиатуры ввести два различных числа. Найти большее из них и вывести его на экран.

Решение

В этом примере нужно произвести выбор одного из двух вариантов, для этого используется оператор ifthenelse.

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 – стороны предполагаемого треугольника, то нужно сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольник из таких отрезков не построить.

Для решения этой задачи используется оператор ifthenelse со сложным условием.

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.

Задачи для самостоятельного выполнения

  1. Найти наибольшее из трех данных чисел.
  2. Запишите условный оператор, в котором значение переменной вычисляется по формуле: a + b, если a — нечетное и a*b, если a — четное.
  3. Вывести на экран номер четверти, которой принадлежит точка с координатами (x, y), при условии, что x и y отличны от 0.
  4. После выполнения операторов
    a := 0;
    If a<>0 Then; a := 2
    значение переменной равно двум. Объясните почему.
  5. Если целое число M делится нацело на целое число N, то вывести на экран частное от деления, в противном случае — сообщение »M на N нацело не делится».

На этом уроке рассказывалось об условном операторе if и его применении при решении задач. Простой оператор ветвления используется для для выбора одного из двух возможных продолжений алгоритма, для выбора более чем из двух продолжений можно использовать вложенный оператор ветвления.

ТестПроверь себя!

Следующий урок: Оператор выбора Case

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии