home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / PAS_ENG.ZIP / DETERM.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1985-07-18  |  1.1 KB  |  70 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.  
  12. procedure get_data(var a: ary2;
  13.      var n: integer);
  14.  
  15. { get values for n and arrays x,y }
  16.  
  17. var i,j : integer;
  18.  
  19. begin
  20.   n:=3;
  21.   writeln;
  22.   for i:=1 to n do
  23.     begin
  24.  for j:=1 to n do
  25.    begin
  26.      write(j:3,':');
  27.      readln(a[i,j])
  28.  end { j-loop }
  29.   end;  { i-loop }
  30.   writeln;
  31.   for i:=1 to n do
  32.     begin
  33.  for j:=1 to n do
  34.    write(a[i,j]:7:4,' ');
  35.  writeln
  36.  end;
  37.     writeln
  38.     end; { procedure get_data }
  39.  
  40.  
  41.  
  42.  
  43. function deter(a: ary2): real;
  44.  { calculate the determinant of a 3-by-3matrix }
  45.  
  46. var
  47.  sum : real;
  48.  
  49. begin
  50.   sum:=a[1,1]*(a[2,2]*a[3,3]-a[3,2]*a[2,3])
  51.  -a[1,2]*(a[2,1]*a[3,3]-a[3,1]*a[2,3])
  52.  +a[1,3]*(a[2,1]*a[3,2]-a[3,1]*a[2,2]);
  53.   deter:=sum
  54. end;
  55.  
  56.  
  57.  
  58. begin  { MAIN program }
  59.   clrscr;
  60.   repeat
  61.     get_data(a,n);
  62.     d:=deter(a);
  63.     writeln('The determinant is',d);
  64.     writeln;
  65.     write('More?');
  66.     readln(yesno);
  67.     clrscr
  68.   until (yesno<>'Y')and(yesno<>'y')
  69. end.
  70.