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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *