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++Builder Discussion :

[C++ Builder 6] Faire une calculette [Débutant(e)]


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut [C++ Builder 6] Faire une calculette
    Bonjour tout le monde,

    Je dois faire une projet avec borland c++ builder et je dois faire une calculette, mais je ne sais pas du tout comment m'y prendre.. Quelqu'un sais comment je pourrais faire, pour commencer je voudrais simplement pouvoir additionner deux nombres.

    Merci et bonne journée !

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    A ce stade je te conseille de lire les tutoriels C++ et BCB qui sont très bien pour débuter en C sous Builder:

    http://c.developpez.com/cours/

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut
    Merci pour ta réponse mais je trouve pas de reponses a ma question la dedans ^^ !

  4. #4
    Membre expérimenté Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Par défaut
    Tu places un AnsiString qui te permettra de taper les nombres que tu desires.
    Pour faire un operation il te faut 2 nombres. Par conséquent il faut déclarer deux nombres (int ou float selon ton choix).
    Prenons maintenant l'exemple de l'addition en int (n1 et n2) du coté utilisateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -Tu tapes un premier nombre (n1)
    -Tu cliques sur "+"
    -Tu entres un second nombre (n2)
    -Tu cliques sur egal et c'est tout.
    Coté developpeur maintenant:
    Tu vas placé du code uniquement sur les boutons "+" et "="
    Il faut donc bien visualiser ce qu'il se passe.

    clique sur "+":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - Tu memorises le contenu de l'ansistring dans n1
    - Tu effaces le contenu de l'ansistring
    -(Et tu memorises que c'est un addition... on anticipe pour les prochaine operations ou il faudra memoriser soustraction, division et multiplication... et oui on utilise un seul boutton "=" pour toutes les operations)
    clique sur "=":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -Tu memorises le contenu de l'ansistring dans n2
    -Tu effaces le contenu de l'ansistring
    -Tu effectue ton operation
    -Tu places le resultat dans ansistring
    Voila grossomodo ce qu'il faut faire en esperant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    -n'avoir rien oublier
    -ne pas m'etre trompé
    -t'avoir aidé...
    Si j'ai repondu a coté explique ton probleme plus en detail... ou bloques tu exactement...

    PS: Ca existe deja la calculatrice dans windows.. non??? LOL

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut El-Diablo-:
    Pour ton probleme deja il te faut,
    pouvoir saisir tes nombres
    choisir ton type d'operation
    valider ton operation
    afficher ton resultat
    il va donc te falloir des fenetres pour saisie et l'affichage, et des boutons pour choisir et valider.

  6. #6
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut
    pour faire une calculette tu peux faire comme suit:
    placer deux TEdit sur ta fiche + un TButton + un TLabel
    dans l'événement OnClick de ton bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // déclaration des variables
    double n1, n2, reponse;
     
    // affectation des variables
    n1 = Edit1->Text.ToDouble();
    n2 = Edit2->Text.ToDouble();
     
    reponse = n1 + n2;
     
    Label1->Caption = reponse
    ou toujours dans le même événement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // on fait directement le calcul sans passer par des variables
    Label1->Caption = Edit1->Text.ToDouble() + Edit2->Text.ToDouble();
    perso je prendrai plustôt la première

    amicalement Mangacker

  7. #7
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par El-Diablo-
    Merci pour ta réponse mais je trouve pas de reponses a ma question la dedans ^^ !
    Quand même, celui ci devrait t'aider : http://geronimo.developpez.com/debutant/partie2/

  8. #8
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    J'en avais fait une il y a une quinzaine d'années sur un ATARI 1040, en GFA Basic.

    Sans parler de l'interface, il ne faudra pas négliger les problèmes de priorités entre les opérations.
    C'est un bon exercice de style...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut
    Mais comment je fais pour mettre le chiffre dans la variable AnsiString, parce que au fait je dois faire un bouton pour chaque chiffre.. Comment je fais par mettre ca dans la variable parce que par exemple: Si je veux mettre le chiffre "12" je vais tapper sur le bouton "1" puis après sur le bouton "2". Comment je fais pourmettre ca dans la variable puis après quand j'appuie sur le bouton "+", les chiffres que je vais tapper, doivent aller dans la deuxieme variable.. Comment je fais ca aussi pour pouvoir switcher d'un variable a une autre après avoir cliquer sur un bouton ?

    Merci et Bonne journée !

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut
    Citation Envoyé par El-Diablo-
    Comment je fais par mettre ca dans la variable parce que par exemple: Si je veux mettre le chiffre "12" je vais tapper sur le bouton "1" puis après sur le bouton "2".
    Appui sur bouton "1"
    AnsiString val1 = val1 + "1";

    val1 vaut "1"

    Appui sur bouton "2"
    AnsiString val1 = val1 + "2";

    val1 vaut "12"

    Citation Envoyé par El-Diablo-
    Comment je fais pourmettre ca dans la variable puis après quand j'appuie sur le bouton "+", les chiffres que je vais tapper, doivent aller dans la deuxieme variable.. Comment je fais ca aussi pour pouvoir switcher d'un variable a une autre après avoir cliquer sur un bouton ?
    Appuie sur "+"
    AnsiString val2 = ansiString(val2.ToInt() + val1.ToInt());
    val1 = "";

    voila

  11. #11
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut

    On suppose que l'on fait écho de la saisie et du résultat dans Label1 et on a n speedbuttons.

    On énumère les opérations (dans le .h):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enum{aucune=0, addition...};
    On a trois variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int N = 0;
    int R = 0;
    int Operation = aucune;
    On a plusieurs types de boutons :

    - les chiffres (0...9)
    On initialise leur propriété Tag avec la valeur de leur chiffre.
    On leur affecte une même méthode onClick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    N = (N * 10) + ((TSpeedButton*)Sender)->Tag;
    Label1->Caption = IntToStr(N);
    - les opérations (+,-,/,*)
    On peut leur affecter la même OnClick, et si c'est le cas on initialise les propriétés Tag en tenant compte de l'énumération
    La OnClick pour les opérations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(Operation == aucune) R = N;
    N = 0;
    Operation = ((TSpeedButton*)Sender)->Tag;
    - résolution du calcul (=)
    Dans la OnClick il suffit de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    switch(Operation)
        {
        case addition : 
            R = R + N;
        break;
        case soustraction :
        ...
        }
    N = 0;
    Label1->Caption = IntToStr(R);
    On peut ajouter de quoi purger (C):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    R = 0;
    N = 0;
    Operation = aucune;
    Label1->Caption = 0;
    C'est une solution minimaliste autour des int, autorisant le calcul en chaîne.
    On peut rajouter d'autres variables pour gérer le point décimal !
    A toi de développer un peu !

    A plus !

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut
    Merci de vos réponses, mais je suis pas encore au point de comprendre tout ca ! Ce que je comprend encore moin, c'est quelle code dois-je mettre dans les boutons (0...9) ? Puisque ils peuvent aller dans deux variables.. Par défaut dans la variable 1 mais si on a appuyez sur le bouton "+" il doivent aller dans la variable 2... I'm a loser !

  13. #13
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut El-Diablo-:
    un debut de reponse a partir du poste de henderson.
    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
     
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    Edit1->Text = 0;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    var2 = Edit1->Text.ToInt();
    var1 = (var2 * 10) + 1;
    Edit1->Text = var1;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    var2 = Edit1->Text.ToInt();
    var1 = (var2 * 10) + 2;
    Edit1->Text = var1;
    }
    Un Tedit, 10 TButton 0 - 9, 1 TButton +
    pense a declarer et initialiser tes variables.

  14. #14
    Membre expérimenté Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Par défaut
    Quand tu cliques sur les chiffres de 0 à 9 tu ne t'occupes pas des variables, tu fais uniquement de l'affichage dans le TEdit.

    Ensuite val1 est affectée par la valeur du TEdit dans les OnClick des operations (+,-,/,*). Tu indiques également quel est le type de l'operation dans une variable "Operateur", ca te servieras plus tard.

    Val2, elle, est affectée par la valeur du TEdit dans le OnClick du button egal.
    C'est également dans cet evenement que tu fait:
    -ton calcul en fonction de l'operation (grace à un switch sur la fameuse variable "Operateur" eventuellement).
    -L'affichage du resultat.
    -La remise à 0 de la variable "Operateur"

    Sinon dans les nouveau OS generalement il y a deja une calculatrice... lol

    Citation Envoyé par blondelle
    Salut El-Diablo-:
    un debut de reponse a partir du poste de henderson.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    Edit1->Text = 0;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    var2 = Edit1->Text.ToInt();
    var1 = (var2 * 10) + 1;
    Edit1->Text = var1;
    }
    }
    Il y a moyen de faire ca plus facilement avec les AnsiString....
    Edit:
    Mais c'est vrai que pour comprendre que l'on travail sur des nombres c'est plus simple.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Par défaut exemple calculatrice
    si joint un exemple de calculette que j'ai telecharger
    exemple a etudier .
    cordialement
    Fichiers attachés Fichiers attachés

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut
    J'ai mis pour chaque bouton le code comme a dit blondelle, mais maintenant je fais comment le reste pour quand je clique sur "+" la valeur entrée aille dans ma deuxieme variable ?

  17. #17
    Membre expérimenté Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Par défaut
    Citation Envoyé par El-Diablo-
    je fais comment le reste pour quand je clique sur "+" la valeur entrée aille dans ma deuxieme variable ?
    Heu normalement quand tu clique sur "+" ou sur n'importe quelle autre operation la valeur va dans la PREMIERE variable. Ca ne change rien a ton probleme mais c'est pour que les choses soient claires.
    Ensuite, Il me semble que la reponse à ta question à déjà été postée.
    @+
    [edit]
    effectivement je viens de regardé et la reponse à ta question est déjà postée et en plus avec du code... mais comme je suis gentil je ne vais pas te laisser chercher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaVariableTantDerisee = Edit1->Text.ToInt();

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/05/2014, 17h57
  2. Faire une application multilangage avec C++Builder
    Par pottiez dans le forum C++Builder
    Réponses: 5
    Dernier message: 03/09/2009, 20h52
  3. Réponses: 6
    Dernier message: 12/01/2009, 00h12
  4. Réponses: 1
    Dernier message: 04/11/2007, 02h27
  5. Comment faire une API Win32 avec C++ Builder
    Par Zerocool003 dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2006, 16h13

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