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 :

Calculer un pourcentage en C++ ?


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Lyc�en
    Inscrit en
    Juillet 2010
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par d�faut Calculer un pourcentage en C++ ?
    Bonjour � tous !

    Je suis en seconde et nous travaillons actuellement sur les pourcentages. On a commenc� en parall�le la programmation sur calculatrice TI. Le professeur a demand� de coder un programme sur la calculatrice qui permettrait de calculer un pourcentage avec diff�rentes valeurs contenues dans des variables. Je n'aime pas du tout le TI-Basic donc je pr�f�re coder en C++ et en faire une application, il sera content Mais je rencontre un probl�me, d�j�, mon code (je d�bute seulement en C++) :

    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
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
     
    using namespace std;
     
    int prix;
    int tiord;
    int taux;
     
    int main (int argc, const char * argv[])
    {
        cout << "Bienvenue dans le calculateur de pourcentages !" << endl;
        cout << "Entrez le prix de l'article :" << endl;
        cin >> prix;
        cout << "Le prix est donc de " << prix << " euros !" << endl;
        cout << "Entrez le pourcentage d'inflation ou de désinflation :" << endl;
        cin >> tiord;
     
        if (tiord < 1)
        {
            cout << "Entrez une valeur supérieure à 0 !" << endl;
        }
     
        taux = tiord/100*prix;
     
        cout << "Le taux d'inflation ou de désinflation est de " << taux << " %" << endl;
     
        return 0;
    }
    Je n'arrive pas � calculer le pourcentage et � stocker le r�sultat dans une variable (ici la varibale "taux") et je ne sais pas d'o� peut venir le probl�me Je l'ai cod� en Python aussi, et pareil, le calcul ne se fait pas

    Si vous pouviez m'aider �a serait top !

    Merci d'avance !

  2. #2
    Mod�rateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur d'emploi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par d�faut
    Bonsoir,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    int prix;
    int tiord;
    int taux;
     
        taux = tiord/100*prix;
    C'est parce qu'il faut tenir compte du type de tes variables en particulier, et de tes donn�es en g�n�ral. En l'occurrence, elles sont toutes � enti�res � (int), ce qui signifie que la valeur qu'elles contiennent est toujours enti�re et que, donc, � chacune de tes op�rations, la partie d�cimale est perdue. Et comme tu commences par faire une division par 100 alors que le dividende est par nature inf�rieur � cent, tu te retrouves avec un r�sultat nul qui se propage au reste de ton calcul.

    Sache que le C et C++ compte parmi les langages qui �pousent au plus pr�s le fonctionnement r�el des ordinateurs. Ils ne font pas de calcul symbolique ni de r�solution pr�alable d'�quations. Il faut donc tenir compte des limitations de ta machine comme tu le ferais avec une calculatrice. Et ce, m�me si tu utilises des nombres � virgule flottante.

  3. #3
    Membre averti
    Homme Profil pro
    Lyc�en
    Inscrit en
    Juillet 2010
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par d�faut
    Oui je vois, en fait j'ai repris les calculs faits en cours et les ai mis dans mon code, je vais r�fl�chir ! Je me demandais, si je veux cr�er une variable qui peut retourner ou un int ou un double, je peux ? Par exemple ici je ne sais pas ce que l'utilisateur va rentrer comme valeur ni quel sera le r�sultat ?

  4. #4
    Mod�rateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur d'emploi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par d�faut
    Pas directement, non. Mais pour faire cela, tu peux utiliser une union. Cela dit, il faudra quand m�me sp�cifier explicitement le membre du type que tu veux utiliser le cas �ch�ant.

    Le C++ est un langage merveilleux, mais il est fait, comme le C, pour �tre tr�s proche de la machine. Il est �galement con�u pour privil�gier l'exhaustivit� � la simplicit�. L'apprendre est donc un investissement.important.

  5. #5
    Expert confirm�

    Inscrit en
    Ao�t 2006
    Messages
    3 967
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 3 967
    Par d�faut
    Loe,
    Citation Envoy� par proinfo Voir le message
    Oui je vois, en fait j'ai repris les calculs faits en cours et les ai mis dans mon code, je vais r�fl�chir ! Je me demandais, si je veux cr�er une variable qui peut retourner ou un int ou un double, je peux ? Par exemple ici je ne sais pas ce que l'utilisateur va rentrer comme valeur ni quel sera le r�sultat ?
    Il est certain que �a aide.

  6. #6
    Membre averti
    Homme Profil pro
    Lyc�en
    Inscrit en
    Juillet 2010
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par d�faut
    Citation Envoy� par droggo Voir le message
    Loe,

    Il est certain que �a aide.


    Merci pour votre aide en tout cas, le probl�me est r�solu, la syntaxe du calcul n'�tait pas bonne Le code qui fonctionne donne donc ceci :

    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
    34
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
     
    using namespace std;
     
    int prix; 
    int tiord;
    double taux;
     
    int main (int argc, const char * argv[])
    {
    	cout << "Bienvenue dans le calculateur de pourcentages !" << endl << endl;
    	cout << "Entrez le prix de l'article :" << endl << endl;
    	cin >> prix;
    	cout << endl << endl;
    	cout << "Le prix de l'article est donc de " << prix << " euros !" << endl << endl;
    	cout << "Entrez le pourcentage d'inflation ou de désinflation :" << endl << endl;
    	cin >> tiord;
     
    		if (tiord < 1)
    		{
    			cout << "Entrez un nombre supérieur à 0 !" << endl << endl;
    		}
    		else
    		{
    			taux=(prix*tiord)/100;
    			cout << endl << endl;
    		}
     
    	cout << "Le pourcentage d'inflation ou de désinflation est donc de " << taux << " %." << endl << endl;
     
    	return 0;
    }
    Voil�, encore merci � vous !

  7. #7
    Mod�rateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur d'emploi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par d�faut
    C'est beaucoup mieux, mais pas encore parfait : Si tu rentres un produit � 50 � et que tu le fait � 25 %, son prix doit �tre ramen� � 12,50 �.

    En l'�tat actuel des choses, tu vas obtenir un prix � 12,00 � tout rond, et perdre de l'argent. Et pourtant, ton r�sultat est bien de type double.

    Je te laisse deviner pourquoi.

  8. #8
    Membre averti
    Homme Profil pro
    Lyc�en
    Inscrit en
    Juillet 2010
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par d�faut
    Je pense que c'est parce que mes deux autres variables ne sont pas de type double et ne donnent donc pas de r�sultat de type double, malgr� le fait que ma variable "taux" soit de type double

    Edit : J'ai test� et c'est bel et bien �a

  9. #9
    Membre exp�riment� Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    D�cembre 2005
    Messages
    170
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Amateur

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 170
    Par d�faut
    Exact, mais changer ton 100 en 100.0 aurait eu le m�me r�sultat Il suffit d'un double dans le tas pour que le r�sultat soit en double.

  10. #10
    Mod�rateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur d'emploi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par d�faut
    Voire m�me un simple transtypage.

  11. #11
    Membre exp�riment� Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    D�cembre 2005
    Messages
    170
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Amateur

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 170
    Par d�faut
    Chaque chose en son temps ^^

  12. #12
    Membre averti
    Homme Profil pro
    Lyc�en
    Inscrit en
    Juillet 2010
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Juillet 2010
    Messages : 29
    Par d�faut
    Citation Envoy� par Rewpparo Voir le message
    Exact, mais changer ton 100 en 100.0 aurait eu le m�me r�sultat Il suffit d'un double dans le tas pour que le r�sultat soit en double.
    C'est pas plus clean de d�clarer un double dans le sens o� le r�sultat sera de type double ? Et je voulais aussi vous demander, en fonction de si je veux calculer une augmentation ou une diminution d'une valeur en pourcentage, la formule de calcul change ? J'ai toujours eu du mal avec les %

  13. #13
    Mod�rateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Chercheur d'emploi
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par d�faut
    Citation Envoy� par proinfo Voir le message
    C'est pas plus clean de d�clarer un double dans le sens o� le r�sultat sera de type double ?
    C'est-�-dire que � 100 � est en soi une expression qui peut �tre �valu�e et qui a donc un type. Et justement, quel est ce type ?

    Et je voulais aussi vous demander, en fonction de si je veux calculer une augmentation ou une diminution d'une valeur en pourcentage, la formule de calcul change ? J'ai toujours eu du mal avec les %
    �a, c'est une question de raisonnement, pas de langage C. Pose l'op�ration sur papier et regarde le r�sultat. Tires-en les conclusions qui s'imposent et transposes-les ensuite dans ton programme.

Discussions similaires

  1. Calcul de pourcentages
    Par Lypertrophie dans le forum SQL Proc�dural
    R�ponses: 5
    Dernier message: 30/06/2006, 11h25
  2. Req�te avec un calcul de pourcentage
    Par jean-pierre96 dans le forum Langage SQL
    R�ponses: 2
    Dernier message: 03/05/2006, 13h00
  3. R�ponses: 1
    Dernier message: 10/01/2006, 20h35
  4. calcul de pourcentage
    Par PAUL87 dans le forum Access
    R�ponses: 12
    Dernier message: 20/09/2005, 19h50
  5. Calcul de pourcentage
    Par megazen dans le forum Langage SQL
    R�ponses: 3
    Dernier message: 19/11/2003, 16h43

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