esercitazione con turbo pascal v.5.7
program bise4c;
(* calcolo radici equazione con metodo bisezione STAMPA su carta
*)
program bise4c; (* calcolo radici equazione con metodo bisezione STAMPA su carta *) uses crt,printer; 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 gotoxy (25,13); write ('Estremo sinistro: '); read (A); gotoxy (25,14); write ('Estremo destro: ');read(B); until f(A)*f(B) < 0; {si accettano solo valori discordi di f(x)} gotoxy(25,15);write('numero bisezioni:');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(Lst,'Es.: ', Es :12:8); write(Lst,' Ed.:',Ed :12:8); writeln(Lst,' medio:',medio:12:8); write(Lst,'Fs.:',f(Es):12:8); write(Lst,' Fd ',f(Ed):12:8); writeln(Lst,' Fm ',f(medio):12:8); writeln(Lst,'-----------------------------------------'); (* readln;*) (* eliminabile *) write('Es.: ', Es :12:8); write(' Ed.:',Ed :12:8); writeln(' medio:',medio:12:8); write('Fs.:',f(Es):12:8); write(' Fd ',f(Ed):12:8); writeln(' Fm ',f(medio):12:8); writeln('-----------------------------------------'); (* readln;*) (* eliminabile *) end; writeln(Lst,'radice approssimata:',medio:0:8); writeln('radice approssimata:',medio:0:8); end; begin clrscr; legge_dati; clrscr; writeln('A= ',A:5:6,' B= ', B :12:6); calcola (A,B); writeln('premi enter'); readln; end.