Такой цикл, в котором происходит вычисление функции при изменении аргумента в заданных пределах, можно организовать и другими (возможно, более логичными и удобными) способами, а именно:
1. При помощи конструкции
do while (<условие>)
<выражение>
end do
Здесь <выражение> выполняется тогда и до тех пор, пока истинно
<условие>. Причем <выражение>, часто называемое
телом цикла, может состоять из нескольких операторов (строк).
Для заданной функции и аргументов запишем:
x=0
!переменной X присваиваем начальное значение 0
do while(x.le.10) !пока X<=10 выполнять следующее:
y=x*sin(x)
!вычисляем Y
write(*,*)" x=",x," y=",y !вывод на экран результатов
x=x+0.2
!увеличиваем значение переменной X на шаг dХ =0,2
enddo
!конец блока строк, которые следует выполнять, пока X<=10
end
!конец программы
2. При помощи явного задания цикла конструкцией типа
do <п.ц.> = <нач. п.ц.>, <кон. п.ц.>, <шаг>
<выражение>
end do
Здесь <п.ц.>- переменная цикла, которая при выполнении цикла изменяется от
<нач. п.ц.>, начального значения переменной цикла до
<кон. п.ц.>, конечного значения переменной цикла с шагом
<шаг>. <Выражение> может состоять из нескольких операторов (строк).
Для заданной функции и аргументов запишем:
do x=0, 10.1, 0.2 !задаем цикл по x в котором x изменяется от 0 до 10,1 с шагом 0,2
y=x*sin(x)
write(*,*)" x=",x," y=",y
end do
!конец цикла
end
!конец программы
Обратите внимание на то, что цикл задан до 10,1 а не до 10 ровно. Это сделано потому, что переменная
x- вещественного (real) типа, а при проведении вычислений с переменными этого типа неизбежны незначительные погрешности, связанные с представлением данных в памяти компьютера. И, хотя эти погрешности ничтожны, их приходится учитывать...
то же на — то же на Basic то же на Pascal
аналог на JavaScript