esercitazioni con turbo pascal
writeln('1...f1:=x^3-9x+1');
writeln('2...f2:=x^3-27x+7');
writeln('3...f3:=x^5-4x^4+3x^2+2');
writeln('4...f4:=2x-3cos(x)+1');
writeln('5.. f5:=3ln(x)-3x^2+6x-1');
writeln('----------------------------------');
write('indica funzione da provare 1,2,3,4,5.');readln(tipo)
program bis1; uses crt; var a,b,medio,x,y:real; k,n,tipo:integer; function f1(x:real):real; begin f1:=x*x*x-9*x+1; end; function f2(x:real):real; begin f2:=x*x*x-27*x+7; end; function f3(x:real):real; begin f3:=x*x*x*x*x-4*x*x*x*x+3*x*x+2; end; function f4(x:real):real; begin f4:=2*x-3*cos(x)+1; end; function f5(x:real):real; begin f5:=3*ln(x)-3*x*x+6*x-1; end; procedure calcola1 (es,ed:real); begin clrscr; for k:=1 to n do begin medio:=(es+ed)/2; if f1(es)*f1(medio)<=0 then ed:=medio else es:=medio; end; writeln('radice approssimata:',medio:0:8); READLN; end; procedure calcola2 (es,ed:real); begin clrscr; for k:=1 to n do begin medio:=(es+ed)/2; if f2(es)*f2(medio)<=0 then ed:=medio else es:=medio; end; writeln('radice approssimata:',medio:0:8); READLN; end; procedure calcola3 (es,ed:real); begin clrscr; for k:=1 to n do begin medio:=(es+ed)/2; if f3(es)*f3(medio)<=0 then ed:=medio else es:=medio; end; writeln('radice approssimata:',medio:0:8); READLN; end; procedure calcola4 (es,ed:real); begin clrscr; for k:=1 to n do begin medio:=(es+ed)/2; if f4(es)*f4(medio)<=0 then ed:=medio else es:=medio; end; writeln('radice approssimata:',medio:0:8); READLN; end; procedure calcola5 (es,ed:real); begin clrscr; for k:=1 to n do begin medio:=(es+ed)/2; if f5(es)*f5(medio)<=0 then ed:=medio else es:=medio; end; writeln('radice approssimata:',medio:0:8); READLN; end; procedure leggi_dati1; begin repeat gotoxy(25,13);write('estremo sinistro...prova -4..0..2 =');read(a); gotoxy(25,14);write('estremo destro prova -3..1..3 =');read(b); until f1(a)*f1(b)<0 ; gotoxy(25,15);write('numero bisezioni..prova 20 =');read(n); calcola1(a,b); end; procedure leggi_dati2; begin repeat gotoxy(25,13);write('estremo sinistro...prova 0..-6..5 =');read(a); gotoxy(25,14);write('estremo destro prova 1..-5..6 =');read(b); until f2(a)*f2(b)<0 ; gotoxy(25,15);write('numero bisezioni..prova 20 =');read(n); calcola2(a,b); end; procedure leggi_dati3; begin repeat gotoxy(25,13);write('estremo sinistro...prova 1..3..-2 =');read(a); gotoxy(25,14);write('estremo destro prova 2..4..0 =');read(b); until f3(a)*f3(b)<0 ; gotoxy(25,15);write('numero bisezioni..prova 20 =');read(n); calcola3(a,b); end; procedure leggi_dati4; begin repeat gotoxy(25,13);write('estremo sinistro...prova 0 =');read(a); gotoxy(25,14);write('estremo destro prova 1 =');read(b); until f4(a)*f4(b)<0 ; gotoxy(25,15);write('numero bisezioni..prova 20 =');read(n); calcola4(a,b); end; procedure leggi_dati5; begin repeat gotoxy(25,13);write('estremo sinistro...prova 2.. =');read(a); gotoxy(25,14);write('estremo destro prova 3 =');read(b); until f5(a)*f5(b)<0 ; gotoxy(25,15);write('numero bisezioni..prova 10 =');read(n); calcola5(a,b); end; procedure scelta; var ancora:integer; begin clrscr; writeln('funzioni memorizzate da provare '); writeln('1...f1:=x^3-9x+1'); writeln('2...f2:=x^3-27x+7'); writeln('3...f3:=x^5-4x^4+3x^2+2'); writeln('4...f4:=2x-3cos(x)+1'); writeln('5.. f5:=3ln(x)-3x^2+6x-1'); writeln('----------------------------------'); write('indica funzione da provare 1,2,3,4,5.');readln(tipo); case tipo of 1:leggi_dati1; 2:leggi_dati2; 3:leggi_dati3; 4:leggi_dati4; 5:leggi_dati5; end; WRITELN('-------------------------------'); write('altra prova:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora=1 then scelta; end; begin clrscr; scelta; writeln('premi enter'); readln; end.