esercizi di matematica con turbo pascal 1.1 su mac

 

program matrix2;
  
  (* verifica proprieta determinanti *)
  (* 1 scambiare tra loro due righe o due colonne*)
  (*   il determinante cambia solo di segno *)
  (* 2 scambiare righe con colonne:trasposizione *)
  (*   il determinante non cambia *)
  (* 3 moltiplicando elementi di riga o colonna per un numero *)
  (*   il determinante risulta moltiplicato per tale numero   *)
  (* 4 aggiungendo agli elementi di una riga o colonna *)
  (*   corrispondenti elementi di altra riga o colonna *)
  (*   eventualmente moltiplicati per uno stesso numero *)
  (*   il determinante non cambia *)
  (* 5 la somma dei prodotti degli elementi di una riga o colonna *)
  (*   per i complementi dei rispettivi elementi di altra riga o colonna*)
  (*   vale zero *)
  
  var n:array[1..3,1..3] of real;
      d:array[1..4] of real;
      s:string;
      scelta,T,a,b:integer;
  
  procedure fine;
  begin
  exit;
  end;
  
  procedure calcola;
  begin
    clearscreen;
  s:='      ';
  writeln('calcolo determinante terzo ordine:regola LAPLACE ');
  writeln('scrivi i valori  della matrice quadrata ordine 3');
  writeln('se valori con decimali usa punto decimale  5.3  ');
  writeln('dopo ogni valore premere enter ');
  writeln('------------------');
  writeln('a1  b1  c1 ');
  writeln('a2  b2  c2 ');
  writeln('a3  b3  c3 ');
  writeln;
  for a:=1 to 3 do
   begin
   writeln('------------------------');
   for b:=1 to 3 do
    begin
    write('riga ',a,' colonna n.',b,' = ');readln(n[a,b]);
    end;
    end;
    writeln;
    d[2]:=n[2,2]*n[3,3]-n[3,2]*n[2,3];
    d[3]:=-(n[2,1]*n[3,3]-n[3,1]*n[2,3]);
    d[4]:=n[2,1]*n[3,2]-n[3,1]*n[2,2];
    d[1]:=n[1,1]*d[2]+n[1,2]*d[3]+n[1,3]*d[4];
  
    writeln('determinante matrice =',d[1]:4:3);
    writeln(d[2]:4:3);
    writeln(d[3]:4:3);
    writeln(d[4]:4:3);
  writeln('-----------------------------------');
  writeln('prendi nota del valore del determinante');
  writeln('per verificare relazione con nuovo determinante');
  writeln('ottenuto apportando variazione alla matrice ');
  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.