mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-05-09 08:25:44 +02:00
[GH-ISSUE #193] [ App CALCULS ] ajout du modulo #70
Labels
No labels
bug
duplicate
easy
enhancement
enhancement
fixed
fixed
good first issue
hard
invalid
pull-request
wontfix
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/Upsilon#70
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @fmOOmf on GitHub (Mar 29, 2022).
Original GitHub issue: https://github.com/UpsilonNumworks/Upsilon/issues/193
Bonjour à toute l'équipe
J'ai peut être mal cherché mais je n'ai pas trouvé la fonction modulo dans l'application
Calculs.Il existe la fonction REM pour les entiers mais elle n'accepte pas les réels.
Or en particulier pour la trigonométrie, il peut être très utile de trouver l'angle "à 2 pi près".
Exemple : -5 pi/3 donne pi/3.
Suggestion : introduire la fonction mod (modulo) qui accepte les nombres reels.
Syntaxe proposée:
mod(x, y)calculerait x modulo y au sens mathématique.mod(x, y, p)permettrait de choisir l'intervalle du résultat.Le 3e paramètre p permettrait d'indiquer que l'on souhaite :
[ 0 y [(p=0 : valeur par défaut)] -y/2 y/2 ](p=1).Ex1 : pour avoir le modulo sur [ 0 2pi [ :
mod( -7pi/3 , 2pi, 0)=> 5pi/3Ou
mod( -7pi/3 , 2pi)=> 5pi/3Ex2 : Pour avoir le résultat entre ] -pi. pi ] (choix par défaut de Upsilon pour le calcul des arguments complexes)
mod( -7pi/3 , 2pi , 1)=> - pi/3Nb :
si x et y sont des entiers avec (x > y), alors
mod(x, y) = rem(x, y)
@Lauryy06 commented on GitHub (Apr 15, 2022):
Le modulo en lui même ne doit pas être compliqué à implémenter (même s'il ne pourra pas simplifier des expressions comprenant des inconnues), mais je ne comprends pas vraiment le troisième paramètre. Il ne peut prendre comme valeur que 0 ou 1 ?
@fmOOmf commented on GitHub (Apr 16, 2022):
Bonjour
oui, c'est ça.
Ma proposition (mais vous pouvez faire différemment) :
C'est la valeur par défaut (p=0 s'il n'est pas passé en paramètre).
!! Attentions aux bornes des intervalles du résultat (inclus/exclus).
Si vous trouvez une syntaxe plus simple pour les élèves, n'hésitez pas !
:-)
@fmOOmf commented on GitHub (Apr 16, 2022):
PS :
Le challenge sera de conserver des fractions de pi quand on sera en radians
Ex : 15pi/4 devra donner 7pi/4 pour p=0 et -pi/4 pour p=1
Après vous pouvez imaginer des résultats complemetaires comme pour cos et sin ...
@Lauryy06 commented on GitHub (Apr 16, 2022):
Je pense que c'est n'est pas très intuitif. A mon avis deux fonctions différentes, un modulo classique et un modulo "mesure principale" qui fonctionne dans ]−π;π] seraient plus adaptées.
@fmOOmf commented on GitHub (Apr 16, 2022):
Oui, ce sera sans doute plus simple. Y a plus qu'à trouver les noms.
:-)
@Overengined commented on GitHub (Mar 24, 2023):
On pourrait les appeler "modulo trigonométrique" et "modulo standard" ?
We could call it "trigonetrical modulo" and "standard modulo" ?
@fmOOmf commented on GitHub (Apr 3, 2023):
Projetons-nous dans la peau du lycéen type. Qu'est-ce qui est le plus intuitif ?
mod(a,b) donne le résultat dans [0 b[.
Il fait mod(18,10) ça donne 8
Il fait mod (-7pi/3,2pi) ça donne 5pi/3
mod pour modulo, ça semble intuitif => Go mod pour le modulo standard selon moi.
Maintenant, quel nom pour la mesure principale de l'angle :
L'avantage de modp ou modt c'est qu'on peut ré-utiliser la commande mod et la transformer en ajoutant une seule lettre ... et que par ordre alphabetique, il sera juste après mod.
J'ai un faible pour modp parce que le p rappelle bien "principal" de "mesure principale".
@Overengined commented on GitHub (Apr 3, 2023):
J’aime l’idée de mettre mod() pour la fonction la plus susceptible d’être utilisée, c’est du bon design.
En revanche mettons nous de nouveau dans la peau d’un lycéen type comme tu le suggère avec beaucoup de perspicacité: je pense qu’il serait plus intéressant d’avoir le « t » de « trigonométrie » dans ma fonction, comme ça , paniqué dans un DS, suant à grosse goute et envisageant sérieusement le seppuku (oui bon j’exagère un peu, mais vous avez l’image), je saurais d’instinct à quoi j’ai affaire.
@fmOOmf commented on GitHub (Apr 4, 2023):
Hello.
Je plussoie alors.
mod(a,b) : donnerait le résultat dans [0 b[.
modt(a) : donnerait le résultat dans ] -pi pi]
Avis aux courageux développeurs :-)