Sei sulla pagina 1di 11

Corso di Fondamenti di Informatica

Ingegneria delle Comunicazioni – BCOR


Ingegneria Elettronica – BELR

Introduzione al C
Esercitazione 7

Claudio Ciccotelli
NOTA
Per ottenere il massimo dei punti in ogni
esercizio è necessario che:
1. Il programma/funzione realizzato/a sia
corretto e produca l'output richiesto.
2. Le risorse (file, memoria allocata, ecc.)
vengano gestite correttamente
(apertura/chiusura file,
allocazione/deallocazione memoria, ecc.)

Esercitazione 7 2014/2015 Pagina 2


Esercizio 1
Si definisca una funzione contaMultipli che presa in ingresso una matrice M di
interi (sotto forma di doppio puntatore ad int), il numero di righe r, il numero di
colonne c ed un intero d, restituisca il numero di elementi di M che sono multipli di
d. Scrivere inoltre una funzione main che:
1. legga d e la matrice da un file "matrice1a.dat" con questo formato:

<d> Esempio:
<r> <c> 5
<e(0,0)> … <e(0,c-1)> 34
10 3 5 7
… … …
4 6 15 50
<e(r-1,0)> … <e(r-1,c-1)> 8 25 2 9

2. stampi a video il valore restituito dall'invocazione di


contaMultipli(M,r,c,d).

Esercitazione 7 2014/2015 Pagina 3


Esercizio 1 (variante idoneità)
Si definisca una funzione contaNonMultipli che presa in ingresso una
matrice M di interi, di dimensione 3 x 4, ed un intero d, restituisca il numero di
elementi di M che non sono multipli di d.
Scrivere inoltre una funzione main che:
1. legga d e la matrice da un file "matrice1b.dat" con questo formato:
Esempio:
<d>
5
<e(0,0)> … <e(0,3)> 10 3 5 7
… … … 4 6 15 50
<e(2,0)> … <e(2,3)> 8 25 2 9

2. stampi a video il valore restituito dall'invocazione di


contaNonMultipli(M, d).

Esercitazione 7 2014/2015 Pagina 4


Esercizio 2
Si definisca una funzione trasposta che presa in ingresso una matrice M di
interi (sotto forma di doppio puntatore ad int), il numero di righe r ed il numero
di colonne c, restituisca una nuova matrice che è la trasposta di M.
Scrivere inoltre una funzione main che:
1. legga la matrice da un file "matrice2a.dat" con questo formato:

<r> <c> Esempio:


<e(0,0)> … <e(0,c-1)> 24
… … … 1234
<e(r-1,0)> … <e(r-1,c-1)> 5678

2. stampi a video la matrice restituita da trasposta(M,r,c).

Esercitazione 7 2014/2015 Pagina 5


Esercizio 2 (variante idoneità)
Si definisca una funzione trasposta che presa in ingresso una matrice M di
interi, di dimensioni 2 x 4, scriva in un'altra matrice la trasposta di M.

Scrivere inoltre una funzione main che:


1. legga la matrice da un file "matrice2b.dat" con questo formato:
Esempio:
<e(0,0)> … <e(0,3)> 1234
<e(1,0)> … <e(1,3)> 5678

2. stampi a video la matrice scritta da trasposta.

Esercitazione 7 2014/2015 Pagina 6


Esercizio 3
Si definisca una funzione medieColonne che presa in ingresso una matrice M di
double (sotto forma di doppio puntatore a double), il numero di righe r ed il
numero di colonne c, restituisca (sotto forma di array) le medie aritmetiche dei
valori di ciascuna colonna di M (cioè l'elemento i-esimo dell'array deve essere pari
alla media aritmetica degli elementi della colonna i-esima)
Scrivere inoltre una funzione main che:
1. legga la matrice da un file "matrice3a.dat" con questo formato:

<r> <c> Esempio:


<e(0,0)> … <e(0,c-1)> 34
2434
… … …
1208
<e(r-1,0)> … <e(r-1,c-1)> 9303

2. stampi a video l'array restituito da medieColonne(M,r,c).

Esercitazione 7 2014/2015 Pagina 7


Esercizio 3 - Esempio
Se la matrice M è:
2 4 3 4

1 2 0 8

9 3 0 3

L'array restituito deve essere:


4 3 1 5

Esercitazione 7 2014/2015 Pagina 8


Esercizio 3 (variante idoneità)
Si definisca una funzione medieColonne che presa in ingresso una matrice M di
double, di dimensioni 3 x 4, scriva in un array le medie aritmetiche dei valori di
ciascuna colonna di M (cioè l'elemento i-esimo dell'array deve essere pari alla
media aritmetica degli elementi della colonna i-esima)
Scrivere inoltre una funzione main che:
1. legga la matrice da un file "matrice3b.dat" con questo formato:
Esempio:
<e(0,0)> … <e(0,3)>
2434
… … …
1208
<e(2,0)> … <e(2,3)> 9303

2. stampi a video l'array scritto da medieColonne.

Esercitazione 7 2014/2015 Pagina 9


Esercizio 4
Si definisca una funzione triangolareInferiore che presa in ingresso una
matrice quadrata M di interi (sotto forma di doppio puntatore a int) ed il numero
di righe n, restituisca 1 se la matrice è triangolare inferiore, 0 altrimenti.
Scrivere inoltre una funzione main che:
1. legga la matrice da un file "matrice4a.dat" con questo formato:

<r> <c> Esempio:


<e(0,0)> … <e(0,c-1)> 3
… … … 600
<e(r-1,0)> … <e(r-1,c-1)> 120
934

2. stampi a video il risultato di triangolareInferiore(M,n).

Esercitazione 7 2014/2015 Pagina 10


Esercizio 4 (variante idoneità)
Si definisca una funzione triangolareSuperiore che presa in ingresso una
matrice quadrata M di interi, di dimensioni 3 x 3, restituisca 1 se la matrice è
triangolare superiore, 0 altrimenti.
Scrivere inoltre una funzione main che:
1. legga la matrice da un file "matrice4a.dat" con questo formato:

<r> <c> Esempio:


<e(0,0)> … <e(0,2)> 329
… … … 071
<e(2,0)> … <e(2,2)> 006

2. stampi a video il risultato di triangolareSuperiore(M).

Esercitazione 7 2014/2015 Pagina 11