Оператор перехода служит для изменения последовательного порядка выполнения операторов.
Оператор перехода имеет следующий вид:
GOTO метка;
где метка - это натуральное число от 0 до 9999 или имя.
Метка ставится перед оператором,на который осуществляется переход:
метка: оператор;
Примеры:
123: a:=3; goto konec;
..........
..........
goto 123; konec:end.
Используемые в программах метки обязательно описываются в разделе описания меток LABEL следующим образом:
LABEL метка1,метка2,...,метка _n;
Порядок следования меток значения не имеет.
Задача.. Составить программу по следующему алгоритму:
1) ввести 2 числа
2) если первое число больше второго,то вычислить их среднее арифметическое и закончить работу
3) в противном случае вычислить произведение этих чисел и перейти на п.1
Решение _. program prim;
var a,b,c:real;
label 1;
begin
1: writeln('введи 2 числа');
readln(a,b);
if a>b then begin
c:=(a+b)/2;
writeln('среднее арифметическое=',c);
end
else begin
c:=a*b;
writeln('произведение=',c);
goto 1;
end;
end.
В этой программе фраза "и закончить работу" не реализовывалась никакими операторами,т.к. если верно условие "а>b",то выполняются действия после THEN,а затем работу начинают операторы,стоящие после условного,а это оператор END.
Можно осуществлять переход на конец программы и через оператор GOTO:
program prim;
var a,b,c:real;
label 1,2;
begin
1: writeln('введи 2 числа');
readln(a,b);
if a>b then begin
c:=(a+b)/2;
writeln('среднее арифметическое=',c);
goto 2;
end
else begin
c:=a*b;
writeln('произведение=',c);
goto 1;
end;
2: end.
Вообще, большое количество операторов GOTO в программе считается плохим стилем программирования.