ПРОЦЕДУРЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ.
В Паскале есть несколько стандартных процедур, изменяющих последовательность выполнения операторов:
q Break – завершает выполнение цикла, внутри которого записана;
q Continue – выполняет переход к следующей итерации цикла;
q Exit – выполняет выход из программы или подпрограммы, внутри которой записана;
q Halt – немедленно завершает выполнение программы.
Кроме того, для передачи управления используется оператор перехода goto.
Этот оператор имеет вид:
GOTO N;
где N - целое число без знака, определяемое в разделе LABEL как метка оператора. Это число записывается перед помеченным оператором и отделяется от него двоеточием. Оператор безусловного перехода производит передачу управления к оператору, помеченному указанной меткой. При программировании на Паскале необходимость в применении оператора перехода возникает в очень ограниченном количестве ситуаций, в большинстве же случаев используются операторы циклов вместе с процедурами передачи управления.
|
|
Использование оператора безусловного перехода оправданно, как правило, в двух случаях:
Ø принудительный выход вниз по тексту программы из нескольких вложенных циклов или операторов выбора;
Ø переход из нескольких мест программы в одно (например, если перед выходом из программы необходимо всегда выполнять какие-либо действия).
Во всех остальных случаях следует привести алгоритм к структурному виду, то есть преобразовать его так, чтобы он мог быть записан с помощью базовых конструкций.
При записи операторов необходимо соблюдать следующие правила пунктуации:
1. Точка с запятой не ставится в разделах описаний после зарезервированных слов unit, uses, label, type, const, var и ставится после завершения каждого описания.
2. Точка с запятой не ставится после begin и перед end, так как эти слова являются операторными скобками, а не операторами.
3. Точка с запятой является разграничителем операторов, ее отсутствие между операторами вызывает ошибку компиляции.
4. В операторах цикла точка с запятой не ставится после while, repeat, do и перед unit.
5. В условных операторах точка с запятой не ставится после then и перед else.
Часто встречающимися ошибками при программировании циклов являются использование в теле цикла переменных, которым не были присвоены начальные значения, а также неверная запись условия продолжения цикла. Нужно помнить и о том, что в операторе while истинным должно являться условие повторения вычислений, а в операторе repeat – условие их окончания.
Чтобы избежать ошибок, рекомендуется:
- не забывать о том, что если в теле циклов while и for требуется выполнить более одного оператора, нужно заключать их в блоке;
- убедиться, что всем переменным, встречающимся в правой части операторов присваивания в теле цикла, до этого присвоены значения, а также проверить возможно ли выполнение других операторов;
- проверить, изменяется ли в теле цикла хотя бы одна переменная, входящая в условие продолжения цикла;
- предусматривать аварийный выход из итерационного цикла по достижению некоторого предельно допустимого количества итераций.
|
|