esercizi di matematica con turbo pascal 1.1 su mac
program kramer6; (* regola pratica per determinante terzo ordine *) (* soluzione sistema a tre equazioni *) (* variante di kramer3 .. numeri reali o interi *)
var n:array[1..3,1..4] of real; d:array[1..4] of real; x,y,z:real; s:string; scelta,T,a,b:integer;
procedure fine; begin exit; end;
procedure impossibile; begin writeln('sistema impossibile'); end;
procedure indeterminato; begin writeln('sistema indeterminato o impossibile'); writeln('premi enter'); readln; end;
procedure determinato; begin writeln('sistema determinato:soluzioni='); writeln('determinante sistema ds=',d[1]:4:3); writeln('determinante incognita dx=',d[2]:4:3); writeln('determinante incognita dy=',d[3]:4:3); writeln('determinante incognita dz=',d[4]:4:3); writeln('X = ',d[2]/d[1]:4:3); writeln('Y = ',d[3]/d[1]:4:3); writeln('Z = ',d[4]/d[1]:4:3); writeln; writeln('premi enter'); readln; end;
procedure calcola; begin clearscreen; s:=' '; writeln('calcolo determinante terzo ordine:regola di SARRUS '); writeln('soluzione sistema con tre equazioni e tre incognite '); writeln('scrivi i valori dei coefficienti e termini noti'); writeln('se valori con decimali usa punto decimale 5.3 '); writeln('dopo ogni valore premere enter '); writeln('prova con seguenti valori '); writeln('1,2,3,4...2,4,6,8..3,6,9,12 indeterminato '); writeln('2,1,2,1...-3,2,-2,2..12,-1,10,4 impossibile '); writeln('1,2,3,4...7,3,9,8...2,1,6,3 determinato '); writeln('------------------'); writeln('a1 b1 c1 n1'); writeln('a2 b2 c2 n2'); writeln('a3 b3 c3 n3'); writeln; for a:=1 to 3 do begin writeln('------------------------'); for b:=1 to 4 do begin write('equazione ',a,' valore n.',b,' = ');readln(n[a,b]); end; end; writeln; d[1]:=n[1,1]*n[2,2]*n[3,3]+n[1,2]*n[2,3]*n[3,1]+n[1,3]*n[2,1]*n[3,2]- n[3,1]*n[2,2]*n[1,3]-n[3,2]*n[2,3]*n[1,1]-n[3,3]*n[2,1]*n[1,2]; d[2]:=n[1,4]*n[2,2]*n[3,3]+n[1,2]*n[2,3]*n[3,4]+n[1,3]*n[2,4]*n[3,2]- n[3,4]*n[2,2]*n[1,3]-n[3,2]*n[2,3]*n[1,4]-n[3,3]*n[2,4]*n[1,2]; d[3]:=n[1,1]*n[2,4]*n[3,3]+n[1,4]*n[2,3]*n[3,4]+n[1,3]*n[2,4]*n[3,2]- n[3,1]*n[2,4]*n[1,3]-n[3,4]*n[2,4]*n[1,4]-n[3,4]*n[2,1]*n[1,4]; d[4]:=n[1,1]*n[2,2]*n[3,4]+n[1,2]*n[2,4]*n[3,1]+n[1,4]*n[2,1]*n[3,2]- n[3,1]*n[2,2]*n[1,4]-n[3,2]*n[2,4]*n[1,1]-n[3,4]*n[2,1]*n[1,2];
if (d[1]<>0) then T:=1 else if (d[1]=0) and (d[2]=0) and (d[3]=0) and (d[4]=0) then T:=2 else if (d[1]=0) and (d[2]<>0) or (d[3]<>0) or (d[4]<>0) then T:=3 else; case T of 1:determinato; 2:indeterminato; 3:impossibile; end; writeln('-----------------------------------'); writeln('premi 1 per altro calcolo'); writeln('premi 2 per finire'); write('scelta 1 o 2 ? ');readln(scelta); case scelta of 1:calcola; 2:fine; end; end;
begin clearscreen; calcola; end.