L’agenzia di viaggi “Castrolibero Sun” organizza durante tutto l’anno viaggi nella Death Valley, la celebre area desertica che si trova a circa 300 Km a ovest di Las Vegas in Nevada. Una delle principali informazioni richieste dai clienti prima di prenotare un viaggio è la temperatura media registrata nella valle. Implementare un software che permette di prendere in input N temperature in gradi Celsius, effettui la conversione in Kelvin per ognuna di esse e permetta di calcolare la media e la massima fra esse. Restituire questa informazione all’utente.
Analisi del problema
Il software deve prendere un numero fissato N di temperature in input e dopo aver eseguito per ognuna di esse la conversione in gradi Kelvin, deve permettere di trovare il massimo e la media fra esse. (algoritmo iterativo)
Dati Input: N, temp*
Dati Output: massimaTemperatura, mediaTemperature
Progetto
Iniziamo a progettare l’algoritmo sapendo che è necessario prendere in input N temperature. Per effettuare questa operazione realizziamo una struttura iterativa per il conteggio:

Questa struttura prevede di prendere in input un valore N e fare partire una variabile contatore da 0 facendola avanzare ad ogni passo effettuato. All’interno dell’iterazione è necessario inserire tutte le istruzioni che si ripetono N volte. Dovremo prendere per ogni passo una temperatura espressa in gradi Celsius, convertirla in gradi Kelvin ed infine aggiornare il massimo e il totale per il calcolo finale della media.

Il totale si può ottenere creando una variabile tot e aggiornando il suo contenuto ogni volta che viene inserito in input un nuovo valore. (algoritmo iterativo)

Infine la seguente struttura algoritmica viene usata per il calcolo del massimo:

Se mi trovo al primo passo (cont==0) chiaramente il valore preso in input corrisponde alla massima temperatura inserita finora, altrimenti se la temperatura inserita supera quella massima allora il massimo deve essere aggiornato (max=tempKelvin). Infine è necessario stampare i valori attesi all’utente:

Il progetto completo è il seguente

Implementazione
#include <iostream> using namespace std; int main() { int N, cont, tempCelsius, tempKelvin,tot, max; float media; cout<<"Software per il calcolo delle temperature"<<endl; cout<<"Inserisci il numero di temperature da immettere: "<<endl; cin>>N; cont=0; tot=0; while(cont<N) { cout<<"Dammi la temperatura in gradi Celsius"; cin>>tempCelsius; tempKelvin=tempCelsius + 273.15; tot= tot+tempKelvin; if(cont==0) { max=tempKelvin; }else { if(tempKelvin>max) { max=tempKelvin; } } cont++; } media = tot/N; cout<<"La media fra le temperature inserite è "<<endl; cout<<media; cout<<"La massima temperatura è "<<endl; cout<<max; return 0; }
Torna a iterazioni