Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program mpd;
- Uses Crt;
- Var Eps,a,b,c,Fa,Fb,Fc: Real;
- Lich:Integer;
- Function F(x:real): Real;
- Begin
- F:=sqr(x)-4
- End;
- BEGIN
- Lich:=0;
- ClrScr;
- Repeat
- Writeln( 'input a'); //вводимо межі інтервалу та точність
- Readln (a);
- writeln('input b');
- readln(b);
- writeln('input eps');
- readln(eps);
- Fa:=f(a);
- Fb:=f(b);
- if fa*fb>0 then //корінь не існує на інтервалі,адже обидва значення функції або більші,або менші нуля
- begin
- writeln('nekorektni mezhi');
- readln;
- exit;
- end;
- If Abs (Fa) <= Eps then //корінь в точці а
- Begin
- c:=a;
- Writeln (' root x=', c:10:3,' N podiliv=', Lich);
- End else
- If Abs (Fb) <=Eps then // корінь в точці b
- Begin
- c:=b;
- Writeln (' root x=', c:10:3,' N podiliv=', Lich);
- End;
- Lich:=Lich + 1; // в інших випадках запускаємо цикл
- Until (b>a) and (Fa*Fb<0) and (Eps >0);
- Lich:=0;
- While (b-a)>Eps do
- Begin
- c:=a+0.5*(b-a);
- Lich:= Lich+1;
- Fc:=f(c);
- If Abs (Fc)<Eps then
- Writeln (' root x=', c:10:3,' N podiliv=', Lich);
- If Fa*Fc>0 then //корінь на інтервалі[c;b]
- Begin
- Fa :=Fc;
- a :=c
- End else // на інтервалі [a;b]
- b:=c
- End;
- c:= a+0.5*(b-a);
- Repeat Until KeyPressed
- END.
Add Comment
Please, Sign In to add comment