Паскаль. Основы программирования

         

Оператор if then else


Многие представляют ЭВМ как чисто вычислительную машину, что является заблуждением. ЭВМ способна,  подобно  человеку,  принимать решения.

Вот некоторые простые решения, которые принимает человек в зависимости от условия.

Если

пойдет дождь, тогда надо взять зонтик,

                                   иначе, зонтик не брать.

Если в комнате темно, тогда надо включить свет.

Человек, принимая какое-то решение, может сомневаться, взвешивать, прикидывать, машина принимает решения категорически: либо - да, либо - нет и никаких сомнений.

Для реализации принимаемых решений на языке Паскаль могут быть использованы операторы if

(если), then (тогда) и else (иначе).

После оператора if записывается условие, а после операторов then и else - команды, которые необходимо выполнить.

Для более ясного понимания использования этих операторов, рассмотрим следующий пример.

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

Программа



Program

Problem2; { Увеличения меньшего из двух целых чисел вдвое }

    uses WinCrt;

    var

       a, b, c : integer;

    begin

       write('Введите первое целое число '); readln(a);

       write('Введите второе целое число '); readln(b);

       if a < b  then c := 2*a

                     else  c := 2*b;

       writeln('Меньшее число ', c div 2);

       writeln('Оно же увеличенное вдвое ', c)

    end.

 

После пуска программы вводятся два целых числа и их значения присваиваются переменным a и b. Далее, в операторе if проверяется условие (a<b), если оно выполняется, т.е. a меньше b, тогда выполняются команды в операторе then, переменной c присваивается значение удвоенного числа a, иначе выполняются команды в операторе else, переменной c присваивается значение удвоенного меньшего числа - b.

После этого выводится на экран меньшее число и это же число, но увеличенное вдвое.

Заметьте,

в процедуре writeln, кроме вывода информации, выполняется еще и деление переменной c на 2.


В процедуре write (writeln) можно записывать выполнение арифметических операций.

Ещё одно существенное замечание. Вы уже заметили, что перед оператором else

точка с запятой не ставится.

Программа имеет один недостаток. В ней не учитывается то, когда введенные числа будут равны. В этом случае на экран надо выдать сообщение: "Числа равны".

Программа

Program

Problem2a; {Программа удвоения меньшего из двух чисел}

    uses WinCrt;

    var

       a, b, c : integer;

    begin

       write('Введите первое число '); readln(a);

       write('Введите второе число '); readln(b);

        if a = b then writeln('Числа равны')

                     else

                        begin

                            if a < b then c := 2*a

                                         else  c := 2*b;

                           writeln('Меньшее число ', c div 2);

                           writeln('Удвоенное меньшее число ', c)

                       end

    end.

В этой программе два условных оператора, первым проверяется условие равенства чисел и, в случае его выполнения, будет выдано сообщение о равенстве чисел, которое находится в операторе then.

В операторе else

записано несколько команд, поэтому в нём установлены операторные скобки:

begin

   ........

end;

Такие же операторные скобки в необходимых случаях могут быть использованы и в операторе then.

ВЫВОДЫ

В операторах then и else могут быть использованы операторные скобки:

begin ... end;,

где записывается еще одна группа операторов.

Перед оператором else точка с запятой не ставится.

Задание 2

1. Введите первую программу примера 2 и выполните ее. Измените программу так, как это было сделано во втором случае, т. е. с учетом равенства вводимых чисел.

2. Составьте программу определения большего из двух чисел.

3. Составить программу определения модуля числа.


Содержание раздела