program determ; { -> 55 } { pascal program to calculate the determinant of a 3-by-3matrix } type ary2 = array[1..3,1..3] of real; var a : ary2; n : integer; yesno : char; d : real; external procedure cls; procedure get_data(var a: ary2; var n: integer); { get values for n and arrays x,y } var i,j : integer; begin n:=3; writeln; for i:=1 to n do begin for j:=1 to n do begin write(j:3,':'); readln(a[i,j]) end { j-loop } end; { i-loop } writeln; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:7:4,' '); writeln end; writeln end; { procedure get_data } function deter(a: ary2): real; { calculate the determinant of a 3-by-3matrix } var sum : real; begin sum:=a[1,1]*(a[2,2]*a[3,3]-a[3,2]*a[2,3]) -a[1,2]*(a[2,1]*a[3,3]-a[3,1]*a[2,3]) +a[1,3]*(a[2,1]*a[3,2]-a[3,1]*a[2,2]); deter:=sum end; begin { MAIN program } cls; repeat get_data(a,n); d:=deter(a); writeln('The determinant is',d); writeln; write('More?'); readln(yesno); cls until (yesno<>'Y')and(yesno<>'y') end.