Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo delle matrici.
Gli esercizi, a complessità crescente, possono essere risolti utilizzando anche differenti linguaggi di programmazione come C, Python, Pascal, Java, PHP.
Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:
https://www.onlinegdb.com/online_c++_compilerESERCIZI CON MATRICI (DIFFICOLTA EASY)
1) Realizzare un programma che permetta di inserire in tutte le posizioni di un matrice di dimensione 5×5 un numero a scelta introdotto dall’utente. (N.B. In tutte le celle deve essere presente lo stesso numero)
2) Realizzare un programma che permetta di riempire, attraverso numeri scelti dall’utente, una matrice di dimensione 4×4. (N.B. In tutte le celle deve essere presente un numero diverso scelto dall’utente)
2 bis) Realizzare un programma che permetta di riempire, attraverso numeri scelti dall’utente, una matrice di dimensione 4×4 e stamparne in seguito il contenuto.
3) Realizzare un programma che permetta di riempire, attraverso numeri casuali compresi tra 0 e 9, una matrice di dimensione 4×4 e stamparne in seguito il contenuto.
4) Realizzare un programma che permetta di riempire, attraverso numeri casuali compresi tra 0 e 9, una matrice di dimensione 4×4. Determinare in seguito se un numero a scelta introdotto dall’utente è presente in una qualsiasi cella di una matrice 4×4.
4 bis) Realizzare un programma che permetta di determinare quante volte un numero a scelta, introdotto dall’utente, è presente in una qualsiasi cella della matrice 4×4.
Esempio
Inserire un numero: 3
Il numero 3 è presente 2 volte nella matrice
| 3 | 2 | 1 | 6 |
| 4 | 3 | 1 | 5 |
| 6 | 4 | 2 | 6 |
| 4 | 1 | 4 | 7 |
5) Realizzare un programma che permetta di riempire, con tutti zeri tranne nelle celle della diagonale principale (dove deve memorizzare uno), una matrice di dimensione 4×4 e stamparne in seguito il contenuto.
Esempio
| 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 1 |
ESERCIZI CON MATRICI (DIFFICOLTA MEDIUM)
6) Realizzare un programma che permetta di riempire, attraverso numeri scelti dall’utente, una matrice di dimensione 4×4 e ne calcoli la somma di tutti gli elementi presenti.
7) Realizzare un programma che permetta di riempire, attraverso numeri scelti dall’utente, una matrice di dimensione 4×4 e dopo avere determinato la somma di tutti gli elementi presenti per ogni riga, determini la riga con la somma maggiore.
8) Realizzare un programma che permetta di riempire, attraverso numeri scelti dall’utente, una matrice di dimensione 4×4. In seguito determini se tutti gli elementi presenti nella matrice risultino maggiori di n e minori di m (con n ed m forniti dall’utente).
9) Realizzare un programma che permetta di memorizzare in una matrice 10×10 la tavola pitagorica
10) Contare quanti elementi pari e quanti elementi dispari sono presenti in una matrice 3×3 inizializzata con valori casuali compresi nel range 0-9.
11) Determinare il valore massimo presente in una matrice 3×3 inizializzata con valori casuali compresi nel range 0-9.
12) Data una matrice di interi 8×8, determinare se la somma degli elementi contenuti nella parte superiore della matrice (nelle righe dalla 0 alla 3) risulta maggiore della somma degli elementi presenti nella parte inferiore della matrici (nelle righe dalla 4 alla 7).
13) Data una matrice di interi 8×8, determinare se la somma degli elementi contenuti nella parte sinistra della matrice (nelle colonne dalla 0 alla 3) risulta maggiore della somma degli elementi presenti nella parte destra della matrici (nelle colonne dalla 4 alla 7).
13) Scrivere un programma che generi una matrice quadrata di dimensione 8×8 i cui valori siano disposti a scacchiera. Tale matrice deve essere utilizzata per visualizzare la scacchiera degli scacchi in un videogioco.
– Le celle alternate contengono il valore 1 (nero)
– Le restanti celle contengono il valore 0 (bianco)
Esempio:
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
14) Una matrice 6×6 rappresenta il numero di vendite effettuate da sei rappresentanti di un’azienda durante una settimana. Ogni riga indica le vendite effettuate da un rappresentante nei vari giorni della settimana, mentre ogni colonna indica le vendite totali effettuate da tutti i rappresentanti in un determinato giorno. Determinare quale rappresentate ha effettuato più vendite nel corso della settimana e in quale giorno sono state effettuate più vendite.
(Per semplicità, si consideri che non ci siano rappresentanti con lo stesso numero di vendite settimanali o giorni con lo stesso numero di vendite totali).
15) Realizzare un programma che generi N numeri interi casuali compresi tra 1 e 100, dove N è inserito dall’utente. Si utilizzi un ciclo per:
– Visualizzare tutti i numeri generati;
– Calcolare la somma dei numeri pari;
– Contare quanti numeri sono maggiori di 50.
ESERCIZI CON MATRICI (REALIZZAZIONE DI FUNZIONI)
16) Realizzare una funzione che, presi in ingresso una matrice, il numero di righe, il numero di colonne e l’indice di una riga specifica, restituisca la somma degli elementi presenti nella riga i-esima.
17) Realizzare una funzione che prese in ingresso tre matrici (A, B e C) tutte con lo stesso numero di righe e di colonne, calcoli la somma tra le matrici A e B ed assegni i valori determinati alla matrice C.
Viene riportato in seguito un esempio dove due matrici (2 righe e 2 colonne) sono sommate tra loro. Attenzione la somma viene effettuata cella per cella.
18) Realizzare una funzione che, presa in ingresso una matrice restituisca:
– 1 se la somma degli elementi presenti nella righe pari risulta superiore alla somma degli elementi presenti nelle righe dispari.
– 2 se la somma degli elementi presenti nella righe dispari risulta superiore alla somma degli elementi presenti nelle pari dispari.
– 0 se le due somme sono uguali.
19) Un ente meteorologico monitora le temperature medie giornaliere di una vasta area geografica, rappresentata come una griglia rettangolare. La griglia è modellata tramite una matrice T di dimensioni 20 x 10, dove: ogni riga rappresenta una fascia di latitudine ogni colonna rappresenta una fascia di longitudine e l’elemento T[i][j] indica la temperatura media (in gradi Celsius) della zona corrispondente.
Per semplificare l’analisi, la regione viene suddivisa in quattro sotto-regioni:
– Alto Sinistra (AS)
– Alto Destra (AD)
– Basso Sinistra (BS)
– Basso Destra (BD)
La divisione avviene tracciando una linea orizzontale a metà delle righe e una linea verticale a metà delle colonne.
Realizzare una funzione che, presa in ingresso la matrice delle temperature, confronti le temperature medie delle varie zone e restituisca:
– 1 se la zona AS è quella con la temperatura media maggiore.
– 2 se la zona AD è quella con la temperatura media maggiore.
– 3 se la zona BS è quella con la temperatura media maggiore.
– 4 se la zona BD è quella con la temperatura media maggiore.
20) Una azienda che si occupa di astrofotografia vuole realizzare un filtro per le immagini utile per enfatizzare le foto delle costellazioni presenti nel cielo notturno. Nello specifico il software elabora immagini in bianco e nero ad 8 bit. In queste foto, il nero è rappresentato dal valore 0 ed il bianco dal valore 255. Differentemente, tutti gli altri valori da 1 a 254 sono utilizzati per indicare i vari toni di grigio (dal più scuro al più chiaro).
Per enfatizzare la luminosità de le stelle il filtro tende a rendere più scuro (spostare verso lo zero) il colore del cielo.
– Realizzare una funzione che presa in ingresso una matrice di dimensione 8×8 (rappresentante l’immagine), imposti a zero tutti i valori della matrice inferiori a 200.
– Realizzare una funzione che presi in ingresso una matrice di dimensione 8×8 (rappresentante l’immagine) ed un valore di soglia, imposti a zero tutti i valori della matrice inferiori al valore di soglia presente nella funzione.
ANALISI DI CODICE:
1) Esercizi di analisi di codice
2) Esercizi di analisi di codice
