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

Delphi Discussion :

Erreur dans un programme de calculatrice


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 113
    Points : 72
    Points
    72
    Par défaut Erreur dans un programme de calculatrice
    slt a tous
    je vien de faire un calculatrice mais le calcul est toujour constant et jai rien trouvé deans mon code
    je crois que la faute dans le bouton egal
    svp aider moi a le trouvé
    merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 245
    Points : 154
    Points
    154
    Par défaut
    Citation Envoyé par gadalla
    slt a tous
    je vien de faire un calculatrice mais le calcul est toujour constant et jai rien trouvé deans mon code
    je crois que la faute dans le bouton egal
    svp aider moi a le trouvé
    merci d'avance
    T'es sur que t'as mis le code?? ca ne compile pas.

  3. #3
    Membre averti Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 392
    Points
    392
    Par défaut
    J'ai regardé très rapidement ton fichier .pas : dans un premier temps tu devrais modifier tes instructions case .. of : il me semble qu'elles n'acceptent pas les chaines comme instruction : c'est à dire que ton code suivant est invalide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case opp of
        '/' : result := n1 / n2 ;
        '*' : result := n1 * n2 ;
        '-' : result := n1 - n2 ;
        '+' : result := n1 + n2 ;
        end;
    Plusieurs solutions existent :
    - 1 - soit tu suvegardes le type d'opération en mémoire dans une variable ,
    - 2 - soit tu traites un case sur une liste d'éléments ('/', '*', '-', '+')

    Bon Courage.

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    j'aimerai bien savoir comment ta fais pour compiler ton code .

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par archonte
    Plusieurs solutions existent :
    - 1 - soit tu suvegardes le type d'opération en mémoire dans une variable ,
    - 2 - soit tu traites un case sur une liste d'éléments ('/', '*', '-', '+')
    Soit tu utilises AnsiIndexStr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case AnsiIndexStr(opp, ['/', '*', '-', '+']) of
        0 : result := n1 / n2 ;
        1 : result := n1 * n2 ;
        2 : result := n1 - n2 ;
        3 : result := n1 + n2 ;
        end;


    Comment faire un Case Of avec des String ?

  6. #6
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    le mieux c'est d'utilser le Tag des button pour définir les opération
    et le Caption des chiffre.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Edit1.Text := Edit1.Text + (Sender as TButton).Caption;
    pour le point

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if pos('.',Edit1.Text = -1 then
     Edit1.Text := Edit1.Text + (Sender as TButton).Caption;
    et pour les opérations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Opr := (Sender as TButton).Tag;

  7. #7
    Membre averti Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 392
    Points
    392
    Par défaut
    Citation Envoyé par Pedro
    Soit tu utilises AnsiIndexStr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case AnsiIndexStr(opp, ['/', '*', '-', '+']) of
        0 : result := n1 / n2 ;
        1 : result := n1 * n2 ;
        2 : result := n1 - n2 ;
        3 : result := n1 + n2 ;
        end;


    Comment faire un Case Of avec des String ?
    Je me suis peut-être mal exprimé (pressé par le temps !) mais je pensais effectivement à AnsiIndexStr

    Je rajouterais qu'il vaut mieux (il faut !) écrire les fonctions/procédures dans la partie implementation et non interface !!

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

Discussions similaires

  1. Exo, erreur dans le programme - AIDE
    Par GENgis_- dans le forum C++
    Réponses: 6
    Dernier message: 28/10/2006, 14h11
  2. [Help] Erreurs dans mon programme
    Par Tacha dans le forum Langage
    Réponses: 13
    Dernier message: 02/10/2006, 13h57
  3. erreur dans un programme
    Par krole57 dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/06/2006, 14h30
  4. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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