6. СЛОЖНОЕ ВЕТВЛЕНИЕ

…Не пора ли, друзья мои, нам замахнуться
на Вильяма, понимаете, нашего Шекспира
(из к/ф «Берегись автомобиля»)

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

ЗАДАЧА: Написать программу вычисления действительных корней квадратного уравнения.
(Коэффициенты уравнения А,В,С — не равны нулю)

Прежде чем писать программу для компьютера, попробуем решить ее математически.

  1. Находим дискриминант по формуле:
  2. Если дискриминант равен нулю, то корень один:
    i3_1
  3. Иначе, если дискриминант больше нуля, то действительных корней два:
    i3_2
    i3_3
  4. Иначе — действительных корней нет!!!

ЗАМЕТЬТЕ!!! Выражение: «Если дискриминант отрицательный, то корней нет» — НЕПРАВИЛЬНО!!!
Корни все равно будут. Только будут они комплЕксные (ударение на Е), а не действительные.

if_3Если после Then идет несколько операторов, которые относятся только у этому оператору, то они заключаются в операторные скобки Begin — End. Это относится не только к Then, если бы к Else относилось несколько операторов, мы бы их тоже заключили бы в операторные скобки Begin — End.
Теперь обратим свои взоры на оператор Writeln. Этот оператор работает также как и оператор Write, с той лишь разницей, что после вывода информации он помещает курсор на новую строку. Если мы заменим Writeln на Write — все три сообщения выведутся в одну строку:

Оператор Write:
i3_5

Оператор Writeln:
i3_4

Во втором случае вывод данных выглядит симпатичнее.
(К оператору Read тоже можно приставить эти две буквы Readln. Эффект будет такой же).