Esercitazione 03 - Array
Davide Tenedini∗
Informatica - 059050
Per ciascuno dei seguenti problemi, scrivere un programma C che lo risolva. I dati devono
essere acquisiti da tastiera e i risultati devono essere stampati a video.
Esercizio 01 - Recensioni
Un ristorante riceve delle recensioni con voti da 1 a 5 stelle. Scrivere un programma C
che permetta di inserire un numero arbitrario di recensioni. Ad ogni nuovo inserimento, il
programma stampa la media dei voti e il numero di volte che ciascun voto è stato inserito.
Il programma termina quando l’utente inserisce il voto 0.
Esempio: se i voti finora inseriti sono 4, 5, 5, 3, 5, dopo l’inserimento di una recensione con
3 stelle il programma stampa:
Media: 4.17
Recensioni - 1s: 0; 2s: 0; 3s: 2; 4s: 1; 5s: 3;
Soluzione: [Link]
Esercizio 02 - Temperature
Un centro meteorologico misura la temperatura ogni mattina alle 10.00. Alla fine della set-
timana, si vuole calcolare la temperatura media e stabilire quali giorni hanno avuto una
temperatura al di sopra di essa. Scrivere un programma C che permetta di inserire le tem-
perature giorno per giorno. Quando sono state inserite tutte, il programma deve stampare
la media e l’elenco dei giorni sopra la media.
Soluzione: [Link]
Esercizio 03 - Array Bi-Tonico
Un array bi-tonico è un array in cui esiste un indice 0 <= k <= n − 1 per cui il sotto-array
sinistro con indici da 0 a k è monotonico crescente, mentre il sotto-array destro con indici da
k a n − 1 è monotonico decrescente. Scrivere un programma che chieda all’utente di inserire
un vettore di dimensione massima N_MAX, e dire se il vettore è bi-tonico o meno.
Esempio: 1 5 45 100 60 2
N.B. Per l’input del vettore prima chiedere un numero n < N_MAX, ed in seguito chiedere di
inserire n numeri.
Soluzione: [Link]
∗
basato sul materiale di Matteo Papini e Luca Sabbioni
1
Esercizio 04 - Ordinamento
Scrivere un programma C che chieda in input un array di dimensione massima N_MAX e lo
ordinini in maniera crescente.
N.B. Per l’input del vettore prima chiedere un numero n < N_MAX, ed inseguito chiedere di
inserire n numeri.
Soluzione: [Link]
Ordinamento 2
Stessa cosa, ma al posto di ordinare il vettore e poi stamparlo, il vettore originale non può
essere modificato. È permesso usare un altro vettore di supporto che può contenere solamente
0 e 1 come valori.
Soluzione: [Link]
Esercizio Autonomo 05 - Prodotto Vettoriale
Scrivere un programma C che chieda in input due array di dimensione massima N_MAX e
stampi il loro prodotto vettoriale.
N.B. Per l’input dei vettore prima chiedere un numero n < N_MAX, ed inseguito chiedere di
inserire n numeri per il primo vettore ed n numeri per il secondo vettore.
Esercizio: [Link]
Esercizio Autonomo 06 - Pizzeria
Scrivere un programma C che chieda un array di 7 float rappresentanti gli incassi giornalieri
di una pizzeria d’asporto nell’arco di una settimana, e lo modifichi come segue: ogni posizione
deve contenere gli incassi totali fino a quel giorno (incluso).
Esempio: dato {0, 620, 712.50, 599, 1252.50, 2870, 512.50}, la funzione deve trasformarlo in
{0, 620, 1332.50, 1931.50, 3184, 6054, 6566.50}
Esercizio: [Link]