nCalc, la puissance de calcul de l'OS officiel avec Ndl3ss
Posted: 01 May 2012, 15:20
Comme vous le savez sans doute, le Basic pour Nspire est très bien pour faire des maths et ce qui s'y rapporte, ce qui a valu un grand nombre de libraires (numtheory, ect...).
Mais si on veux faire des jeux ou de la programmation graphique, le Basic n'est vraiment pas fait pour ça.
On a donc le Lua, mais ce langage reste quand même lent par rapport à du code compilé, et connait bon nombre de limitations. Mais jusqu'alors il avait un bel avantage sur la programmation native grâce à ndless: on pouvait utiliser le moteur de calcul de la nspire (et donc le CAS sur les modèles CAS) en Lua, sans graves limitations venant du fait que les programmes Ndless ne sont pas formés comme l'OS les attend pour y stocker des variables.
J'ai donc décidé de faire une libraire qui utilise le moteur de calcul de la Nspire, afin de pouvoir faire de jolis programmes de math et de physique pour Ndless, chose franchement difficile sans ce que vous connaissez peut-être sous le nom de math.eval() [lua] ou expr() [basic].
Pour les connaisseurs, je rappelle que math.eval() renvoie un nombre. Ici, la librairie pourra faire en gros tout ce que permet expr() (c'est à dire renvoyer tous types de résultats).
Je n'ai pas encore commencé la librairie en tant que telle (c'est déjà bien long de trouver où est le moteur de calcul et comment l'utiliser), et le programme n'est pour l'instant utilisable qu'en mode console (en gros à des fins de debug). Au passage, merci à Compu pour NspireIO .
Voici donc un aperçu de la console pour le moment:
(le caractère étrange a << est lié au fait que la console ne gère que les strings ASCII, et que le moteur de calcul renvoie un résultat en UTF-8.)
Pour l'instant il y a deux fonctions principales. Une qui corrige la chaine d'entrée (casse, espaces...), et une qui calcule. Au passage, tel que le moteur est fait, je n'ai pas trouvé de fonction qui rajoute les parenthèses oubliées (sur l'OS, elles sont rajoutées pendant la frappe et non pendant le calcul).
Je m'adresse donc maintenant à vous. Si jamais des gens sont intéressés par cette libraire, dites moi ce que vous souhaiteriez comme fonctions, et s'il y a d'autres choses que vous aimeriez bien voir s'ajouter à cette librairie .
(Techniquement, pour l'instant, on donne un string ASCII ou UTF-8 (codé sur 2 octets) en entrée et en retour on reçoit un string ASCII ou UTF-8 contenant le string "corrigé" ou calculé).
Mais si on veux faire des jeux ou de la programmation graphique, le Basic n'est vraiment pas fait pour ça.
On a donc le Lua, mais ce langage reste quand même lent par rapport à du code compilé, et connait bon nombre de limitations. Mais jusqu'alors il avait un bel avantage sur la programmation native grâce à ndless: on pouvait utiliser le moteur de calcul de la nspire (et donc le CAS sur les modèles CAS) en Lua, sans graves limitations venant du fait que les programmes Ndless ne sont pas formés comme l'OS les attend pour y stocker des variables.
J'ai donc décidé de faire une libraire qui utilise le moteur de calcul de la Nspire, afin de pouvoir faire de jolis programmes de math et de physique pour Ndless, chose franchement difficile sans ce que vous connaissez peut-être sous le nom de math.eval() [lua] ou expr() [basic].
Pour les connaisseurs, je rappelle que math.eval() renvoie un nombre. Ici, la librairie pourra faire en gros tout ce que permet expr() (c'est à dire renvoyer tous types de résultats).
Je n'ai pas encore commencé la librairie en tant que telle (c'est déjà bien long de trouver où est le moteur de calcul et comment l'utiliser), et le programme n'est pour l'instant utilisable qu'en mode console (en gros à des fins de debug). Au passage, merci à Compu pour NspireIO .
Voici donc un aperçu de la console pour le moment:
(le caractère étrange a << est lié au fait que la console ne gère que les strings ASCII, et que le moteur de calcul renvoie un résultat en UTF-8.)
Pour l'instant il y a deux fonctions principales. Une qui corrige la chaine d'entrée (casse, espaces...), et une qui calcule. Au passage, tel que le moteur est fait, je n'ai pas trouvé de fonction qui rajoute les parenthèses oubliées (sur l'OS, elles sont rajoutées pendant la frappe et non pendant le calcul).
Je m'adresse donc maintenant à vous. Si jamais des gens sont intéressés par cette libraire, dites moi ce que vous souhaiteriez comme fonctions, et s'il y a d'autres choses que vous aimeriez bien voir s'ajouter à cette librairie .
(Techniquement, pour l'instant, on donne un string ASCII ou UTF-8 (codé sur 2 octets) en entrée et en retour on reçoit un string ASCII ou UTF-8 contenant le string "corrigé" ou calculé).