Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 29468
Réponses : 21
Type : discussion
Etat : réponses autorisées

Convertisseur decimal>binaire - Page 1 / 2

Samos le 05/07/2012 à 15:26
Voila un convertisseur decimal>binaire!
L'utilité? bonne question bigmouth.gif

Code

Input "DECIMAL=",A
Delvar M
Clrlist L1,L2
Repeat not(iPart(A
M+1->M
iPart(A/2->C
A-2C->B
C->A
B->L1(M
End
                //Bon on a le nombre mais il est à l'envers!
dim(L1->dim(L2
For(X,1,dim(L1
L1(X)->L2(dim(L1)+1-X)
End
Pause L2
blg_flg le 05/07/2012 à 16:04
Tu vas faire un convertisseur binaire>décimal après? winkle.gif
Samos le 06/07/2012 à 11:23
Un logarithme ? extraterre.gif notre professeur de math utilisait ce mot pour nous faire peur cette année godgrace.gif
d'après wikipedia
Citation
Le logarithme de base b d'un nombre réel positif est la puissance à laquelle il faut élever la base b pour obtenir ce nombre. Par exemple, le logarithme de mille en base dix est 3, car 1000 = 103. Le logarithme de x en base b est noté logb(crazy.gif. Ainsi log10(1000) = 3.

Pour les puissances de 10 ça va mais pour les autres nombres extraterre.gif

ta version est surement meilleure mais je vais quand même poster mon convertisseur binaire>decimal (d'ailleurs le fait de pouvoir choisir sa base m'a impressioné ahh.gif )

Code

:ClrList L5,L6
:Input "BIN LIST",L5
:dim(L5)->B:B->dim(L6   // essayé dim(L5)->dim(L6 mais ça a planté
:For(A,1,dim(L5
:L5(A->L6(B-A+1
:End
:ClrList L5
:1->B
:For(A,1,dim(L6
:B->L5(A
:2B->B
:End
:sum(L5L6->B
:Disp B
EGUL le 06/07/2012 à 21:01
Oh le petit niveau . . .
Moi j'en ai un qui convertit n'importe quelle base en n'importe quelle autre
Samos le 06/07/2012 à 21:13
Pourquoi ne pas le partager toi qui est de si haut niveau! godgrace.gif
EGUL le 07/07/2012 à 11:10
Le voici
Code

EffEcr
0->B
While B<2
Input "BASE NOMBRE?",B
End
0->C
While C<1
Input "NOMBRE DE CHIFFRES?",C
End
0->T
For(D,1,C
EffEcr
Output(3,1,"NUMERO DU CHIFFRE DE GAUCHE A DROITE :
Output(5,8,D
Input "?",A
A*B^(C-D)+T->T
End
Input "BASE CONVERSION?",F
0->E
-1->G
While E<=T
1+G->G
0->H
While E<=T et H<F-1
H+1->H
H*F^G->E
End
End
H-1->H
If H=0
Then
F-1->H
G-1->G
End
H*F^G->E
G+1->I
1->dim(¤BASES            ¤ <=> au petit L         
EffListe ¤BASES
I->dim(¤BASES
H->¤BASES(1
T-E->T
For(J,1,G
-1->K
0->E
While E<=T
K+1->K
K*F^(G-J)->E
End
K-1->K
K->¤BASES(J+1
T-K*F^(G-J)>T
End
Disp ¤BASES
Samos le 08/07/2012 à 14:51
J'ai essayé ton programme mais il ne fonctionne pas, j'ai du mal recopier quelque part...
Je rentre 10 en base nombre
2 en nombre chiffre
1 en premier chiffre puis 5 en 2eme chiffre
2 en base conversion et la j'obtient
{2,-2,-2,3,1}
D'ailleurs je ne comprend pas le principe crazy.gif
linkakro le 10/07/2012 à 01:23
EGUL a écrit :
Oh le petit niveau . . .
Moi j'en ai un qui convertit n'importe quelle base en n'importe quelle autre
Moi aussi j'ai fait mieux mais attention à la manière de le dire car cela peut être blessant pour les débutants. (même si malheureusement je sais pas avec certitude la meilleure manière de l'aborder)
Si j'avais été le débutant de ce sujet j'aurais été blessé j'immagine.

Tant que nous sommes là, je poste mon programme le plus récent (au moment où je poste ceci) de conversion de bases. http://tout82.free.fr/forum/sujet.php?sujet=1745
Code
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZÁ"ü ( ) Str1
Input "BASE=",X
Input "VERS=",Y
Input "X=",Str2   // saisir nombre en chiffres et lettres, comme hexadécimal
length(Str2ü ( ) N
0ü ( ) P
For(W,0,N-1     // Conversion de base quelconque à 10
inString(Str1,sub(Str2,N-W,1))-1
P+Ans*X^Wü ( ) P
End
If not(P
Stop
Lbl R
Pü ( ) Z    // Si vous supprimmez le menu restart (et ce qui suit), vous pouvez ...
" "ü ( ) Str2                     //... supprimmer cette ligne et remplacer Z par P
Repeat Q=0   // Conversion de base 10 à quelconque
iPart(Z/Yü ( ) Q
Z-YQü ( ) R
Qü ( ) Z
sub(Str1,R+1,1)+Str2ü ( ) Str2
End
Pause Str2
Menu("RESTART","STOP",Q,"RECONVERTIR",S
Lbl S
Yü ( ) X
Input "RECONV=",Y
Goto R
Lbl Q
Si on veut traiter correctement les bases au delà de 36, et plus généralement d'une manière similaire à EGUL, il est préférable d'utiliser ce programme (également de moi) :
Code
Input "BASE=",X
Input "VERS=",Y
Input L1    // saisir une liste, par exemple {8,12,3 pour dire 8C3 en base 16
0ü ( ) P
dim(L1ü ( ) N
For(W,1,N      // conversion de la liste en base quelconque vers nombre décimal
P+L1(W)X^(N-Wü ( ) P
End
If not(P
Stop
Lbl R
Pü ( ) Z          // même remarque que pour l'autre prog
DelVar W
ClrList L1
Repeat Q=0   // conversion du nombre vers liste dans une base quelconque
W+1ü ( ) W
iPart(Z/Yü ( ) Q
Z-YQü ( ) L1(W
Qü ( ) Z
End
L1ü ( ) L2
For(V,1,W    // retourner la liste pour avoir les chiffres dans le bon ordre
L2(W+1-Vü ( ) L1(V
End
ClrList L2
Pause L1
Menu("RESTART","STOP",Q,"RECONVERTIR",S
Lbl S
Yü ( ) X
Input "RECONV=",Y
Goto R
Lbl Q
The K le 16/07/2012 à 14:43
Le meilleur que j'ai vu jusque la est celui de mdr1 dans le tuto dans ma signature. À côté du sien, on est tous des petits joueurs ici ... winkle.gif
linkakro le 16/07/2012 à 19:37
Mon programme est (presque) aussi bien que le sien : convertisseur de mdr1.

-----
EDIT: il a optimisé son programme encore plus que dans mes derniers souvenirs, donc il demeure finalement bien plus léger que le mien.
De plus je n'avais pas à l'époque compris le but d'absoluement toutes ses astuces.

Cependant,
Mon programme occupe 265 octets de base.
Si j'enlève mes options, j'arrive à 189 octets.
Et mdr1 occupe 184 octets

Il me bat avec l'usage de Ans, une astuce avec inString, et une meilleure gestion des variables.
The K le 16/07/2012 à 20:11
Hé ouais tongue.gif
rossj le 22/09/2013 à 10:07
comment vous faite pour trouver ClrList et Delvar sur la machine" ti 82" ? merci
m@thieu41 le 22/09/2013 à 11:14
Bonjour,
DelVar est dans l'onglet "prgm".
Tu peux l'utiliser à la place de ClrList.
linkakro le 22/09/2013 à 12:26
... et ClrList est dans le menu [stat].
Je suis contre l'usage de DelVar sur les listes, car cela pertube l'éditeur de listes, mais chacun fait comme il veut.

Ma signature donne le catalogue de toutes les fonctions.
pito2901 le 24/10/2013 à 16:11
Cependant ld, tu as écris:

Citation
Convertir E7B6 (Base 16) en décimal (Base 10).
-> Menu -> "X à 10" -> X=? 16 -> N=? E7B6 -> Entrer. On a 14262


Et le résultat est (59318)10.
Dragarta le 13/06/2015 à 16:31
Salut, comment on fait le ¤ sur une ti82 stat ??
Mingerton le 13/06/2015 à 16:51
Où vois tu ce caractère ?

Si tu parles du ü, c'est une convention du forum pour la touche sto (sor ton clavier). Si tu passes ta souris dessus tu verras même la touche.
ld le 14/06/2015 à 12:27
"¤" est ici le petit "L" des listes que tu trouveras dans le catalogue sous "jed("
Razteck le 17/09/2015 à 21:26
Vous étes nul il y a aucun programme qui ne fonctionne jusqu'au bout. Toujours des erreur à corriger. La moindre des chose quand on poste des programmes c'est de vérifier qu'ils marchent.
m@thieu41 le 18/09/2015 à 18:43
La moindre des choses quand on est debile c'est de s acheter un cerveau, ou au moins de faire semblant.