В приведенном выше примере при помощи конструкции "
if <условие> then goto <метка>" осуществлено, фактически, зацикливание выполнения программы. Действительно, в строке
if (a='y') or (a='Y') then goto once_again;
при утвердительном ответе пользователя ( если
a='y' или a='Y'), содержится команда компьютеру перейти к выполнению строки программы, стедующей за меткой
"once_again".
Воспользуемся такой возможностью зацикливания программы для расчета значений функции для заданного диапазона аргументов.
Например, пусть требуется вычислить значения функции
Y=X*sin(X) при изменении аргумента Х в пределах от Х=0 до Х=10 с шагом dХ=0,2. Следующая программа выполняет эти вычисления:
var
{в разделе var определяются переменные:}
x, y: real;
{ X,Y типа real (вещественные)}
label next_x; {в разделе label определяем метку "next_x" }
begin
x:=0;
{переменной X присваиваем начальное значение 0}
next_x:
{Метка. Сюда передается управление оператором
goto..}
y:=x*sin(x); {переменной Y присвоим значение X*sin(X), т.е. нашей функции}
Writeln(' x=',x:1:1,' y=',y:1:3); {пишем на экран полученные результаты}
x:=x+0.2;
{увеличиваем значение переменной X на шаг dХ =0,2}
if x<=10 then goto next_x; {если Х<=10, то переход на строку под меткой "next_x"}
end.
то же на С то же на Basic то же на Fortran