Convers, convertie un nombre en une base quelqueconque. |
Auteur |
Message |
Didouille
Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
|
Posté le : Dim 11 Oct 2009, 22:54
|
|
|
Voilà, je sais pas si il à déjà été fait mais mon programme permet de convertir n'importe quel réel en une base définie. Vous rentrez la base que vous voulez, le réel et ce programme le convertie.
Ce programme à enfaite été crée par un pote à moi en langage C, je l'es enfaite "traduit" en TI-Basic.
Merci à Rézus pour m'avoir aider à gérer les listes.
Voici le code :
Code | ClrHome
1-->dim L1:1-->U
1-->X:1-->Y
Dips "entrez un réel(supérieur ou égale)","à 2, cet entier","sera la base de"
Input "conversion :",B
ClrHome
Disp "entrez un réel"
Input "-->",N
Repeat N(inférieur ou égale)0
int (N/B)-->Q
N-B*Q-->R
Q-->N
U-->dim L1
R-->L1(U)
U+1-->U
End
ClrHome
U-1-->U
Repeat U=0
L1(U)-->S
Output(Y,X,S
If X=13
Then
-3-->X
Y+1-->Y
End
X+4-->X
U-1-->U
End
|
---------------------- --Didouille-- |
|
|
|
Jonas
Invité
|
Posté le : Dim 18 Oct 2009, 0:15
|
|
|
Je n'ai pas vérifié à la main mais ce programme ne semble fonctionner que dans le sens décimal -> binaire non ?
Si on demande une base 16(HEX) et qu'on tape 11 en décimal, on obtient 11 au lieu de B. En effet les variables ABCDEF non pas été attribué à leur valeur décimal ! A développer, la légereté du programme est intéressante !!
|
|
|
|
Didouille
Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
|
Posté le : Dim 18 Oct 2009, 19:55
|
|
|
En effet ce programme en vas que dans ce sens.
Pour les lettres je pense c'est peut être gérable.
Je posterai peut-être une autre version qui corrige des bug d'affichage si la base est trop grande, et je mettrai peut être les lettres pour l'hexadécimale.
---------------------- --Didouille-- |
|
|
|
Didouille
Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
|
Posté le : Mer 21 Oct 2009, 21:41
|
|
|
Voici la version finale :
Code | :1->dim L1:1->U
:1->X:1->Y
:13->E
:4->W
:-3->J
:Lbl 1
:ClrHome
:Disp "ENTREZ UN REEL","COMPRIS ENTRE 2","ET 9999 CET","ENTIER SERA LA","BASE DE","CONVERSION
:Input "-->",B
:If B (supérieur ou égale) 10000:Goto 1
:If B>99
:Then
:6->W
:13->E
:-5->J
:End
:If B<10
:Then
:3->W
:16->E
:-2->J
:End
:ClrHome
:Disp "ENTREZ UN REEL"
:Input "-->",N
:Repeat N (inférieur ou égale) 0
:int (N/B)->Q
:N-B*Q->R
:Q->N
:U->dim L1
:R->L1(U)
:U+1->U
:End
:ClrHome
:U-1->U
:Repeat U=0
:L1(U)->S
:Output(Y,X,S
:If X=E
:Then
:J->X
:Y+1->Y
:End
:If Y>8
:Then
:Pause
:1->Y
:ClrHome
:End
:X+W->X
:U-1->U
:End
|
---------------------- --Didouille-- |
|
|
|
linkakro
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
|
Posté le : Jeu 22 Oct 2009, 19:35
|
|
|
Alors ça marche dans tous les sens à partir d'un réel maintenant ? (pas le temps d'essayer) Je ne comprends pas sous quelle forme doit s'afficher ton résultat.
Je suis en train de programmer moi aussi là dessus mais par un autre système qui fait de n'importe quelle base vers n'importe quelle base. (que je posterai quand il fonctionnera parfaitement)
---------------------- ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)
Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store |
|
|
|
Didouille
Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
|
Posté le : Ven 23 Oct 2009, 18:31
|
|
|
Celui là ne vas que du décimale vers une autre base.
---------------------- --Didouille-- |
|
|
|
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Mer 28 Oct 2009, 14:32
|
|
|
J'avais fait un programme qui marche de décimal à toutes base, même l'hexadecimal, le voici :
Code | :ClrHome
:
:Input "BASE = ",B
:Input "NBRE (DEC) = ",A
:17üD
:
:Repeat Q=D
:iPart (A/B)üQ
:A-(B*Q)üR
:QüA
:Output(5,1,"RESULTAT :"
:If B=16 and R>9:Goto 3
:D-1üD
:Output(7,D,R
:End
:Lbl S
:Stop
:
:Lbl 3
:D-1üD
:If R=10:Output(7,D,"A"
:If R=11:Output(7,D,"B"
:If R=12:Output(7,D,"C"
:If R=13:Output(7,D,"D"
:If R=14:Output(7,D,"E"
:If R=15:Output(7,D,"F"
:Goto S |
|
|
|
|
moi
Invité
|
Posté le : Mer 18 Mai 2011, 9:47
|
|
|
33 ne marche pas
|
|
|
|
moi
Invité
|
Posté le : Mer 18 Mai 2011, 9:49
|
|
|
en base 2 on obtient 1 comme résultat du décimal 33
|
|
|
|