Перевести код решения уравнения с Pascal - C (СИ)
Формулировка задачи:
uses crt;
function F(x:real):real;
var as:real;
begin
F:=x*x*x*x-18*x*x+6
end;
var a,b,c,x,e:real;
begin
clrscr;
a:=0;
b:=1;
e:=0.001;
writeln('Решение уравнения x^4-18x^2+6=0');
writeln('на интервале [0;1] с погрешностью 0.001');
repeat
c:=(a+b)/2;
if F(a)*F(c)<=0 then b:=c
else a:=c;
until abs(b-a)<e;
x:=(a+b)/2;
writeln('x=',x:0:2);
readln
end.Решение задачи: «Перевести код решения уравнения с Pascal»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
float F(float x)
{
return (x * x * x * x - 18 * x * x + 6);
}
int main(void)
{
float a, b, c, x, e;
a = 0.0f;
b = 1.0f;
e = 0.001f;
printf("Решение уравнения x^4-18x^2+6=0\n");
printf("на интервале [0;1] с погрешностью 0.001\n");
do
{
c = (a + b) / 2.0f;
if ((F(a) * F(c)) <= 0.0f)
{
b = c;
}
else
{
a = c;
}
}
while (fabs(b - a) >= e);
x = (a + b) / 2.0f;
printf("x=%.2f\n", x);
getchar();
return 0;
}