Congruences et division Euclidienne dans Z. |
Auteur |
Message |
vibra
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Mer 26 Sep 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 |
---------------------- Vive la programmation et vive le vibraphone !!! |
|
|
|
Ratuss
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Mer 26 Sep 2007, 19:10
|
|
|
tu fais spé maths ? :]
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|
vibra
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Mer 26 Sep 2007, 19:10
|
|
|
Oui.
---------------------- Vive la programmation et vive le vibraphone !!! |
|
|
|
vibra
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Jeu 27 Sep 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
|
---------------------- Vive la programmation et vive le vibraphone !!! |
|
|
|
Ratuss
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Jeu 27 Sep 2007, 19:01
|
|
|
tu peux encore le réduire !
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|
vibra
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Ven 28 Sep 2007, 8:03
|
|
|
Ben là, à part en supprimant "la présentation", je ne vois pas comment je peux faire !
---------------------- Vive la programmation et vive le vibraphone !!! |
|
|
|
mad67
Autorisation : Membre
Nb de messages : 630
Inscrit le : Sam 23 Jui 2007, 14:05
|
Posté le : Ven 28 Sep 2007, 16:34
|
|
|
mais tu conné pas ratuss il peux tout faire.
|
|
|
|
vibra
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Ven 28 Sep 2007, 18:27
|
|
|
Ouais, je sais.
---------------------- Vive la programmation et vive le vibraphone !!! |
|
|
|
coc5
Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Ven 28 Sep 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
|
---------------------- Ne cliquez pas ici ! |
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 28 Sep 2007, 20:18
|
|
|
A mon avis, on peut encore réduire le prog en remplaçant les 4 derniers Output par des Disp.
Sangohan38
|
|
|
|
Google_AdSense
|
Publicité
|
|
|
|
|
coc5
Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Ven 28 Sep 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
---------------------- Ne cliquez pas ici ! |
|
|
|
Ratuss
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Ven 28 Sep 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 |
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|
Sangohan38
Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 28 Sep 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
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Ven 28 Sep 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 |
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|
vibra
Autorisation : Membre
Nb de messages : 595
Inscrit le : Mer 04 Avr 2007, 13:29
|
Posté le : Sam 29 Sep 2007, 9:51
|
|
|
T'es sur que ça :
c'est égale à ça :
Code | int (A/B)->C
If B<0
C+1->C |
---------------------- Vive la programmation et vive le vibraphone !!! |
|
|
|
Ratuss
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Sam 29 Sep 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
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|
coc5
Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Sam 29 Sep 2007, 12:39
|
|
|
Citer : Ratuss |
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 |
---------------------- Ne cliquez pas ici ! |
|
|
|
Ratuss
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Sam 29 Sep 2007, 12:45
|
|
|
euh bha t'as pas mis de label 1 la .
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|
coc5
Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
|
Posté le : Sam 29 Sep 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
---------------------- Ne cliquez pas ici ! |
|
|
|
Ratuss
Autorisation : Membre
Nb de messages : 1561
Inscrit le : Mer 01 Mar 2006, 20:41
|
Posté le : Sam 29 Sep 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)
---------------------- --- LISTE DES JEUX POUR TI --- |
|
|
|