Extension de macroscript : fonctions mathématiques usuelles

Soyez le premier à donner votre avis sur cette source.

Vue 3 539 fois - Téléchargée 184 fois

Description

J'ai vraiment été impressionné par une source déposée par garlslouche (je ne suis pas le seul puisque cette source a reçu un trophée). Voici son lien
http://www.cppfrance.com/code.aspx?ID=20084

J'ai trouvé qu'il serait interessant d'ajouter la gestion des fonctions mathématiques usuelles (cos, sin, sqrt ou ^...). On peut sûrement optimiser, mais j'ai essayé de réduire le nombre de modifications dans l'original.

Si vous êtes interessés, y'a cas remplacer quelques fichiers par ceux du zip.

Merci à garslouche pour m'avoir accompagné dans l'élaboration de cette extension.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Non, c'est bien ce que je disais dans mon premier post.
Il faut se limiter à ces quelques fonctions.
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

tu peux aussi limiter les fonctions dans les expressions à un lot de fct mathématiques. honnêtement, tu trouves ça lisibles de fractionner l'expression?
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Je parlais bien de la simplicité utilisateur (bien que celle du programmeur en soit aussi simplifiée ;)

Pour ce qui est de la manipulation d'arbre binaire, je t'assure que je connais très très bien le sujet. Y compris le calcul formel d'expressions littérales... Ce n'est pas de ça que je parlais. Je voulais juste éviter d'avoir un programme avec des fonctions en paramètre de fonctions du style a=f1(f2(cos(2)), 2+f3(8)) qui selon moi est illisible. Comme je l'ai dit je voulais forcer les scripts à être très accessibles.
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

garslouche, je me permettrai de distinguer simplicité pour le programmeur et pour l'utilisateur ;)

pour l'utilisateur c'est bcp plus simple de faire:

variable = expression

que de factoriser l'expression en plein d'appels de fonction, du style:

var = cos(sin(a) + cos(b))

donnerait

SIN sina, a
COS cosb, b
COS var, sina + sinb

et je sais même pas si je peux faire sina + sinb ou si je dois faire
ADD result, sina, sinb

tu vois ce que je veux dire? d'autant plus que les arbres binaires d'expressions ne sont pas si durs à manier, et offrent une puissance extraordinaire (une fois qu'on a représenté l'expression sous forme d'arbre binaire, écrire une programme qui calcule la dérivée de n'importe quelle fonction est un jeu d'enfant! et je parle pas de valeurs numériques, je parle d'expressions littérales).
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Ouah!!! J'avais même pas vu que cette source avait été déposée... Comme ça fait plaisir :D :D :D

cesdejong m'avait contacté il ya plusieurs mois mais je n'avais pas remarqué que c'était devenu une source...

Alors pour ce qui est de l'interet des fonctions trigo pour macroscript, je vais tout de même donner mon avis :
L'objectif de macroscript etait notamment de demontrer que la programmation peut être rendue accessible sans avoir besoin de faire du C bas niveau. C'est ce qui explique mon choix de simplifier le langage autant que possible.
L'autre objectif était d'automatiser des actions. Supposons par exemple que vous avez un logiciel qui demande une confirmation à chaque lancement de windows, un petit script... et zou, le clic se fait tout seul.
Dans cette optique on peut imaginer utiliser les fonctions cos et sin pour faire dessiner un rond à la souris dans paint par exemple.
Conclusion ces fonctions sont utiles! D'autant plus qu'elles n'entravent pas le reste des fonctionnalités de MacroScript.

Le seul point qui me dérange, c'est que - toujours dans un soucis de simplicité d'écriture et de lecture du script - les fonctions MacroScript ne devraient pas être utilisées à l'intérieur d'une expression.
Par exemple il faudrait ecrire
COS a, PI/2
plutot que
a = cos(PI/2)

Ceci-dit je reconnais que la première écriture est moins lisible. Le risque c'est la dérive, c'est-à-dire de converger vers un langage aussi complexe que le C.

En conclusion, il me semble que ces fonctions sont un plus à MacroScript mais qu'il ne faut pas essayer d'aller plus loin dans cette voie au risque de perdre la simplicité du langage.


En tout cas ça fait plaisir de générer toutes ces réactions :)
Afficher les 14 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.