2007/08 – Fase scolastica – 02

Si consideri il seguente programma:

Program main(Output);
Const
   DMAX = 5;
Type
   TMAT = Array[1..DMAX, 1..DMAX] Of Integer;
   TVET = Array[1..DMAX] Of Integer;
Var
   M: TMAT;
   I: Integer;
 
Procedure ES2(Var M: TMAT; R, C: Integer);
Var
   I, K: Integer;
   V: TVET;
Begin  
   For I:=1 To R Do
      V[I]:= M[I,1];
   For I:=1 To C-1 Do
      For K:=1 To R Do
         M[K, I]:=M[K, I+1];
   For I:=1 To R Do
      M[I, C]:=V[I];
End;

Begin
   M[1, 1]:=1; M[1, 2]:=2; M[1, 3]:=3; M[1, 4]:=4; M[1, 5]:=5;
   M[2, 1]:=1; M[2, 2]:=2; M[2, 3]:=3; M[2, 4]:=4; M[2, 5]:=5;
   M[3, 1]:=1; M[3, 2]:=2; M[3, 3]:=3; M[3, 4]:=4; M[3, 5]:=5;
   M[4, 1]:=1; M[4, 2]:=2; M[4, 3]:=3; M[4, 4]:=4; M[4, 5]:=5;
   M[5, 1]:=1; M[5, 2]:=2; M[5, 3]:=3; M[5, 4]:=4; M[5, 5]:=5;
   For I:=1 To 3 Do
      ES2(M, 5, 5);
End.

La matrice M inizialmente contiene tutti 1 nella prima colonna, tutti 2 nella seconda colonna e così via. Indicare il contenuto della matrice M al termine del programma.

Risposte:

  1. 4 5 1 2 3
    4 5 1 2 3
    4 5 1 2 3
    4 5 1 2 3
    4 5 1 2 3
  2. 1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
    1 2 3 4 5
  3. 5 4 3 2 1
    5 4 3 2 1
    5 4 3 2 1
    5 4 3 2 1
    5 4 3 2 1
  4. 1 1 1 1 1
    2 2 2 2 2
    3 3 3 3 3
    4 4 4 4 4
    5 5 5 5 5