[C++] prgrammation

Résolu
massi92 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
Thiby Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a vous tous je vien débuter en Cpp et voila mon premier programme je n'arive pas a le compiler aidez moi merci


//
// Conversion de température de degrés Celsius
// en degrés Fahrenheit :
// Fahrenteit = Celsius * (212 - 32)/100 + 32
//
#include <cstdio>
#include <cstdlib>
#include <isotream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{

// saisie de la température en Celsius
int celsius;
cout << "Entrez la température en Celsius : ";
cin >>> celsius;.

// calcul du facteur de conversion de Celsius
// en Fahrenheit
int factor;
factor = 212 - 32;

// applique le facteur de conversion pour le passage
// de degrés Celsius en degrés Fahrenheit
int fahrenheit;
fahrenheit = factor * celsius/100 + 32;

// affiche les résultats (suivis d'un saut de ligne)
cout << "valeur en degrés Fahrenheit : ";
cout << fahrenheit << end1;

// avant de terminer le programme, attend le singal de
// l'utilisateur pour lui permettre de voir le résultat
system("PAUSE");
return 0;
}

10 réponses

mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
Version corrigée
// Conversion de température de degrés Celsius
// en degrés Fahrenheit :
// Fahrenteit = Celsius * (212 - 32)/100 + 32
//

//#include <cstdio>   // inutile
//#include <cstdlib>  // inutile
//#include <isotream> // faux iostream = "input/output stream"
#include <iostream>

// Ok dans un cpp mais jamais dans un hpp. Je le commente parce
// que c'est pas forcément une bonne habitude
// using namespace std;

// Tu n'utilises pas d'arguments pour lancer ton programme, donc on peut les dégager
//int main(int nNumberofArgs, char* pszArgs[])
int main()
{

    // saisie de la température en Celsius
    int celsius;
    std::cout << "Entrez la température en Celsius : ";
//  cin >>> celsius;. // operateur >> et pas >>>, pas de ., rajouter le std::
    std::cin >> celsius;

    // calcul du facteur de conversion de Celsius
    // en Fahrenheit
//  int factor;
//  factor = 212 - 32;
    const int factor = 180;

    // applique le facteur de conversion pour le passage
    // de degrés Celsius en degrés Fahrenheit
    int fahrenheit = factor * celsius/100 + 32;

    // affiche les résultats (suivis d'un saut de ligne)
    std::cout << "valeur en degrés Fahrenheit : ";
    //cout << fahrenheit << end1;
    std::cout << fahrenheit << std::endl; // avec un L au bout comme end of line

    // avant de terminer le programme, attend le singal de
    // l'utilisateur pour lui permettre de voir le résultat
//  system("PAUSE");
    getchar(); // beaucoup plus propre car indépendant de windows
    return 0;
}

Version épurée :
// Conversion de température de degrés Celsius
// en degrés Fahrenheit :
// Fahrenteit = Celsius * (212 - 32)/100 + 32;
//

#include <iostream>

inline int celsius2fahrenheit(const int & celsius){
    return 180*celsius/100 +32;
}

int main(){
    int celsius;
    std::cout << "Entrez la température en Celsius : ";
    std::cin >> celsius;
    std::cout << "valeur en degrés Fahrenheit : "
        << celsius2fahrenheit(celsius) << std::endl;
    getchar();
    return 0;
}

Bonne chance
1
Thiby Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
Salut massi92

et bienvenue dans le merveileux monde du cpp (même si dans ton exemple on pourrait se borner à rester dans le c)

Pour ton problème, en fai tj'en vois plusieurs...

1 -> #include <isotream> ??? ce serait plutot : #include <iostream>
2 -> int main(int nNumberofArgs, char* pszArgs[]) ... hum c'est plutot : int main(int argc, char **argv)
3 -> rien a voir avec un probleme de compilation mais a mon avis ton programme ne fera pas ce qu'il doit faire : fahrenheit = factor * celsius/100 + 32;
Sachant que toutes tes variable sont déclarées en "int" tu auras normalement : fahrenheit = 0 pour toutes temperatures celsius < 100, car celsius/100 te retourne "0" (valeur entiere), il te faut donc les déclarer en "float" voir en "double"
4 -> Je suis peut etre passé dessus, mais à quoi sert l'inclusion de cstdlib?

Après j'ai peut etre pas tout vu, mais ce serait bien de nous montrer le rapport de compilation.
0
topic
 
autres erreurs

cin >>> celsius;.
cin >> celsius;

dans cout << fahrenheit << end1;
c'est pas end1 (un 1) mais endl (un L à la fin)
0
zabbi Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   4
 
slt.

moi je crois que t'a rendu ton programme trop compliqué . pour un debutant.

d'abord ta besoin seulment de iostream come biblio.
en plus ta pas besoin de faire de arguments pour main et aussi pas la peine de mettre une valeur de retour.

fais seulment main()
ce syntaxe est faux :cin >>> celsius;.
seulment 2 >> et pas de . à la fin

essais.
a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Thiby Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
Euh désolé pour le stdlib, j'avais oublié mais apperemment il est utilie pour la commande "system"
0
zabbi Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   4
 
slt.

c'est 90% juste ton programme . seulement faire float au lieu de int pour ne pas recuperer de resultat nulle.

chapeau.
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
J'ai mis un int parce que tu utilisais des int en fait :) Pusique ton problème semble résolu, je le clos.

Bonne chance
0
Thiby Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
En fait pour etre plus precis, l'impact du int est mineur puisque que ca ne supprime qu'un chiffre derriere la virgule du fait que le programme réalise d'abord la multiplication par "factor" qui vaut "190". donc meme si la temperature est de 1° on obtient 190/100+32 = 1 + 32 = 33 ...

mais bon la je pinaille...
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
si peu :)
0
Thiby Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   1
 
lol :)
0