Si consideri il seguente frammento di codice:
Const DMAX = 5; Type TMAT = Array[1..DMAX,1..DMAX] Of Integer; Var M: TMAT; i: Integer; Procedure esegui(Var M: TMAT; C, R1, R2: Integer); Var i: Integer; Begin For i:=1 To C Do M[R1,i]:=M[R1,i]+M[R2,i]; End; Begin For i:=1 To 2 Do esegui(M, 5, i, 4); End.
La matrice M inizialmente contiene tutti 1 nella prima riga, tutti 2 nella seconda riga e cosi via.
Indicare il contenuto della matrice M al termine del programma.
Risposte:
- 5 5 5 5 5
6 6 6 6 6
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5 - 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 - 5 5 5 5 5
4 4 4 4 4
3 3 3 3 3
2 2 2 2 2
1 1 1 1 1 - 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
Soluzione: a.
Soluzione
Osserviamo inizialmente che il ciclo contenuto nel programma principale è eseguito due sole volte.
Inoltre possiamo facilmente verificare che la procedura esegui somma agli elementi della riga i della matrice gli elementi della quarta riga della matrice stessa.