4 réponses
jerome_64
Messages postés
14
Date d'inscription
dimanche 28 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008
1
29 sept. 2008 à 00:33
29 sept. 2008 à 00:33
Comme tu n'utilises pas de tableau, tu dois faire les tests dans la boucle de saisie des valeurs de températures,
donc dans ton do...while:
//MESSAGE DE BIENVENUE:
cout<<" BIENVENU A METEO -"<<endl;
cout<<endl;
cout<<"Nous allons emettre des statistiques "<<endl;
cout<<"sur diverses periodes de temps"<<endl;
//FIN ETAPE 1 || DEBUT ETAPE 2 ================================================
do {
cout<<"Entrez la temperature du jour :";
cin>>n;
count++;
if (n>=20)countc++;
else if (n==0)countg++;
else if (n<-15)countf++;
cout<<endl;
}
while(n!=-99);
//ETAPE 3:
cout<<"STATISTIQUES - periode de "<<(count-1)<<" jours: "<<endl<<endl;
cout<<" On a atteint les 20.0 degrés pendant "<<countc<<" jour(s). "<<endl;
cout<<" Il a gele pendant "<<countg<<" jour(s). "<<endl;
cout<<countf<<" jour(s) ont ete tres froide. "<<endl;
donc dans ton do...while:
//MESSAGE DE BIENVENUE:
cout<<" BIENVENU A METEO -"<<endl;
cout<<endl;
cout<<"Nous allons emettre des statistiques "<<endl;
cout<<"sur diverses periodes de temps"<<endl;
//FIN ETAPE 1 || DEBUT ETAPE 2 ================================================
do {
cout<<"Entrez la temperature du jour :";
cin>>n;
count++;
if (n>=20)countc++;
else if (n==0)countg++;
else if (n<-15)countf++;
cout<<endl;
}
while(n!=-99);
//ETAPE 3:
cout<<"STATISTIQUES - periode de "<<(count-1)<<" jours: "<<endl<<endl;
cout<<" On a atteint les 20.0 degrés pendant "<<countc<<" jour(s). "<<endl;
cout<<" Il a gele pendant "<<countg<<" jour(s). "<<endl;
cout<<countf<<" jour(s) ont ete tres froide. "<<endl;
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
130
29 sept. 2008 à 01:59
29 sept. 2008 à 01:59
Bonsoir,
J'ai fait quelques tests, il serait bien que tu en fasses toi aussi, j'ai pù oublier des cas de figure.
J'ai fait quelques tests, il serait bien que tu en fasses toi aussi, j'ai pù oublier des cas de figure.
#include <iostream>
using namespace std;
// test61.cpp
int main()
{
int count = 0;
int countc = 0;
int countf = 0;
int countg = 0;
int rep_stop = 0;
signed int plus_chaud = -1;
signed int plus_froid = 1;
signed int n = 0;
signed int jours [365];
float cum_temp = 0;
//ETAPE 1 ==================================================================
//INITIALISATION ET MESSAGE DE BIENVENUE:
do {
system ("cls");
count = 0;
countc = 0;
countf = 0;
countg = 0;
rep_stop = 0;
n = 0;
cum_temp = 0;
plus_chaud = -1;
plus_froid = 1;
for (int I = 0; I < 365; I++) {jours [I] = 0;}
cout << "\n\n BIENVENU A METEO -"<<endl;
cout << "Nous allons emettre des statistiques "<<endl;
cout << "sur diverses periodes de temps"<<endl;
//FIN ETAPE 1 || DEBUT ETAPE 2 ================================================
do {
cout << "\n Entrez la temperature du "<<count + 1<<"em. jour :";
cin >> n;
if ( n > 90 ) { cout << " \n Valeur eronee : "<<n<<" non prise n compte.";}
else {
jours [count] = n;
count++;
}
} while ( n != -99 );
// Pour TESTS :
//for (int i = 0; jours [i] != -99; i++ ) {cout <<"\n jour [i] = "
//<<jours [i]<<" i = "<<i;}
//ETAPE 3:
cout << "\n\n STATISTIQUES - periode de "<<(count-1)
<<" jours: "<<endl;
for ( int i = 0; jours [i] != -99; i++ )
{
cum_temp = cum_temp + jours [i];
if ( jours [i] > plus_chaud) { plus_chaud = jours [i];}
if ( jours [i] < plus_froid) { plus_froid = jours [i];}
if ( jours [i] >= 20 ) { countc++; }
else
if ( jours [i] <= 0 ) { countg++; }
if ( jours [i] < -15 ) { countf++; }
}
cout << "\n On a atteint ou dépassé les 20.0 degrés pendant "
<<countc<<" jour(s). "<<endl;
cout << "\n Il a gele pendant "<<countg<<" jour(s). "<<endl;
cout << "\n "<<countf<<" jour(s) ont ete tres froide. "<<endl;
if ( jours [0] != -99 ) {
cout << "\n La moyenne des temperatures est : "
<<cum_temp / float ((count - 1))<<endl;
cout << "\n La temperature la plus chaude est : "<<plus_chaud;
cout << "\n La temperature la plus froide est : "<<plus_froid; }
do
{
cout << "\n\n VOULEZ-VOUS POURSUIVRE LE TRAITEMENT STATISTIQUE "
"0=Oui 1=Non ?"<<endl;
cin >> rep_stop ;
} while ( rep_stop != 0 && rep_stop != 1 );
} while ( rep_stop == 0);
//ETAPE 5 ==================================================================
cout<<"\n\n LA COMPAGNIE METEO - VOUS SOUHAITE BONNE JOURNEE"<<endl;
//FIN ETAPE 5 ==================================================================
}
//FIN
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
130
29 sept. 2008 à 03:32
29 sept. 2008 à 03:32
RECTIFICATIF :
signed int plus_chaud = -11111; signed int plus_froid = 11111; double n = 0;au lieu de :
signed int plus_chaud = -1; signed int plus_froid = 1; signed int n = 0;et
plus_chaud = -11111;
plus_froid = 11111;au lieu de : plus_chaud = -1;
plus_froid = 1;Ceci afn de palier à une absence de saisie d'une température positive ou négative pour une même période. Ce qui aurait eu pour efffet d'afficher à tord la valeur d'initialisation -1 dans le cas d'absence de tempérture positive (plus_chaud) et 1 dans le cas d'absence de tempérture négative (plus_froid) pour une même période.
if ( n > 90 || n < -99) { cout << " \n Valeur eronee : "
<<n<<" non prise n compte.";}a lieu de :
if ( n > 90 ) { cout << " \n Valeur eronee : "<<n<<" non prise n compte.";}Afin d'intégrer le contrôle de saisie de températures négatives incohérentes (< -99).