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 :

Programmer calculatrice


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Programmer calculatrice
    Bonjour moi c'est dydy. J'suis nouveau! Je voudrai juste savoir comment coder une calculatrice pouvant calculer au moin 5 nombre à la fois(un peut comme une calculatrice complexe quoi)! Merci de me m'aider!

  2. #2
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut
    tu veux une calculatrice comment
    mais voici une simple:

    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
    #include <isotream>
     
    using namespace std;
     
    int TMP1;
    int TMP2;
     
     
    void main(){
    	cout <<"calculatrice + basique" <<endl;
    	cin << TMP1;
    	cout <<TMP1<<"+";
    	cin << TMP2;
    	int TMP3 = TMP1+TMP2;
    	cout <<" = "<<TMP3<<"\nfin";
     
    }
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par Dydy123 Voir le message
    une calculatrice pouvant calculer au moin 5 nombre à la fois
    Le point sensible c'est l'analyse lexicale/ syntaxique d'une expression mathématique

    En gros, tu vas avoir l'analyse lexicale qui va détecter les nombres (entiers ou flottants), les opérations (+, -, *, /), les parenthèses/ crochets et éventuellement les fonctions (cos, sin, tan, exp, log, ...)
    L'analyse lexicale a surtout comme rôle de détecter si ton expression mathématique est valide.
    Il y a bien sûr plus de lexèmes si tu veux pousser ta calculatrice : les puissances (entières, négatives, réelles), les racines (racine carrée, racine cubique, ...), les symboles (e, pi, ...), les intégrales, les nombres imaginaires, ...

    Et ensuite, il y a l'analyse syntaxique (qui prend en entrée les lexèmes de l'analyse lexicale). Ce qui se fait en général, c'est de transformer ton expression en arbre binaire, où les feuilles contiennent les nombres et les nœuds les opérations (ou les fonctions).

  4. #4
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut
    quel bazar
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  5. #5
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 332
    Points : 4 153
    Points
    4 153
    Par défaut Formel ou informel
    Bonjour,

    La réponse avec analyse lexicale/syntaxique est effectivement indispensable pour une calculatrice formelle qui accepterait par exemple "2*X^3 - 3* sin(X)" avant traitement.

    Mais la plupart des calculatrices travaillent avec des touches dédiées qui évitent en grande partie l'analyse lexicale et intègrent directement l'analyse syntaxique à la création de l'arborescence.
    Dans ce cas sin(X) n'est pas [s] [i] [n] [(] [X] [)] mais [sin(] [X] [)], les crochets [] représentent une touche. A chaque appui de touche, le programme enrichit un arbre qui tient compte entre autre des priorités et vérifie que les valeurs entrées soient bien formées et conformes à ce que la feuille de l'arbre attend (par exemple -1 comme argument de racine carrée est bien formé mais non conforme).

    C'est plus simple que traiter des expressions formelles sans être simple pour autant.

    Ceci étant, créer une calculatrice formelle avec, par exemple, un outil comme ANTLR qui sur la base d'une grammaire (il y en a beaucoup de disponibles sur internet) générera en Java, entre autres langages, les analyseurs attendus, est un bon moyen pour apprendre ce type de technique. Mais l'objectif n'est plus le même

    Salutations.
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  6. #6
    Membre habitué
    Avatar de pedronatorBzh
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2019
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 52
    Points : 198
    Points
    198
    Billets dans le blog
    1
    Par défaut
    donc faire un projet de 700 lignes ou plus juste pour une calculette
    mon nom est PEDRO LE BRETON joueur,programmateur(html,batch,c,c++,fx92+)

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Mais la plupart des calculatrices travaillent avec des touches dédiées qui évitent en grande partie l'analyse lexicale et intègrent directement l'analyse syntaxique à la création de l'arborescence.
    Et encore d'autres utilisent la notation polonaise inverse (<- lien wikipédia en français) :

    "a + b" devient "a b +"
    "((1 + 2) × 4) + 3" devient "1 2 + 4 x 3 +"

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,
    Citation Envoyé par pedronatorBzh Voir le message
    donc faire un projet de 700 lignes ou plus juste pour une calculette
    700 lignes, c'est peanuts par rapport à la plupart des programmes un tant soit peu utiles!

    La plupart des programmes sont composés de plusieurs dizaines ou centaines de milliers de lignes de code, quand on ne les compte pas carrément en millions.

    Ce qui importe, c'est d'organiser correctement ton programme en fichiers distincts, de manière à ce que les différentes fonctionnalités soient fournies de manière cohérente et que tu aies facile à t'y retrouver au fil du temps.

    Une fois que tu as cette "bonne" organisation, tu te rend compte que le nombre de lignes de code n'as plus beaucoup d'importance
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 332
    Points : 4 153
    Points
    4 153
    Par défaut
    Bonjour,

    Citation Envoyé par foetus Voir le message
    Et encore d'autres utilisent la notation polonaise inverse (<- lien wikipédia en français) :
    "a + b" devient "a b +"
    "((1 + 2) × 4) + 3" devient "1 2 + 4 x 3 +"
    En fait,c'est la calculatrice la plus simple à programmer : j'empile les valeurs et quand je trouve un opérateur (+, -, fonction etc.) je dépile le(s) derniers éléments de la pile nécessaires et les remplace par le résultat. Cela m'a toujours réjoui de voir les irréductibles de la RPN se complaire à faire le travail d'un programmeur paresseux (mais astucieux). Je dois avoir un mauvais fond

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

Discussions similaires

  1. [TI Nspire] Programme Calculatrice/ordinateur
    Par paulo3 dans le forum Autres langages
    Réponses: 0
    Dernier message: 21/03/2017, 20h16
  2. Programme calculatrice GTK+3 Linux.
    Par Luke spywoker dans le forum Débuter
    Réponses: 2
    Dernier message: 16/12/2014, 18h25
  3. programme calculatrice c++
    Par hotdogFRANCE dans le forum Débuter
    Réponses: 6
    Dernier message: 09/08/2013, 23h32
  4. programme calculatrice en java besoin d'aide
    Par minouch dans le forum Débuter
    Réponses: 4
    Dernier message: 04/12/2010, 09h24
  5. [TP] Programme calculatrice : erreur de syntaxe
    Par goldeneagle1 dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/05/2007, 21h03

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