2005/06 – Fase scolastica – 06

Data la seguente funzione che inizializza i valori di un array bidimensionale matrice:

Const N=5;

Procedure inizializza();
Var
   matrice      : Array [1..N, 1..N] Of Integer;
   riga, colonna: Integer;
Begin
   For riga:=1 To N Do
      For colonna:=1 To N Do
         Begin
            If(riga = colonna) Then
               matrice[riga, colonna]:=1
            Else If(riga+colonna = N+1) Then
               matrice[riga, colonna]:=1
            Else If(riga < colonna) Then
               matrice[riga, colonna]:=0
            Else
               matrice[riga, colonna]:=matrice[colonna, riga]
         End;
    For riga:=1 To N Do
       Begin
          For colonna:=1 To N Do
             Write(matrice[riga, colonna]);
          Writeln;
       End
Eend;

Indicare quale tra le seguenti configurazioni vengono stampate dalla procedura inizializza.

Risposte:

  1. 1 1 1 1 1
    0 1 0 0 0
    0 0 1 0 0
    0 0 0 1 0
    1 1 1 1 1
  2. 1 0 0 0 1
    0 1 0 1 0
    0 0 1 0 0
    0 1 0 1 0
    1 0 0 0 1
  3. 1 0 0 0 0
    0 1 0 0 0
    0 0 1 0 0
    0 1 0 0 0
    1 0 0 0 0
  4. 1 0 0 0 0
    0 1 0 0 0
    0 0 1 0 0
    0 0 0 1 0
    0 0 0 0 1
    .