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

         

в составление программы. Посудите сами,


1. Оператор goto
вносит фактическое безумие в составление программы. Посудите сами, какой человек может идти, идти, а затем без всякой причины повернуться и пойти обратно! У нормального человека всегда должна быть причина, условие
такого поступка.
Оператор goto
может заставить даже без всякой причины, условия нарушить естественный ход выполнения программы и перевести работу на помеченную строку.
Итак, оператор перехода изменяет последовательность выполнения операторов - они выполняются не в том порядке, как написаны в тексте программы. Операторы перехода нарушают связь между структурой выполнения (динамической) и текстовой (статистической) структурой программы.
Из-за этого программа становится менее понятной и труднее определяется ее правильность. Часто это становится гордиевым узлом, о котором программисты могут сказать: "Но все-таки программа работает". Почему и как работает программа, однако, остается секретом из-за оператора goto.
2. Частое использование операторов перехода указывает, что программист еще не научился программировать "структурно", т. е. использовать последовательные, разветвляющиеся и циклические структуры управления.
Оператор перехода рекомендуется использовать только в исключительных случаях. Такой случай может быть, когда цикл прерывается при удовлетворении определенного условия. Именно такой случай есть в нашей программе.
3. Переход внутрь сложного оператора не определен. Ошибок такого рода транслятор может и не обнаружить.
1) if
p then goto 3;
.....................
if q then 3: s;
2) while
i<= 10 do
  begin
      s1;
 3:  s2;
 end;
 .............
 goto 3;
4. Метка в Турбо Паскале - это произвольный идентификатор (может быть обозначен и буквами), позволяющий именовать некоторый оператор программы и таким образом ссылаться на него.
В целях совместимости со стандартным языком Паскаль, в Турбо Паскале допускается в качестве меток использование целых чисел без знака.
Само собой возникает вопрос, можно ли программу примера 4 составить без оператора перехода goto?
Оказывается это возможно, о чем вы узнаете в следующих занятиях.

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