Подсчет количество итераций в программе - C (СИ)
Формулировка задачи:
есть программа в
буду благодарен за помощь!!!!
С
,нужно дописать кол-во итераций,как это сделать...???#include <stdio.h>
#include <math.h>
double FuncY(double x)
{
return (pow(pow(x,4)+2,1.0/3));
}
double Simpson(double (*Fx)(double), double top, int m)
{
double I, h, x, a, b;
int n;
a = 0;
b = top;
h=(b-a)/(m-1);
x = a;
I = Fx(a) + Fx(b);
n = 0;
while (n < m-2)
{
x = x+h;
if (n%2==0) I=I+4*Fx(x);
else I = I+2*Fx(x);
n++;
}
return I*h/3;
}
int main()
{
double X1, X2, dX, X, Y;
int m;
X1=1.0;
X2=2.0;
dX=0.1;
printf("Accuracy of calculation = ");
scanf("%d", &m);
printf("\n");
for (X=X1; X<X2+dX; X=X+dX)
{
Y = Simpson(FuncY, X, m);
printf("X = %0.1lf\tY = %lf\n", X, Y);
}
fflush(stdin);
getchar();
return 0;
}Решение задачи: «Подсчет количество итераций в программе»
textual
Листинг программы
n = 0;
while (n < m-2)
{
x = x+h;
if (n%2==0) I=I+4*Fx(x);
else I = I+2*Fx(x);
n++;
}
Объяснение кода листинга программы
- Объявляется переменная
nи инициализируется значением 0. - Задается условие для цикла while: n < m-2.
- В каждой итерации цикла значение переменной
nувеличивается на 1. - Значение переменной
xувеличивается на h. - Проверяется условие n % 2 == 0.
- Если условие выполняется, то значение переменной
Iувеличивается на 4 * Fx(x). - Если условие не выполняется, то значение переменной
Iувеличивается на 2 * Fx(x). - Значение переменной
nувеличивается на 1. - Цикл while выполняется до тех пор, пока значение переменной
nменьше m-2. - Значение переменной
mне указано в коде, поэтому предполагается, что это константа. - Значение переменной
hне указано в коде, поэтому предполагается, что это константа. - Значение переменной
Iне указано в коде, поэтому предполагается, что это переменная, которая инициализируется значением 0 перед циклом. - Значение переменной
Fx(x)не указано в коде, поэтому предполагается, что это функция, которая возвращает значение, умноженное на 2 или 4 в зависимости от условия n % 2 == 0.