home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 December / simtel1292_SIMTEL_1292_Walnut_Creek.iso / msdos / turbopas / pas_sci.arc / DETERM.PAS < prev    next >
Pascal/Delphi Source File  |  1985-07-21  |  1KB  |  69 lines

  1. program determ;        { -> 55 }
  2. { pascal program to calculate the determinant of a 3-by-3matrix }
  3.  
  4. type    ary2    = array[1..3,1..3] of real;
  5.  
  6. var    a    : ary2;
  7.     n    : integer;
  8.     yesno    : char;
  9.     d    : real;
  10.  
  11. procedure get_data(var a: ary2;
  12.            var n: integer);
  13.  
  14. { get values for n and arrays x,y }
  15.  
  16. var    i,j    : integer;
  17.  
  18. begin
  19.   n:=3;
  20.   writeln;
  21.   for i:=1 to n do
  22.     begin
  23.     for j:=1 to n do
  24.       begin
  25.         write(j:3,':');
  26.         readln(a[i,j])
  27.     end    { j-loop }
  28.   end;        { i-loop }
  29.   writeln;
  30.   for i:=1 to n do
  31.     begin
  32.     for j:=1 to n do
  33.       write(a[i,j]:7:4,' ');
  34.     writeln
  35.     end;
  36.     writeln
  37.     end;    { procedure get_data }
  38.  
  39.  
  40.  
  41.  
  42. function deter(a: ary2): real;
  43.     { calculate the determinant of a 3-by-3matrix }
  44.  
  45. var
  46.     sum    : real;
  47.  
  48. begin
  49.   sum:=a[1,1]*(a[2,2]*a[3,3]-a[3,2]*a[2,3])
  50.     -a[1,2]*(a[2,1]*a[3,3]-a[3,1]*a[2,3])
  51.     +a[1,3]*(a[2,1]*a[3,2]-a[3,1]*a[2,2]);
  52.   deter:=sum
  53. end;
  54.  
  55.  
  56.  
  57. begin        { MAIN program }
  58.   ClrScr;
  59.   repeat
  60.     get_data(a,n);
  61.     d:=deter(a);
  62.     writeln('The determinant is',d);
  63.     writeln;
  64.     write('More?');
  65.     readln(yesno);
  66.     ClrScr
  67.   until (yesno<>'Y')and(yesno<>'y')
  68. end.
  69.