ОПЕРАТОР ПЕРЕХОДА. МЕТКИ

 

Оператор перехода служит для изменения последовательного порядка выполнения операторов.

Оператор перехода имеет следующий вид:

 
 


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 в программе считается плохим стилем программирования.