IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Calcul d'un volume


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut Calcul d'un volume
    Excusez moi, j'ai regardé vite fais dans la FAQ mais j'ai pas trouvé, voila mon problème, je dois rendre demain un tp de langage c et j'ai un problème dans l'un de mes exercices :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    //Ex3
    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    #include<iomanip.h>
     
    void saisie(float &rayon)
    {
    cout<<"Entrez le rayon de la sphere en cm\n";
    cin>>rayon;
    }
     
    float VOL_SPH(float rayon)
    {
    float vol;
    vol=(4*3.14159*pow(rayon,3))/3;
    return vol;
    }
     
    void edition(float rayon, float vol)
    {
    cout<<"La sphere de rayon "<<rayon<<" cm, a un volume de "<<setprecision(2)<<vol<<" cm cube\n";
    }
     
    void main()
    {
    clrscr();
    float rayon, vol;
    saisie(rayon);
    vol= VOL_SPH(rayon);
    edition(rayon, vol);
    getch();
    }
    voila le listing, mon problème vient du fait que lorsque j'entre 5 en rayon par exemple le résultat affiché est 523.6, donc la sa va mais lorsque je met 9 en rayon il m'affiche 3.05e+03 et sa c'est pas bon, que faire ???

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    le problème doit être au niveau du setprecision, il doit y avoir d'autres options à mettre à cout...

    Par contre, je ne l'utilise jamais , donc je ne peux pas te dire lesquelles...

    EDIT: Euh... C'est du C++, ça... pas du C...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Merci d'avoir repondu aussi rapidement en tout cas meme si sa ne résout pas mon probleme, le truc c'est que je débute en c et je sais pas quoi mettre a la place

    Edit : oui enfin c'est du c et c++

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Citation Envoyé par clad76
    oui enfin c'est du c et c++
    Attends, c'est soit l'un soit l'autre... jamais les deux !

    Sinon, main retourne toujours int, jamais void !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    désolé comme je l'ai dit je débute, et les profs nous disent un coup qu'on fait du c et l'autre coup du c++, alors moi je sais plus où j'en suis, et j'ai pas compris ton truc du int et void

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Tu as déclaré ta fonction main :
    Seulement, en langage C, main doit toujours retourner un entier. Sa déclaration ici devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main ()
    {
    <...>
    return 0
    }
    Le "return 0" à la fin du main est là pour signaler au système d'exploitation que l'exécution de ton programme s'est bien passée.

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    bonsoir,

    c'est du C++ dès lors qu'il y a des instructions C++ (cout...)
    je déplace dans le forum C++

    1ère remarque : http://c.developpez.com/faq/cpp/?pag...le#SL_iostream
    revoie tes headers.

    2ème remarque : comme déjà dit, main renvoie int (return EXIT_SUCESS

    3ème remarque : mieux vaut utiliser double que float pour la précision.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    J'ai regardé la faq des headers et donc j'ai changé mon #include<iostream.h> par #include<iostream> avec using namespace std; mais en compilant il dit qu'il y a une erreur, j'utilise TC c'est le programme qu'on nous a filé, sa vient de sa ?

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Citation Envoyé par clad76
    il dit qu'il y a une erreur
    Quoi comme erreur?

    D'autre part, décide toi si tu fais du C ou du C++... parce que pour le moment tu as un mélange des deux.

  10. #10
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Citation Envoyé par clad76
    J'ai regardé la faq des headers et donc j'ai changé mon #include<iostream.h> par #include<iostream> avec using namespace std; mais en compilant il dit qu'il y a une erreur, j'utilise TC c'est le programme qu'on nous a filé, sa vient de sa ?
    en C++ les en-têtes sont :

    #include<cmath>
    #include<iomanip>

    pareil que les autres. c'est du C ou du C++ ?
    et quand il y a une erreur, il faut nous la recopier pour qu'on sache de quoi il s'agit

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Mais j'en sais rien moi, ces abrutis ils nous donnent des exos a faire, on fait du langage c et/ou c++ depuis a peine 4 séances et ils croient qu'on peut tout rendre comme sa. Notre énoncé est le suivant:

    On voudrait pourvoir calculer le volume d'une sphère à l'aide d'une fonction float VOL_SPH(float)
    Le rayon sera saisi grâce à une procédure.
    Le rayon sera ensuite passé en paramètre à la fonction qui retournera le volume
    Une procédure d'édition donnera le rayon initial et le volume de la sphère

    La formule est v=4/3 PI R^3
    Vous aurez donc besoin d'utiliser une fonction existante en c++: La fonction "elevation à la puissance xx ".
    C'est une fonction mathématique contenue dans math.h nommée POW
    Cherchez son prototypage

    Réalisez ce programme et testez le te.

    Edit : Laissez tomber vous tracassez pas pour sa, je vais le rendre tel quel tanpi, j'avais qu'a m'y prendre avant comme on dit...

    Re Edit : enfin avouez que ce sont quand même des charlots, ils nous font faire du c++ et nous disnet de mettre des headers de c et c'est eux qui nous ont dit de mettre des return avec des float

  12. #12
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Re,

    oué, pas toujours au top les profs je connais...
    je viens de tester ça chez moi (Visual C++ 6), c'est ok.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include<iostream>
    #include<conio.h>
    #include<cmath>
    #include<iomanip> 
    using namespace std;
     
    static float facteur = 4*atan(1)/3;
     
    void saisie(float &rayon)
    {
       cout << "Entrez le rayon de la sphere en cm" << endl;
       cin >> rayon;
    }
     
    float VOL_SPH(float rayon)
    {
       return facteur*pow(rayon,3);
    }
     
    void edition(float rayon, float vol)
    {
       cout << "La sphere de rayon " << rayon << " cm, a un volume de " << vol << " cm cube" << endl;
    } 
     
    int main()
    {
       float rayon;
       saisie(rayon);
       edition(rayon,VOL_SPH(rayon));
       getch(); 
       return EXIT_SUCESS;
    }
    mais bon, dans l'absolu float à éviter, getch à remplacer par http://c.developpez.com/faq/cpp/?pag...nsole_windows, faire gaffe avec conio (valable uniquement sous windows).

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Merci beaucoup,mais j'ai fait un copier collez de ton programme dans TC et la compilation marque encore des erreures du aux headers qu'il reconnait pas a cause de l'absence des .h je crois et quand je met les .h après il reconnait pas la fonction return EXIT_SUCESS; enfin bref c'est pas compatible avec TC, enfin merci de t'etre décarcassé pour moi

  14. #14
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    au lieu de EXIT_SUCCESS, mets 0 ça revient au même ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  15. #15
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    hmm si le compilo est vieux, possible qu'il ne reconnaisse pas les headers standards (depuis 1998...). dans ce cas remet les .h

    la fonction main renvoie un entier. souvent l'entier est 0, mais ça dépend de l'impémentation. pour ne pas se tromper une constante EXIT_SUCCESS existe (en principe) et permet au développeur de ne pas se poser de question sur la valeur de retour du main.

    si ça marche pas, met "return 0;" à défaut d'autre chose.

  16. #16
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Citation Envoyé par Swoög
    au lieu de EXIT_SUCCESS, mets 0 ça revient au même ^^
    pas toujours, mais généralement oui.

    EDIT : j'ai fait quelques modif dans le code.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Merci les gars, j'ai pas résolu mon problème mais tanpi, c'est sympa d'avoir cherché allez bonne nuit je vais me coucher

  18. #18
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Pense au résolu (en bas à gauche ) si ton problème l'est ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  19. #19
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    clad76 :
    Mais j'en sais rien moi, ces abrutis ils nous donnent des exos a faire,
    bigboomshakala :
    oué, pas toujours au top les profs je connais...
    Diogene :
    oué, pas toujours au top les élèves je connais...

Discussions similaires

  1. Calcul d'un volume à partir d'une serie de liste de points
    Par gwal21 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 09/06/2011, 19h30
  2. Réponses: 5
    Dernier message: 11/10/2010, 16h04
  3. Calcul d'un volume par integration numerique
    Par escobarfan dans le forum MATLAB
    Réponses: 8
    Dernier message: 13/10/2009, 22h35
  4. Calcul d'un volume des trois objets
    Par erman_yazid dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 11/03/2009, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo