- •1. Парадигмы программирования: императивная, функциональная, логическая. Применение различных парадигм программирования для решения различных задач.
- •Применение различных парадигм программирования для решения различных задач.
- •If логическое условие then оператор_1
- •Оператор выбора
- •Результат выполнения:
- •Оператор перехода
- •Примеры программирования вычислительных процессов с разветвлением
- •Информация во время выполнения программы имеет вид:
- •Вопрос 2
- •Поток управления. Управляющие конструкции языка программирования.
- •Модульное программирование.
- •Модульность программного кода
- •Модульная технология программирования
- •5 Формализация синтаксиса и семантики языков программирования. Способы описания языков программирования
Результат выполнения:
ВВЕДИТЕ НОМЕР ДНЯ НЕДЕЛИ :
5
ПЯТНИЦА-FRIDAY
Оператор перехода
В языке Паскаль принят естественный порядок выполнения программы: все операторы выполняются последовательно один за одним в том порядке, как они записаны. Однако в практике программирования задач возникает необходимость нарушения последовательности выполнения операторов. Например необходимо обойти участок программы, а вернутся к нему позже. Для этого предназначен оператор перехода, который имеет следующую форму записи:
GOTO метка
Метка представляет собой любое целое число без знака в диапазоне 1-9999. Это число записывается перед помечаемым оператором и отделяется от него двоеточием:
GOTO 32;
10: A:=2;
. . .
32: Y:=X/Z;
Здесь после оператора GOTO 32 выполняется оператор с меткой 32.
Следует отметить, что оператор, следующий за оператором перехода, также должен быть помечен. Иначе все операторы в программе между оператором GOTO и оператором с меткой 32 будут лишними, так как доступа к ним нет и они никогда не будут выполнятся .
Оператор перехода является простым оператором, так как в его состав не входят другие операторы.
Метка должна быть объявлена в разделе описания LABEL. Объявление метки имеет вид:
LABEL метка;
Допускается объявлять список меток:
LABEL метка_1, метка_2, …, метка_n;
Для рассмотренного примера объявления меток выглядит следующим образом:
LABEL 10, 32;
В простых программах оператор перехода не вызывает никаких затруднений. В сложных программах скачки при выполнении операторов программы проследить трудно. При этом ясность и понятность программы могут быть нарушены. По этому в программах желательно избегать операторов перехода. В ряде случаев это удается сделать простыми способами. Например отрезок программы, типичный для многих языков программирования,
IF A > B THEN GOTO 1 ;
A := A - B ;
GOTO 2 ;
1 : A := A+ B ;
2 : Y := A ;
Можно заменить такой конструкцией языка Паскаль :
IF A > B THEN A := A + B
ELSE A := A - B ;
Y := A ;
Однако в некоторых случаях оператор безусловного перехода оказывается весьма полезным. Например, пусть необходимо прекращать выполнение программы, если встечаются так называемые ситуации прерывания выражения, содержащие функции логарифма LN или корня квадратного SQRT от отрицательных аргументов, или необходимо выполнить деление на выражение, которое обращается в нуль :
IF Y < = 0 THEN GOTO 100
ELSE A := X * LN (Y);
IF Y < 0 THEN GOTO 100
ELSE B := X + SQRT(Y);
S:= T - COS (PT);
IF S = 0 THEN GOTO 100
ELSE R := 257 * W / S ;
100 : WRITE (‘Выполнение программы прекращается ‘);
В этом примере всякий раз, когда встречается недопустимая ситуация, происходит переход к оператору с меткой 100. На экран дисплея выодится сообщение о прерывании программы и выполнение программы заканчивается.
