esercitazione con turbo pascal v.5.7

program bise4;
(* calcolo radici equazione con metodo bisezione *)

 

program bise4;
(* calcolo radici equazione con metodo bisezione *)

uses crt;
var A,B,MEDIO,X,Y: real;
    k,n:integer;

function f(X: real): real;
 begin
 (* scrivere la funzione che interessa e racchiudere altre *)
  f := X*X*X*X-7*X*X*X+2*X*X-100*X+610
 (* prova sinistro 4 destro 5 bisezioni 10 *)
 (*    f:=x*x*x-9*x+1 *)
 (* prova sinistro -4 destro -3 bisezioni 20 *)
 end;

procedure legge_dati;

begin
  repeat
    writeln('esempio funzione:x^4-7x^3+2x^2-100x+610');
    writeln('prova valori indicati');
    gotoxy (25,13); write ('Estremo sinistro 4: '); read (A);
    gotoxy (25,14); write ('Estremo destro 5: ');read(B);
  until f(A)*f(B) < 0; {si accettano solo valori discordi di f(x)}
    gotoxy(25,15);write('numero bisezioni 10 :');readln(n);
end;

procedure calcola (Es,Ed: real);
begin
  for k:=1 to n do
  begin
  MEDIO := (Es+Ed)/2;

  if f(Es)*f(MEDIO) <= 0 then

             Ed := MEDIO
  else
             Es := MEDIO;

  write('Estremo sin.: ', Es :5:8);
  writeln('     Estremo des.:',Ed :12:8);
end;
end;

begin
 clrscr;
 legge_dati;
 clrscr;
 writeln('A=              ',A:5:6,'     B=           ', B :12:6);
 calcola (A,B);
 writeln('premi enter');
 readln;
end.