Outil de calcul numérique (maj 2) ( parser complexe + tracé de courbes )

Soyez le premier à donner votre avis sur cette source.

Vue 6 576 fois - Téléchargée 1 257 fois

Description

L'idée de départ était de faire un parser (analyseur syntaxique), mais je me suis dit qu'en bidouillant un peu on pouvait le transformer en outil de calcul numérique gérant les nombres complexes.
Ce programme permet donc de faire des calculs complexes, mais aussi de définir des variables et des fonctions complexes, et de tracer des courbes dans le plan complexe.
les fonctions complexes disponibles sont les opérateurs +,-,*,^ les fonctions trigonométriques, hyperboliques, logarithmiques, exponentielles.
J'ai rajouté également la fonction factorielle étendue aux réels.

Source / Exemple :


dans le zip.
Lire le fichier texte.

Conclusion :


J'ai eu plusieurs soucis, notamment dans la création dynamique de form (pour afficher les courbes).
Si quelqu'un sait comment afficher plusieurs forms en même temps afin que celles-ci fonctionnent simultanément et de manière indépendante.
Pour contourner le problème j'ai décidé de creer un deuxième prog qui gère les courbes.
Pour communiquer entre les 2 prog j'utilise alors un fichier qui contient les données sur la courbe.
Mais pour gérer ce fichier, j'ai eu un problème, car il doit contenir des tableaux dynamiques et du texte, or la méthode blockwrite ne semble pas fonctionner avec les variables dynamique et ne marche pas avec les strings, j'ai donc du bidouiller avec les méthodes write et blockwrite en transformant les variables dynamiques ce qui n'est vraiment pas pratique, donc si quelqu'un connait une méthode simple pour enregistrer ce type de données, j'en serais ravi.

Avec un peu de travail on pourrait gérer les fonctions à plusieurs variables,les sommes-produits..,et afficher les courbes 3D.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
3 août 2006

salut!
je debute avec vous comme un nouveau membre !
je suis un debutant en delphi !
je commence a telecharger quelques sources et les prochaines fois je donnerai mes commentaires .
et merci d'avance !
He he chez moi ça marche maintenant. Merci. C'est nikel, je rejoins f0xi pour ses remarques.
Je teste tout ça un peu plus profondément et si je remarque quelque chose, je t'appelle ^^.
Messages postés
18
Date d'inscription
mardi 18 avril 2006
Statut
Membre
Dernière intervention
30 mai 2006

P..... d'interopérabilité!
Bon, comme je suis en plein partiels j'ai pas trop le temps.
Je verrais ce que je peux faire la semaine prochaine.
Je n'ai pas désactivé le déclenchement d'erreur, d'ailleurs j'ai rencontré auparavant cette erreur, mais en diminuant les 'and' et 'or' dans chaque if elle a disparue.
En tout cas j'ai l'impression que le problème vient d'un trop grand nombre d'arguments dans les if.
Mais bon c'est difficile de mettre à jour pour une version qu'on a pas
(Delphi 6).
Salut,
Alors déjà c'est sympa d'avoir tout modifié si rapidement.
Mais cela ne marche pas pour autant.
Delphi me signale une erreur dans la fonction IsNombre() et au moins une dizaine de variables non-utilisées. C'est bizarre que sous D7 cela fonctionne ...

Aurais-tu désactivé par mégarde (ou volontairement) le déclenchement d'erreurs ?
Désolé pour l'attente, j'avais completement oublié de te répondre.
Alors, sous D6, après avoir enlevé XPMan et le TXPManifest, je compile, et hop ! ça plante !
C'est dans l'unité parser.pas à la ligne 942 (il y a un if gigantesque).

J'ai essayé de voir d'où provient l'erreur mais comme le code est moyennement faiblement documenté, je n'ai rien trouvé.

Voila.
Sur ce, a+
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.