EXTENSION DE MACROSCRIPT : FONCTIONS MATHÉMATIQUES USUELLES
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 2007
-
19 sept. 2004 à 15:40
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 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.
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 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és16Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention14 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é.
"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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és16Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention14 juin 2006 22 sept. 2004 à 21:32
je vois pas le problème
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és16Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention14 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és368Date d'inscriptionmercredi 14 novembre 2001StatutMembreDerniè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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 19 sept. 2004 à 15:40
Héhé, MacroScript n'est pas mort, ça fait plaisir :)
20 avril 2005 à 14:09
Il faut se limiter à ces quelques fonctions.
20 avril 2005 à 14:05
20 avril 2005 à 09:44
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.
19 avril 2005 à 21:02
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).
19 avril 2005 à 20:56
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 :)
22 sept. 2004 à 22:22
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.
22 sept. 2004 à 21:50
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...
22 sept. 2004 à 21:32
22 sept. 2004 à 14:57
22 sept. 2004 à 00:22
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...
20 sept. 2004 à 07:47
19 sept. 2004 à 22:10
sin, cos et tan qui servent pas mdrrrrrr :D
D'ou l'interet des modulos !
19 sept. 2004 à 20:01
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
19 sept. 2004 à 15:40