begin process at 2012 02 09 08:08:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > INTERPRETATION DE COMMANDE : CALCULATRICE ET DESSIN DE GRAPHIQUE À PARTIR DE SON EQUATION

INTERPRETATION DE COMMANDE : CALCULATRICE ET DESSIN DE GRAPHIQUE À PARTIR DE SON EQUATION


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :calculatrice, graphe, analyseur, syntaxique Niveau :Initié Date de création :29/04/2007 Date de mise à jour :07/05/2007 10:49:59 Vu / téléchargé :6 783 / 501

Auteur : rzomalala

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
        Bonjour à toutes et à tous.
        Bon! voici le premier programme que je publie sur cppfrance.
        Il s'agit d'un analyseur syntaxique. J'ai trouvé la calculatrice de Windows un peu
        ennuyante, mais c'est juste mon avis.
        Bref, avec ce programme, vous avez une calculatrice et un support puissant pour
        dessiner des graphiques à partir de la saisie de son equation.

        Voici quelques exemples :
        2+4*2^3-7/8+5*9+10*40-9^2
        58/1000*1024/89+21-24*42/12

        Les operations sont effectuées suivant la priorité des operateurs.
        Priorité 0 : ^
        Priorité 1 : * et /
        Priorité 2 : + et -
        
        Les parenthèses ne sont necessaires que lorsque vous jugez qu'elles le sont vraiment :
        1*2+3 est alors différent de 1*(2+3), puisque 1*2+3 sera evaluée comme (1*2)+3

        Ce programme gère plusieurs fonctions standard (log, ln, sin, cos, ...). Pour ajouter votre propre fonction, il faut
        juste ajouter quelques lignes de codes là où il le faut.

        De la même facon que les fonctions, des constantes predefinies sont utilisées par le programme.
        Elles sont :
                pi : la valeur de pi = 3.14...
                maxint : la valeur maximale que peut avoir un entier
                ans : comme la plupart des calculatrices, ans represente la dernière valeur calculée.
                      Pour obtenir sa valeur actuelle, il suffit juste de taper _ans dans la fenêtre
                      de saisie d'expression
                        (Remarque : _ans n'est utilisée qu'en mode calculatrice)

        Une seule règle pour les fonctions et les constantes:
                Elles doivent commencer par un _
                exemple : _sin(2), _exp(_sin(_tan(45)))
                          _pi, _maxint, _ans


        Et pour les graphiques alors???

        C'est simple, il faut juste utiliser une variable, définir ses bornes et sa valeur d'incrementation.
        Deux règles pour les variables :
                - Elles doivent commencer par un &
                  exemple : &x^2
                - Elles doivent être declarées après l'expression, separée de cette dernière par un ;
                  exemple : &x^2; x=-_pi:_pi:0.1
        Vous pouvez alors utiliser tout nom de variable dès qu'il commence par &
        En particulier, vous pouvez utiliser par exemple la variable sin dans l'expression 1/&sin*_sin(&sin); sin = -1:1:0.05

        Vous pouvez expliciter la declaration de variable de la facon :
        &x^2; x = -2*6/89 : _abs(_sin(6/89)) : _pi/300
        Bien sur, vous pouvez utiliser toute expression correcte dans la declaration de la variable,
        sans toutefois y integrer encore une autre variable
        exemple : &x^2; x = (&t;t=-1:1:0.1) : (2*&t;t=-1:1:0.1) : 0.1 n'est pas correcte

        Important : Il n'y a pas de distinction entre minuscules et majuscules

        Pour les equations parametriques, on ecrit :
        Expression1 : Expression2 ; Variable = BorneInferieure : BorneSuperieure : Incrementation
        exemple : &t*_sin(2*&t):_cos(&t);t=-10*_pi:10*_pi:0.1
                sera interprété comme
                X = &t*_sin(2*&t)
                Y = _cos(&t)
                avec t = [-10pi,10pi] avec un pas d'incrementation 0.05

        Les espaces sont ignorés : 2 3 * 1 4 ^ 21 sera evaluée comme 23*14^21

        Dans tous mes codes, j'ai pris l'habitude de mettre tous les identifiants en anglais.
        


 Conclusion

Je travaille avec C++Builder 6 et j'ai profité au maximum de la maniabilité de la classe AnsiString pour manipuler toutes les chaines. Il suffit juste d'ouvrir le projet MathConsole.bpr dans C++Builder et de compiler le tout.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

07 mai 2007 10:49:59 :
- J'ai trouvé un bug sérieux! Lorsqu'on utilise le format de nombre en puissance de 10 (ex. : 12e+04), le résultat n'est plus fiable. je donne un exemple : 1+2e-01 a été evaluée comme (1+2e)-01 et comme 2e vaut 2, le résultat est tout différent. Mais quand on isole l'expression en puissance de 10 entre parenthèses, le problème est resolu. Pour être correcte, il faut donc ecrire par exemple : 1+(2e-01) J'ai alors integré un partie de code qui verifie que toutes les expressions en puissance de 10 soient bien isolées entre parenthèses, et cela suffit largement à eviter les erreurs parce que les formes XXe+xx ne sont jamais utilisées de manière interne. Voila pour ce bug! - J'ai aussi affiché un indicateur de progression pendant les opérations. Ce n'est pas un contrôle progressbar. Il s'agit d'un compte à rebours des nombres opérations qui restent à faire. Et desormais, vous pouvez annuler toutes les opérations en appuyant sur ECHAP - 3 nouveaux fichiers sont inclus au projet : manifest.h, manifest.rc, manifest.xml. Ils sont là pour donner à la fenêtre le style XP - J'ai inclu une nouvelle capture d'écran dans le ZIP, voici son equation : _sin(&t)*_cos(3*&t) : _sin(3*&t)*_cos(2*&t); t=-_pi-1 : _pi+1 : _pi/100 C'est une équation paramétrique avec X = sin(t)*cos(3t) Y = sin(3t)*cos(2t) t = [-pi-1,pi+1] Et enfin, j'ai inclu l'exe toute prête, sans dépendance j'espère! Je rappelle que le code se compile en C++Builder. J'utilise la version 6.

 Sources du même auteur

Source avec Zip Source avec une capture SE RENDRE COMPTE DU TEMPS PASSE DEVANT SON ORDINATEUR : UN C...

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture ANALYSEUR_LEXICAL_TABLEAU par Donald180v
Source avec Zip Source avec une capture ANALYSEUR LEXICAL par Donald180v
Source avec Zip ANALYSEUR SYNTAXIQUE DU LANGUAGE PASCAL (ANALYSE DESCENDANTE... par wiseman1989
Source avec Zip ANALYSEUR SYNTAXIQUEV(0.1) par kohan95

Commentaires et avis

Commentaire de Joky le 03/05/2007 07:25:23

Je comprend pas, pourquoi aucun commentaire ?
La capture est déjà très attirante.
Je m'attaque au code dans l'après-midi.
Je vais en cours là :D

Commentaire de Joky le 03/05/2007 07:27:03

Ah ok
VCL lol, C++ Builder
Travail Mâché à moitié.

Commentaire de spyusers le 15/05/2007 20:00:50

c'est bon

Commentaire de fabricelepro le 11/10/2008 13:33:42

salut
je pense pas que les utilisatuers aient besoin d'un programme si compliqué commen le tien

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

traceur de graphe en C [ par domain ] Bonjour,Je dois réaliser un traceur de graphe en C avec:- analyseur lexical- analyseur sémantique- évaluateur- afficheurje pense avoir assez bien comp analyseur lexical &syntaxique en c [ par amfa ] salut ,je cherche le code source de lanalyseur lexical & syntaxique en langage c,si vous avez qlq chose sur ce sujet ,aidez moi,merci davance analyseur lexical et syntaxique pour un langage pascal programmer en c++ [ par talzou ] j'ai besoins d'un analyseur lexical et syntaxique de langage pascal programmer en devc++merci analyseur lexical et syntaxique [ par talzou ] salut si vous pouvez m'aider j'ai besoins d'un code source pour un analyseur lexical de langage pascal programmer en c ou c++ merci graphe de visibilité(road map) [ par allia007 ] A partir d’un environnement quelconque définit par des obstacles je veux créer un graphe qui permet de naviguer librement d’une arrête à une autre san calculatrice [ par abdelali62 ] BONJOUR en faite je suis un débutant en programmation en C et je veux que quelqu'un me corrige ce petit programme s'il vous plais#include <stdio.h& Recherche : Algorithme Matrice d'Adjacence -> Dessin du graphe [ par olafleur ] Bonjour, je suis à la recherche d'un algorithme qui me permettrait de prendre la matrice d'adjacence d'un graphe et de dessiner celui-ci. Quelqu'un a les états bloquants dans un graphe [ par bohi ] salut tous le monde,j'ai un projet de structure de données à propos des graphes en c,dans la 1ére étape j'ai proposé une structure de mémorisation des Calculatrice de Nombre Complexe en interfaces graphiques sous Java [ par fadmedi ] Salut tout le monde J'ai besoin de votre aide. j ss un etudiant en 2eme Annee Math-Info,  J'ai un projet a faire concernant une Calculatrice de Nombre tracer un graphe [ par fandestargate ] Voila, apres avoir beaucoup (énormément) travaillé sur mon programme, j'ai enfin réussi a faire tout ce que je voulais faire, j'ai réussis mes iterati


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,207 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales