В приведенном выше примере при помощи конструкции "
if (<условие>) <метка>" осуществлено, фактически, зацикливание выполнения программы. Действительно, в строке
if ((a=='y') || (a=='Y')) goto once_again;
при утвердительном ответе пользователя ( если a='y' или a='Y'), содержится команда компьютеру перейти к выполнению строки программы, следующей за меткой
"once_again".
Воспользуемся такой возможностью зацикливания программы для расчета значений функции для заданного диапазона аргументов.
Например, пусть требуется вычислить значения функции
Y=X*sin(X) при изменении аргумента Х в пределах от
Х=0 до Х=10 с шагом dХ=0,2. Следующая программа выполняет эти вычисления:
#include <stdio.h> // включить описание стандартных функций ввода-вывода
#include <math.h> // и описание математических функций - для синуса
main()
{
float x,y;
// определяем переменные X,Y типа real (вещественные)
x=0;
// переменной X присваиваем начальное значение 0
next_x:
// Метка. Сюда передается управление оператором goto..
y=x*sin(x);
// переменной Y присвоим значение X*sin(X), т.е. нашей функции
printf("\n x= %.2f y= %.2f ",x,y); // пишем на экран полученные результаты
x=x+0.2;
// увеличиваем значение переменной X на шаг dХ =0,2
if (x<=10) goto next_x; // если Х<=10, то переход на строку под меткой "next_x"
}
то же на Fortran то же на Basic то же на Pascal