Fondamenti di Programmazione a.a. 2009-2010 (canale A-D)
Docente: Chiara Petrioli
Esercitatore: Toni Mancini
Laboratorio di mercoledì 4 novembre 2009
- Scrivere una funzione
void printmatrix(int nr, int nc, float M[nr][nc])
che stampa la matrice M
di nr
righe e nc
colonne. I valori in virgola mobile devono essere stampati ben incolonnati in un campo
di lunghezza 7 e con 2 cifre decimali. Ad esempio, se nr = 3
,
nc = 4
e M = {{1.2, 0.34, 3, 1}, {0.02, 1.2, 45.7, 123},
{23.6, 128.35, 12.9, 2.78}}
allora la funzione stampa la matrice così:
1.20 0.34 3.00 1.00
0.02 1.20 45.70 123.00
23.60 128.35 12.90 2.78
Soluzione: Q.091104-1.printmatrix.c: Q.091104-1.printmatrix.c
- Scrivere una funzione
void summatrix(int n, int A[n][n], int B[n][n])
che
prese in input due matrici nxn
di interi modifica la matrice A
rendendola uguale alla somma delle due matrici (elemento per elemento). Ad esempio,
se n = 3
e
2 4 1 2 1 0
A = 3 5 10 B = 5 5 8
2 7 11 2 3 9
allora la funzione modifica la matrice A
così:
4 5 1
A = 8 10 18
4 10 20
Soluzione: Q.091104-2.summatrix.c: Q.091104-2.summatrix.c
- Scrivere un programma che permetta di collocare, su una scacchiera
nxn
(con n
definito mediante una costante simbolica), n
regine
in modo che non si attacchino a vicenda.
Si ricordi che due regine si attaccano se si trovano sulla stessa riga, colonna, o diagonale.
Suggerimento: si dispongano le n
regine su righe e colonne tutte diverse
(ad es. lungo la diagonale principale) e si iteri il seguente procedimento: fintantoché la configurazione attuale non soddisfa tutti i vincoli,
si scelgano due regine a caso e si scambino i valori delle loro colonne.
Soluzione: non disponibile, questo esercizio sarà concluso nel prossimo laboratorio.
--
ToniMancini - 03 Nov 2009
This topic: Programmazione1/AD
> WebHome >
FP09ADEsercitazioni > FP09ADLab041109
Topic revision: r2 - 2009-11-04 - ToniMancini