Помогите исправить программу ,не кампилирует.Даю 30 баллов!!!!!!!!!! begin var...

0 голосов
31 просмотров

Помогите исправить программу ,не кампилирует.Даю 30 баллов!!!!!!!!!! begin var f:real->real:=x-> 0.1*(sin(x)/cos(x))(0.1*x+0,0025*x*x); ; var (a,b):=ReadReal2('Введите границы интервала:'); var (fa,fb):=(f(a),f(b)); var eps:=ReadReal('Введите требуемую точность:'); var n:=1; Writeln(' n',12*' ','x',14*' ','y'); while True do begin var x:=(a+b)/2; var y:=f(x); if (Abs(y) Writeln(n:3,x:15:6,y:15:6); if Sign(fa)=Sign(y) then a:=x else b:=x; n+=1 end end.


image

Информатика (15 баллов) | 31 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

begin

var f:real->real:=x-> 0.1*(sin(x)/cos(x))*(0.1*x+0.0025*x*x);

var (a,b):=ReadReal2('Введите границы интервала:');

var (fa,fb):=(f(a),f(b));

var eps:=ReadReal('Введите требуемую точность:');

var n:=1;

var y:real;

Writeln(' n',12*' ','x',14*' ','y');  

repeat

 var x:=(a+b)/2;

 y:=f(x);

 Writeln(n:3,x:15:6,y:15:6);

 if Sign(fa)=Sign(y) then a:=x else b:=x;

 n+=1

until Abs(y)

end.

Пример:

Введите границы интервала: -1 0

Введите требуемую точность: 0.00001

n            x              y

 1      -0.500000       0.002697

 2      -0.250000       0.000634

 3      -0.125000       0.000157

 4      -0.062500       0.000039

 5      -0.031250       0.000010

(194k баллов)