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

VB 6 et antérieur Discussion :

calculatrice operations >a 1 chiffre


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut calculatrice operations >a 1 chiffre
    salut voila jje dois faire une calcullette en vb pour un tp

    tout fonction addition .......... si je calcule des chiffre du type
    452 + 1
    78 - 4

    par contre pour faire 45 +10 bin sa marche pas
    donc je pense que sa viens dans une de mes condition mais je ne vois pas laquelle

    donc voici une partie du code :
    quand on click sur un chiffre

    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
     
    Private Sub btchiffre_click(index As Integer)
     
    If test = False Then
           resultat = resultat & Btchiffre(index).Caption
     
        LblAffichage.Caption = resultat
        Lblaffichage1.Caption = resultat / 6.55957
     
     
      Else
     
         Select Case operateur
     
         Case "+":
            resultat = resultat + Btchiffre(index).Caption
            LblAffichage.Caption = Btchiffre(index).Caption
            Lblaffichage1.Caption = Btchiffre(index).Caption / 6.55957
    et quand on click sur un operateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub btoperateur_click(index As Integer)
     
    Select Case Btoperateur(index)
     
     Case Btoperateur(11):
     
       operateur = "+"
       test = True

    voila merci par avance

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut,

    Ce que tu présentes n'est pas hyper clair, mais à voir ton code, cela semble normal.
    La partie "Case "+"" de ton code additionne le chiffre tapé avec ta variable resultat. En gros, si tu tapes 45+23, ça va faire 45+2+3. Il faudrait que tu fasses un sorte de "mémoire" qui va garder le premier nombre en mémoire, en attendant que tu aies fini de taper le second. Et attendre ensuite la frappe sur la touche "=" ou sur un autre opérataur pour effectuer l'opération (en fonction des priorités des opérateurs). D'ailleurs c'est comme cela que fonctionne les calculatrices (sauf cas de la notation polonaise, pour laquelle le principe est le même, mais avec une variante sur l'ordre des opérations)

    En résumé, enlève la partie "addition" de ton code qui gère les frappes de touches numériques. Ce n'est pas là que ça doit être géré.
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre habitué Avatar de Mandalar
    Profil pro
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 121
    Points : 128
    Points
    128
    Par défaut
    resultat = resultat + Btchiffre(index).Caption
    Le probleme semble venir du fait que tu l'additionnes directement sans attendre de voir si l'utilisateur ne va pas cliquer a nouveau sur un chiffre.
    Comme je ne sais pas si je suis clair, je prends ton exemple:
    45 +10:
    Il appuie sur 4, puis 5, puis + (jusque la tout va bien), au moment où il tape sur '1', ca l'additionne directement, donc ca devrait donne 46, non ?

    L'idée serait de faire la meme chose qu'avec le résultat, c'est a dire une nouvelle variable nommée (exemple) nb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb = nb & Btchiffre(index).Caption
    (a la place du code cité plus haut), et tu ajoute nb a résultat lors de l'appui sur 'égal' ou la touche d'un autre opérateur, sans oublier de remettre nb à zéro.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    ui je suis repart sur cette methode aussi jy suis presque lol

    mercide vos réponses

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Points : 64
    Points
    64
    Par défaut
    voila ce que jai fais

    dans mon index du egal, jappel la procedure de calcul comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Case Btoperateur(16):
     
        Call calcul("operateur")

    voici une partie de la procedure de calcul
    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
     
     Private Sub calcul(operateur As String)
     
      Select Case operateur
     
         Case "+":
            resultat = resultat + valeur
           LblAffichage.Caption = resultat
            Lblaffichage1.Caption = resultat / 6.55957
     
     
         Case "-":
            resultat = resultat - valeur
            LblAffichage.Caption = resultat
            Lblaffichage1.Caption = resultat / 6.55957
     
         Case "*":
            resultat = resultat * valeur
            LblAffichage.Caption = resultat
            Lblaffichage1.Caption = resultat / 6.55957
    cest bon sa marche merci encore de votre aide
    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Operation basique chiffre
    Par Keldou dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 18/07/2008, 12h29
  2. extraire 2 chiffres après virgule ?
    Par nerick dans le forum C
    Réponses: 2
    Dernier message: 13/12/2002, 17h10
  3. [VB6] [Printer] Chiffres alignés à droite
    Par Laye dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/10/2002, 18h36
  4. Chiffre a Virgule Fixe
    Par garybaldi dans le forum C
    Réponses: 3
    Dernier message: 21/06/2002, 10h41
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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