COMPILATEUR D'EXPRESSIONS MATHEMATIQUES

cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
- 5 janv. 2003 à 23:31
amiga68
Messages postés
54
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
21 décembre 2009
- 6 avril 2013 à 12:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12274-compilateur-d-expressions-mathematiques

amiga68
Messages postés
54
Date d'inscription
dimanche 23 février 2003
Statut
Membre
Dernière intervention
21 décembre 2009

6 avril 2013 à 12:22
Ben ça fait longtemps ?

Je suis revenu voir cette excellente source

Proposition d'ajout : cube (³ Alt 0179)

Dans les constantes : ajout de MAX8CUBICROOT

const
MAX_FACT = 170;
MAX_SQR = 1e154;
//****************************************************************
MAX_CUBICROOT = 5.5396582567544642107741681454952e102;
//****************************************************************

Dans la partie implémentation, (function Expr1st: Double;)

Après le carré :

'³' : begin
if Result > MAX_CUBICROOT then
begin
Error := Idx;
Description := Err_OverFlow;
Exit;
end;
Result := Result * Result * Result ;
Next;
end;
cs_gege58
Messages postés
15
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 janvier 2009

15 mai 2005 à 19:45
Visiblement, il y a unanimité. Moi, je n'ai pas trouve le mode d'emploi, ni même une seule ligne de commentaire ??? !!!
Scalpweb
Messages postés
1467
Date d'inscription
samedi 13 mars 2004
Statut
Membre
Dernière intervention
5 mai 2010
4
1 août 2004 à 12:58
Exelente source !
cs_grandvizir
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
22
7 mars 2004 à 18:53
Moi, j'ai regardé et c'est bien fait. Surtout le ^ montrant où est l'erreur La présentation m'a trop fait penser à Derive de Ti. De plus j'ai quelques idées:

> gérer le caractère "³" pour le cube.

> faire une variable REP ou ANS pour récupérer le dernier résultat, voir ANS(n) pour récupérer le nnième dernier résultat.

> la sélection qui met dans le presse-papier n'est pas évident. Le truc pas mal: Memo.onMouseUp:=<Edit.SelText:=Memo.SelText>. C'est copié direct dans l'edit sans passer par le presse-papier, parce que si j'ai déjà un truc dedans, je vais pas être content.

> pourquoi ne pas utiliser EXTENDED au lieu de DOUBLE. C'est bien plus grand.

> Pourquoi la virgule n'est pas supportée ?

> faire une formule (genre DEFINE x AS 3,45) définissant une variable X dans un TStringList et utilisable dans un calcul suivant, car l'interpréteur reconnaitra cette variable. Parce que si j'ai que l'exe, alors je peux pas toucher au source pour le faire.

> WordWrap=false pour le Memo

> améliorer la sortie. J'avais chargé l'exe, et détruit le répertoire juste après. Ce qui fait que l'exe ne se ferme plus à cause de <"Ne peut pas créer History.txt">. Remplacer par:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
StrList.SaveToFile(HistoryFile);
except
end;
end;
jolijoli
Messages postés
3
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
20 décembre 2010

22 oct. 2003 à 19:16
Pour un premier contact
tout cela me parait très intéressant et bien fait.
Merci
Afficher les 22 commentaires