EXTENSION DE MACROSCRIPT : FONCTIONS MATHÉMATIQUES USUELLES

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 19 sept. 2004 à 15:40
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 - 20 avril 2005 à 14:09
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/26271-extension-de-macroscript-fonctions-mathematiques-usuelles

garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
20 avril 2005 à 14:09
Non, c'est bien ce que je disais dans mon premier post.
Il faut se limiter à ces quelques fonctions.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 avril 2005 à 14:05
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?
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
20 avril 2005 à 09:44
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.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 avril 2005 à 21:02
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).
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
19 avril 2005 à 20:56
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 :)
cesdejong Messages postés 16 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 14 juin 2006
22 sept. 2004 à 22:22
attend, ou bien on ne parle pas du tout de la même chose, ou bien ma source s'est transformée en librairie trigonométrique à l'insu de mon plein gré.

Voilà ce qu'on peut lire sur le site de Macroscript :http://macroscript.free.fr/accueil.php4

"MacroScript est un langage GRATUIT très simple et EN FRANÇAIS permettant d'automatiser de nombreuses actions dans Windows®. Il permet entre autres :

de simuler l'utilisation du clavier
de simuler l'utilisation de la souris
de lancer des programmes
d'éteindre l'ordinateur
de le redémarrer
de télécharger automatiquement divers fichiers..."

c'est bien loin d'être une calculatrice.
En revanche Macroscript est aussi capable de traduire les requètes
a=3
b = a*2.5
MESSAGE "b vaut " b

Ca nous affiche b = 7.5

Dans mon cas, l'automatisation des actions windows passe en 2nd plan, c'est plutôt l'aspect interpréteur qui me séduit, je lui demande de m'équilibrer un point de vol d'un avion connaissant sa polaire sa masse son altitude et plein de trucs, et voilà, après qqs modifs Macroscript devient l'interface entre mes requetes et un noyau de calcul.

Mais avant ça si on peut faire b=a*2.5 pourquoi ne ferait t'on pas b = sin(PI) ?

après, Macroscript convertit la chaine Pi en sa valeur de 3.1416..., reconnait que l'opérateur sin(...) fait appel à la fonction sinus de math.h et donc b=0.
C'est pas plus compliqué que ça et la multiprécision n'intervient pas particulièrement dans cette lib, on passe un float à la fonction sin, le résultat n'a rien de remarquable.

Je crois plutôt que c'est l'utilisation qui peut en être faite qui amène à réflechir.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 sept. 2004 à 21:50
66528749859854555555684687685854963745487->a
disp cos(a)
ça te viendrais a l'idée de taper ça sur ta calto un jour ??? même si t'es en degré ça reviens à faire :
66528749859854555555684687685854963745487->a
a%360->a
disp cos(a)

et donc, t'as pas besoin d'avoir un nombre énorme pour des angles.
Ce que je voulais dire, ce n'est pas que la trigonométrie est innutile, ni que reprndre les projets de qqn c'est mal, mais simplement que pour la trigo, ta multiprécision peut être utile, mais faut déja trouver a quoi ^^ mais avoir un nombre énorme comme ce que propose ton programme est totalement innutile, en radian, 0<=angle<=6.2833
donc, ta précision peut être utile, mais dansce cas pourquois ne pas coder l'emplacement de la virgule en dur ? pour optimiser encore de la place ? et même, j'aimerais que qqn m'expliques quand on a besion d'une valeur d'angle qui aura une précision a 10 ^-15 ? la nasa ?

Donc, voila, un angle devrait ou avoir un type a soi, ou rester en double, ce qui je penses satisfait pas mal de monde déja... très peu de personnes ont besoin de plus de 2 décimales pour un nombre normal, 4 au maximum pour un angle, mais pas autant que ta lib le proposes...

Ta lib a un interet au niveau des fonctions de trigo au niveau des tangeante car on peut s'aprocher de l'infinit, quand l'angle de raproche de pi/2 mais encore une fois, le résultat paraitre impressionnant mais inutile...

Joli travail, mais peu de gens s'en servirons...
cesdejong Messages postés 16 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 14 juin 2006
22 sept. 2004 à 21:32
je vois pas le problème
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 sept. 2004 à 14:57
excusez moi, mais le cos d'un angle de a sera le même que celui de a%(2pi), sufit de faire gaffe aux intervalles pour voir que ça sert a rien de cherhcer plus loin, c'ets vrai que cette lib permet d'avoir ça en plus précis, mais bon, je ne suis pas convaincu que ça serve a grand chose... (on a pas besoin d'un nouveau type pur un angle)
cesdejong Messages postés 16 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 14 juin 2006
22 sept. 2004 à 00:22
En fait, le projet de garslouche est vraiment hyper puissant. Lui le voyait plutôt (enfin je crois) comme un moyen de dialoguer avec windows, dans ce cas là les fonctions trigo on s'en fout effectivement. Moi j'y vois la possibilité de l'utiliser comme interface pour tt un tas de programmes variés, permettant de traduire des requêtes, gerer des variables, des tables.
Très franchement, c'est super agréable de travailler avec, y'a une vraie ossature.
Après c'est vrai qu'on peut s'interroger sur l'interêt qu'il y a à partager ces petites extensions. Mais comme vous l'avez dit, la trigonométrie reste un élément incontournable des maths et n'est pas un truc hyper spécifique. Ca ne peut donc pas faire de mal...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 sept. 2004 à 07:47
la trigonométrie c'est un gros bout des mathématiques coucou, faut surtout pas jeter ces fonctions, c'est une bonne idée de les avoir codées. et c'est chouette de voir qq un travailler pour étendre le projet de qq un d'autre :)
cs_Xs Messages postés 368 Date d'inscription mercredi 14 novembre 2001 Statut Membre Dernière intervention 1 septembre 2008
19 sept. 2004 à 22:10
Ah celle la elle est bonne quand même.
sin, cos et tan qui servent pas mdrrrrrr :D
D'ou l'interet des modulos !
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 sept. 2004 à 20:01
cos, sin et tan, ça sert vraiment a qqch ?
la fonction réciproque de tan, ok, mais pas les autres, pour les autres, on un ensemble de définition trop petit pour que cette lib soit interessante...

sinon, bravo
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
19 sept. 2004 à 15:40
Héhé, MacroScript n'est pas mort, ça fait plaisir :)
Rejoignez-nous