Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Congruences et division Euclidienne dans Z.
vibra le 26/09/2007 à 19:06
Un programme uniquement utile aux spé maths. La partie congruence permet de simplifier a[n] au maximum (donc donne le reste de la division euclidienne de a/n), et la partie divison euclidienne permet d'effectuer (comme son nom l'indique) une division euclidienne dans Z (que la ti-82 ne peut effectuer).
Code
ClrHome
1->F
Menu ("MENU","CONGRU",A,"/EUCLID",B
Lbl A
2->F
Lbl B
Lbl 2
If F=2
Then
Input "A : " , A
Else
Input "N : " , A
End
If fPart A=/=0
Goto 2
A->E
Lbl 1
If F=2
Then
Input "[N]:" , D
Else
Input "D : " , D
End
Abs D->B
If fPart B=/=0
Goto 1
If F=2 and D<2
Goto 1
(B<0) +int (A/B)
If F=1
Then
Output (4,1,"R=
Output (4,3,A-BAns
Output (5,1,"Q=
Output (5,3,Ans
Else
Output (4,1,"B=
Output (4,3,A-BAns
End
Pause
ClrHome
ratuss le 26/09/2007 à 19:10
tu fais spé maths ? :]vibra le 26/09/2007 à 19:10
Oui.vibra le 27/09/2007 à 18:40
Version réduite ici : J'ai largement réduit le programme en supprimant les erreurs de la version de Ratuss (donc merci à lui et à coc5). Pour ceux qui voudraient un programme juste pour la division euclidienne dans Z, le voici (car en fait le congruant réduit est égal au reste, donc inutile de s'ennuyer avec lui) :
Code
ClrHome
Lbl 1
Input "N : " , A
Inpui "D : " , B
If fPart A=/=0 or fPart B=/=0
Then
Output (3,1,"(A,B) E Z^2
Pause
ClrHome
Goto 1
End
(B<0) + int (A/B
Output (4,1,"R=
Output (4,3,A-BAns
Output (5,1,"Q=
Output (5,3,Ans
Pause
ClrHome
ratuss le 27/09/2007 à 19:01
tu peux encore le réduire !vibra le 28/09/2007 à 08:03
Ben là, à part en supprimant "la présentation", je ne vois pas comment je peux faire !

mad67 le 28/09/2007 à 16:34
mais tu conné pas ratuss il peux tout faire.vibra le 28/09/2007 à 18:27
Ouais, je sais.

coc5 le 28/09/2007 à 18:32
Je pense que l'on peut le raccourcir comme ça

:
Code
ClrHome
While 1
Prompt A,B
If fPart (A+B
Then
Disp "A ET B DOIVENT ","ETRE DES ENTIERS
Pause "RELATIFS
ClrHome
End
End
int (A/B) + (B<0->C
A-CB->B
Output (4,1,"R=
Output (4,3,B
Output (5,1,"Q=
Output (5,3,C
Pause
ClrHome
Sangohan38 le 28/09/2007 à 20:18
A mon avis, on peut encore réduire le prog en remplaçant les 4 derniers Output par des Disp.
Sangohan38coc5 le 28/09/2007 à 20:29
J'y avais pensé mais ça modifie le rendu :karaté:
En effet, les résultats seront donnés sur 4 lignes au lieu de deux

ratuss le 28/09/2007 à 20:44
(arrête mad tu vas me faire rougir

)
mmh joli code coc5 :p !! , mais il y a une erreur pour le while 1 et mettre pause "TEXTE" ca marche pas sur un 82

...
Allez Je tente ma chance si qqun arrive à faire plus court
Code
Lbl 1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT ","ETRE DES ENTIERS","RELATIFS
Pause
goto 1
End
B<0 + int (A/B
Output (4,1,"R=
Output (4,3,A-BAns
Output (5,1,"Q=
Output (5,3,Ans
Pause
ClrHome
Sangohan38 le 28/09/2007 à 21:10
J'essaye de faire plus court:
Code
Lbl 1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT ","ETRE DES ENTIERS","RELATIFS
Pause
goto 1
End
B<0 + int (A/B
Disp "R=",A-BAns,"Q=",Ans
Pause
ClrHome
ratuss le 28/09/2007 à 21:14
Code
Lbl 1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT","ETRE DES ENTIERS","RELATIFS
Pause
goto 1
End
B<0 + int (A/B
Disp "R=",A-BAns,"Q=",Ans

vibra le 29/09/2007 à 09:51
T'es sur que ça :
c'est égale à ça :
Code
int (A/B)->C
If B<0
C+1->C
ratuss le 29/09/2007 à 12:37
En fait B>0 renvoi 1 si l'équation est vraie, et 0 si elle fausse.
C'est assez bien pensé de la part de coc5

coc5 le 29/09/2007 à 12:39
Ratuss a écrit :
Code
Lbl 1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT","ETRE DES ENTIERS","RELATIFS
Pause
goto 1
End
B<0 + int (A/B
Disp "R=",A-BAns,"Q=",Ans

B<0 + int(A/B ne peut pas marcher,car la calculatrice interprête B< (0+int(A/B) , il faut mettre des parenthèses.
Code
Lbl1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT","ETRE DES ENTIERS","RELATIFS
goto 1
End
(B<0) + int (A/B
Disp "R=",A-BAns,"Q=
Pause Ans

ratuss le 29/09/2007 à 12:45
euh bha t'as pas mis de label 1 la .

coc5 le 29/09/2007 à 12:47
Une erreur de frappe, je l'ai corrigé. En j'avais remplacé par un While fPart(ND { } End mais je me suis rendu compte que ça ne pouvait pas marcher

ratuss le 29/09/2007 à 15:08
Lbl1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT","ETRE DES ENTIERS","RELATIFS
Pause
goto 1
End
(B<0) + int (A/B
Disp "R=",A-BAns,"Q=",Ans
(le pause final n'est pas vraiment utile)coc5 le 29/09/2007 à 16:29
Mais il ne coûte aucun octet supplémentaire, donc tant qu'on y est...ratuss le 29/09/2007 à 19:14
Personnellement je le trouve un peu encombrant (je veux dire ça sert plus à rien d'appuyer sur enter

).
coc5 le 30/09/2007 à 14:33
C'est vrai, mais je voulais juste me conformer au rendu du programme de départ.jejechu90 le 08/10/2007 à 19:00
salut je suis en spé maths aussi j'ai tapé le programme, mais il semble y avoir un problème.
je ne connais pas exactement la source du problème, mais quand j'appuie sur goto: ça me renvoie à la ligne ou j'ai marqué
If fPart A=/=0 donc je voudrais savoir si il y a des erreurs d'écritures dans le programme merci !jejechu90 le 08/10/2007 à 19:01
ah désolé j'ai oublié de me connecter au forum pour postervibra le 08/10/2007 à 19:18
En fait, il ne faut pas tapper "=/=", mais le [signe différent de] (en fait on marque =/=, car le site n'accepte pas qu'on mette le vrai signe).jejechu90 le 08/10/2007 à 19:34
ah d'accord! merci beaucoup :dguinuta le 28/10/2007 à 15:33
Salut
Citation
Code
Disp "R=",A-BAns,"Q=",Ans
Ou est ce qu'on peut trouver le Ans ( Je suis sur ti 82stats
fr)
vibra le 28/10/2007 à 17:36
[2nd]+(-.guinuta le 28/10/2007 à 17:55
Merci, pour la calculette française ca donne Rep.
Après avoir modifié ceci, j'ai testé mon programme. J'ai fait une division toute smple du genre 10/3, ca aurait du me donner 1 à R et 3 en Q, le problème, c'est que cela me donne 10 en R et 0 en Q. (J'ai recopié le dernier code du forum celui de ratuss
:
Citation
Code
Lbl1
ClrHome
Prompt N,D
If fPart( ND
Then
Disp "N ET D DOIVENT","ETRE DES ENTIERS","RELATIFS
Pause
goto 1
End
(B<0) + int (A/B
Disp "R=",A-BAns,"Q=",Ans
vibra le 29/10/2007 à 10:34
Ratuss à fait une petite erreur : a la place de la ligne "If fPart(ND", tu met "if fPart(N=/=0 or fPart(D=/=0", car Ratuss a oublié que 10*1,2=12, et coc5 a oublié que 1,2+3,8=5… Mais c'est pas ça l'origine de ton problème. Le problème c'est qu'il a voulu changer de variables et qu'il a oublié de le faire jusque au bout. Mais je te conseille d'aller à la première page, au troisième post, là où il y a marqué en rouge "version réduite ici", où j'ai remis la vertion de Ratuss corrigée.guinuta le 29/10/2007 à 11:08
Ca marche impecLexa001 le 17/11/2007 à 10:34
Bonjour je possede une TI 82 Stat FR
et j'aimerais savoir a quoi correspond fPrompt que je n'ai pas sur ma calculatrice
Merci !vibra le 17/11/2007 à 11:57
Il n'y a pas de fPrompt, que des fPart…Kuniimii le 18/10/2009 à 17:17
Bonjour,
à quoi correspond la touche Ans sur TI-82 stats.fr ??
Merci d'avance.sypotu le 18/10/2009 à 18:50
salut
c'est rép
[ 2nde ]+[ ( - ) ]moi le 04/11/2010 à 23:03
:ClrHome
:Disp "A=BQ+R"
:Prompt A,B
:Disp "Q=",int (a/b),"R=",A-int (A/B)*B
ce programme n'e5t pa5 de moi. Mai5 je l'ai trouvé plu5 5imple et plu5 court que le5 votre5.
et intere55ant de le tran5mettre.... mai5 grave en retard

Sangohan38 le 05/11/2010 à 10:13
Est ce qu'il vérifie tous les cas et donne à 100% une réponse correcte?
Sangohan38
PS: Evite les 5 à la place des s, c'est très moche.linkakro le 05/11/2010 à 21:37
C'est la division euclidienne. Je crois même que c'est celui du site ou un que j'ai improvisé quelque part sur le forum.
Il ne fait pas les congruences, seulement des divisions.miaoudu59 le 22/10/2012 à 18:01
ET en version normale Ti82 vous l'avez le programme des division euclidienne ?

blg_flg le 22/10/2012 à 19:06
Citation
Une division euclidienne dans Z (que la ti-82 ne peut effectuer)
Nan mais je crois que ça veut dire qu'il n'y a pas de fonction spéciale pour la division euclidienne sur TI-82, mais je pense que le code est valable pour 82.
(J'ai pas de 82 pour vérifier, mais je suis quasi certain.)
linkakro le 23/10/2012 à 20:06
Je confirme qu'il n'existe pas de fonction de division euclidienne dans les TI82/82stat(fr)/83.
On recommence en détaillé.
Code anglais :
Code
Disp A=BQ+R
Prompt A,B
int(A/B->Q // on peut utiliser Ans mais c'est moins clair
Disp "Q",Q,"R",A-BQ
Code Français rigoureusement identique :
Code
Disp A=BQ+R
Prompt A,B
partEnt(A/B->Q // on peut utiliser Rép mais c'est moins clair
Disp "Q",Q,"R",A-BQ
Code français valable uniquement avec A positif
Code
Disp A=BQ+R
Prompt A,B
ent(A/B->Q // on peut utiliser Rép mais c'est moins clair
Disp "Q",Q,"R",A-BQ
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.