5. ПОЛНОЕ И НЕПОЛНОЕ ВЕТВЛЕНИЕ

Защита от дурака —
собирательное название методов защиты
оборудования от некорректных действий пользователя.
По материалам ВИКИПЕДИИ


ЗАДАЧА: Напишите программу нахождения частного двух чисел

Казалось бы задача мало чем отличается от предыдущей. Программа про сложение двух чисел вполне подойдет для решения нашей задачи. В ней надо поменять всего одну строку:
c := a + b
на
c := a / b
и программа будет считать не сумму, а частное двух чисел. Однако…
… этот будет продолжаться до тех пор, пока кто-нибудь случайно или нарочно введет ноль для переменной b.
Наш любимый Паскаль_АВС выдаст результат «бесконечность«, а такие программы как Free_Pascal и Turbo_Pascal выдадут сообщение об ошибке и аварийно завершат выполнение программы.
Чтобы этого не случилось, напишем обработчик исключительных ситуаций или «Защиту от дурака«.
Для этого используем оператор ветвления (или условный оператор кому как больше нравится:
If <УСЛОВИЕ> Then <ДЕЙСТВИЕ_1> Else <ДЕЙСТВИЕ_2>
По русски это будет звучать так:
Если <УСЛОВИЕ> То <ДЕЙСТВИЕ_1> Иначе <ДЕЙСТВИЕ_2>

if_1if_1_1

ЗАМЕТЬТЕ!!! Перед оператором Else точка с запятой не ставится ни в коем случае!!!

После ввода двух чисел А и В идет проверка условия Если В<>0 То считается и выводится на экран частное А на В, Иначе (если В=0) выводится надпись «На ноль делить нельзя!».

Мы познакомились с полным условием (полным ветвлением). Полное оно потому, что условие выполняется по двум веткам: в случае истинности решаем пример и выводим ответ на экран, в случае, когда условие ложно, ничего не считаем, а выводим на экран надпись «На ноль делить нельзя!». Можно любую другую надпись. Например : «Ошибка!!!»

Текст программы:
Program Example_1;
Var a,b:real;
Begin
  Write(‘Введите число А = ‘);Read(a);
  Write(‘Введите число В = ‘);Read(b);
  If b<>0 Then Write (‘А / В = ‘,a/b)
          Else Write (‘На ноль делить нельзя!’);
End.

Неполное ветвление (неполное условие) отличается от полного тем, что действие выполняется только тогда, когда условие истинно, а когда ложно, то программа просто переходит на другую строку. В нашем случае, просто завершит работу и никому ничего не скажет:

if_2ЗАМЕТЬТЕ!!!
1. Перед словом End точку с запятой можно не ставить. (Можно ставить, а можно и не ставить, кому как нравится).
2. В неполном ветвлении условие выполняется только по истинности, (убирается ветка Else).
Конструкции <If … Else> нет!!!

Текст Программы
Program Example_1;
Var a,b:real;
Begin
  Write(‘Введите число А = ‘);Read(a);
  Write(‘Введите число В = ‘);Read(b);
  If b<>0 Then Write (‘А / В = ‘,a/b)
End.