daniv1

Untitled

Nov 8th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.32 KB | None | 0 0
  1. Program mpd;
  2. Uses Crt;
  3. Var Eps,a,b,c,Fa,Fb,Fc: Real;
  4. Lich:Integer;
  5. Function F(x:real): Real;
  6. Begin
  7. F:=sqr(x)-4
  8. End;
  9. BEGIN
  10. Lich:=0;
  11. ClrScr;
  12. Repeat
  13. Writeln( 'input a');    //вводимо межі інтервалу та точність
  14. Readln (a);
  15. writeln('input b');
  16. readln(b);
  17. writeln('input eps');
  18. readln(eps);
  19. Fa:=f(a);
  20. Fb:=f(b);
  21. if fa*fb>0 then    //корінь не існує на інтервалі,адже обидва значення функції або більші,або менші нуля
  22. begin
  23. writeln('nekorektni mezhi');
  24. readln;
  25. exit;
  26. end;
  27. If Abs (Fa) <= Eps then  //корінь в точці а
  28. Begin
  29. c:=a;
  30. Writeln (' root x=', c:10:3,'  N podiliv=', Lich);
  31. End         else
  32. If Abs (Fb) <=Eps  then   //  корінь в точці b
  33. Begin
  34. c:=b;
  35. Writeln (' root x=', c:10:3,'  N podiliv=', Lich);
  36. End;
  37. Lich:=Lich + 1;           // в інших випадках запускаємо цикл
  38. Until (b>a) and (Fa*Fb<0) and (Eps >0);
  39. Lich:=0;
  40. While (b-a)>Eps do
  41. Begin
  42. c:=a+0.5*(b-a);
  43. Lich:= Lich+1;
  44. Fc:=f(c);
  45. If Abs (Fc)<Eps then
  46. Writeln (' root x=', c:10:3,'  N podiliv=', Lich);
  47. If Fa*Fc>0 then   //корінь на інтервалі[c;b]
  48. Begin
  49. Fa :=Fc;
  50. a :=c
  51. End      else    // на інтервалі  [a;b]
  52. b:=c
  53. End;
  54. c:= a+0.5*(b-a);
  55. Repeat Until KeyPressed
  56. END.
Add Comment
Please, Sign In to add comment