Переписать код из цикла while в цикл for - C (СИ)
Формулировка задачи:
Помогите, объясните, как из цикла while() переделать в for(;;, конкретно на этом примере готовой задачи..
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #define C 1
- int main()
- {
- const float B=3.4;
- int D;
- float S,F,A,AN,AK,HA;
- printf("Vvedite nachalnoe znachenie, konecnoe i shag A :");
- scanf("%f%f%f",&AN, &AK, &HA);
- printf("Vvedite chislo D:");
- scanf("%d",&D);
- A=AN;
- while(A<=AK+0.01*HA)
- {
- printf("\n A=%8.2f", A);
- S=B-C*A+D;
- printf("\n Rezultat: %7.3f",S);
- if((A>=-1)&&(A<=1))
- {
- F=S*acos(A);
- printf("\n F=%12e",F);
- }
- else
- printf("\n F - ne sushestvuet");
- A+=HA;
- }
- return 0;
- }
Решение задачи: «Переписать код из цикла while в цикл for»
textual
Листинг программы
- for (A = AN;A <= AK + 0.01*HA;A+=HA)
- {
- printf("\n A=%8.2f", A);
- S = B - C*A + D;
- printf("\n Rezultat: %7.3f", S);
- if ((A >= -1) && (A <= 1))
- {
- F = S*acos(A);
- printf("\n F=%12e", F);
- }
- else
- printf("\n F - ne sushestvuet");
- }
Объяснение кода листинга программы
- Цикл
for
начинается с инициализации переменнойA
значениемAN
и условием, чтоA
меньше или равноAK + 0.01*HA
. ЗначениеHA
используется для увеличенияA
на каждой итерации цикла. - На каждой итерации цикла значение
A
выводится на экран с помощью функцииprintf
. - Затем вычисляется значение переменной
S
, используя формулуB - C*A + D
. - Значение
S
также выводится на экран с помощью функцииprintf
. - Затем проверяется, находится ли значение
A
в диапазоне от -1 до 1. Если это так, то вычисляется значение переменнойF
с помощью формулыS*acos(A)
. - Значение
F
выводится на экран с помощью функцииprintf
. - Если значение
A
не находится в диапазоне от -1 до 1, то выводится сообщениеF - ne sushestvuet
с помощью функцииprintf
. - Цикл продолжается до тех пор, пока значение
A
не превыситAK + 0.01*HA
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д