|
Gli array
quad3
e quad4 riportati
di seguito rappresentano un quadrato magico 3x3 ed un quadrato magico 4x4. In un quadrato magico i
totali di riga, di colonna e delle due diagonali hanno sempre lo stesso
valore.
Come esercizio realizzare in MIPS i seguenti punti:
- Stampare il contenuto
della cella 3,2 di quad4.
- Leggere i valori degli
indici i
e j
e stampare quad4[i,j].
- Scrivere la funzione
int somma_riga_i(mat,dim,i)
per calcolare la somma
della riga
i
di un quadrato magico; alla
funzione vengono passati gli argomenti:
mat indirizzo base del
quadrato, dim
dimensione del quadrato e i
indice di riga.
- In analogia
al punto precedente scrivere la funzione
int
somma_collonna_j
(mat,dim,j)
per calcolare la somma della colonna
j
di un quadrato magico.
- Scrivere la funzione
int somma_diagonale_p(mat,dim)
per calcolare la somma della diagonale principale
di un quadrato magico.
- Scrivere la funzione
int somma_diagonale_s(mat,dim)
per calcolare la somma della diagonale secondaria
di un quadrato magico.
- Verificare il corretto funzionamento di
ogni funzione sul quadrato magico
quad3
di dimensione 3X3 e sul quadrato magico
quad4
di dimensione 4X4.
- Facoltativo: (1) calcolare la
trasposta del quadrato magico; (2) verificare che quad3 e quad4 siano
effettivamente dei quadrati magici; (3) verificare se il quadrato magico รจ perfetto:
se gli elementi sono gli interi da 1 a dim2.
.data
quad3:
.word 8, 1, 6
.word 3, 5, 7
.word 4, 9, 2
quad4:
.word 16, 3, 2, 13
.word 5, 10, 11, 8
.word 9, 6, 7, 12
.word 4, 15, 14, 1
Per
sviluppare l'esercizio si suggerisce di utilizzare il file
eseAs2.s fornito
come schema di riferimento per il programma MIPS richiesto nell'esercizio.
:
|