esercitazione su matrici , con turbo pascal

Program matri5;
(* inserimento e stampa valori interi per matrice *)
(* righe e colonne assegnabili con input *)

 

Program matri5;
(* inserimento e stampa valori interi per matrice *)
(* righe e colonne assegnabili con input *)

   uses crt;
  const righe=8;colonne=8; 
  var mat:array[1..righe,1..colonne] of integer;
      contarighe,contacolonne,rx,cx:integer;
      
         
procedure pausa; 
begin
writeln('premi ENTER ');readln;
end;
 
procedure cancella;
begin
clrscr;
end;

procedure fine;  
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;

procedure pro1;
begin
write('indica numero righe matrice:massimo 8    :');readln(rx);
write('indica numero colonne matrice :massimo 8 :');readln(cx);
writeln('scrivi valori interi per la matrice:ENTER dopo ogni valore');
writeln;
for contarighe:=1 to rx do
begin
for contacolonne:=1 to cx do
begin
write('riga ',contarighe,' colonna ',contacolonne,' valore = ');
readln(mat[contarighe,contacolonne]);end;
end;
pausa;cancella;
writeln('stampo la matrice inserita ');writeln;
for contarighe:=1 to rx do
begin
for contacolonne:=1 to cx do
begin
write(mat[contarighe,contacolonne]:5);
end;
writeln;
end;
writeln;writeln;
end;


procedure scelta;  
var s,sn:string;opzione:integer;
begin
clrscr;
writeln('seleziona opzione per ');
writeln('1...inserimento elementi per matrice ');
writeln('9...fine ');
writeln('scelta =');readln(opzione);cancella;
case opzione of
1:pro1;
9:fine;
end;
writeln('chiama insegnante per verificare e valutare ');pausa;pausa;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;

begin            (* programma di lancio *)
clrscr;
scelta;
end.