Poster un nouveau sujet Poster une réponse Page: 1,      >>
conversion de toutes les bases (2,8,10,16 et les autres)
Auteur Message
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 02 Nov 2009, 22:54   Citer 

Celui-ci converti n'importe quel nombre entier naturel de n'importe quelle base vers n'importe quelle autre base. (on choisit même si on on veut base 16 normal ou héxadécimal)
Le principal défaut est que l'utilisateur doit préalablement préciser le nombre de chiffres. goutte.gif (vous pouvez mettre des zéros au début).
Attention ! si la base est par exemple 13 alors un "chiffre" peut être 12 c'est à dire 2 chiffres décimaux couplés.

(attention au zéro et au "o" en recopiant)


Code
Normal
Flottant
EffEcr
EffListe L1
input "BASE DEPART ",X
input "BASE FINALE ",Y
input "NBR CHIFR",N


If Y=16
Then
1->H
Menu( "RESULTAT HEXA ?","HEXADECIMAL",1,"16",0
Lbl 0
0->H
Lbl 1
End
10->A
11->B
12->C
13->D
14->E
15->F


Disp "CHIFFRES [inférieur ou égal] "
output(4,13,X-1
For(W,1,N
output(5,14,W
output(4,14,"   "
input"Z ",Z
Z->L1(W)
End
0->P
For(W,1,N
L1(W)*X^(N-W)+P->P
End
ent(log(P))+1->o
10^o -1 ->K
0->M
0->J
repeat J[suppérieur ou égal]K
M+1->M
Y^M -1 ->J
End
For (W,1,M
ent(P/Y^(M-W))->L1(W)
P-Y^(M-W)*L1(W)->P
End


EffEcr
Disp "BASE"
output(1,7,Y
If M>35 ou ent(log(Y))>1
Then
Disp "AFFICHAGE","IMPOSSIBLE.","RESULTAT DANS L1"
Else
1->U
2->V
For(W,1,M
output(V,U,L1(W)


If Y=16 et H=1
Then
IF L1(W)=10
output(V,U," A"
IF L1(W)=11
output(V,U," B"
IF L1(W)=12
output(V,U," C"
IF L1(W)=13
output(V,U," D"
IF L1(W)=14
output(V,U," E"
IF L1(W)=15
output(V,U," F"
End


3+U->U
If W-ent(W/5)*5=0
Then
V+1->V
1->U
End
End
End



La fonction héxadécimal "pur" (avec des lettres) est facultative, et l'affichage spécial du résultat est juste lisible et plus rapide que le menu stats ainsi que compatible avec l'héxadémal pur contrairement aux listes.

----------------------
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
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 16 Nov 2009, 21:08   Citer 

Nouvelle version. bigmouth.gif

Conversion " universelle " de base quelconque vers autre base quelconque (seulement entiers naturels).
Saisies en base 10 et 16 simplifiées par rapport à la première version.
Saisie d'un nombre illimité et pas prédéfinit de "chiffres" (une base suppérieure à 10 peut provoquer des rangs de "chiffre" composés de 2 digits (excepté l'héxadécimal avec l'option nbr+littéral activé))
La saisie illimitée permet des valeurs élevées donc elles comportent un risque d'erreur lorsque ces valeurs sont trop élevées. (à cause des arrondis de la calculatrice vers 10^14)
Pour quitter la saisie, appuyez sur la touche virgule du bas entre une validation d'étape de saisie et le passage à l'étape suivante. Entrer pour valider l'étape ou continuer à l'étape suivante de saisie.


Code
Normal
Flottant
EffEcr
EffListe L1
input "BASE DEPART ",X
input "FINAL ",Y
Disp "CHIFR <"
output(3,9,X)
If X=10
Then
input "P ",P
ent(log(P))+1->N
goto 9
End
10->A
11->B
12->C
13->D
14->E
15->F
0->N
Lbl 2
0->T
N+1->N
output(5,14,N
output(4,14,"   "
input "Z ",Z
Z->L1(N)
Repeat T=103
codetouche->T
If T=105
goto 2
End
Lbl 9
0->H
If Y=16
Then
Menu("RESULTAT LETTRE","HEXA",1,"16",0
Lbl 1
1->H
Lbl 0
End
If X=10
goto 10
0->P
For(W,1,N)
L1(W)*X^(N-W)+P->P
End
Lbl 10
P->Z
0->M
0->J
Repeat J[> ou égal]P
M+1->M
J+(Y-1)*Y^(M-1)->J
End
EffListe L1
For(W,1,M)
ent(P/Y^(M-W))->L1(W)
P-Y^(M-W)*L1(W)->P
End
EffEcr
Disp "BASE"
output(1,7,Y
If Y=10
Disp Z
If H=0 et Y[égal barré]10
Pause L1
If H=1
Then
For(W,1,M
If L1(W)<10
Disp L1(W)
If L1(W)=10
Disp "A"
If L1(W)=11
Disp "B"
If L1(W)=12
Disp "C"
If L1(W)=13
Disp "D"
If L1(W)=14
Disp "E"
If L1(W)=15
Disp "F"
Pause
End
End



----------------------
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
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 02 Juil 2010, 0:20   Citer 

Depuis j'ai amélioré ce programme. Il a été uploadé par alexvire et le lien est sur son site.
La saisie est nettement plus propre. Il est optimisé avec les chaînes et un résultat peu se reconvertir. (toutes les bases fonctionnent mais certaines non-usuelles necessitent des 0)

----------------------
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
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 03 Juil 2010, 19:06   Citer 

très bien!

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 02 Fév 2011, 19:23   Citer 

Voici une VERSION MODERNE DE CONVERS
TI83/82stat(fr)

-Toutes les bases dans tous les sens. Quoique cette dernière version s'arrète à 36 (lettre Z). (avant chaque chiffre était écrit sur plusieurs digits)
-reconversion
-simple saisie à la main des chiffres et des lettres
//-avertissement lors d'un dépassement de capacité (13 chiffres en décimal)


Code
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"->Str1
Input "BASE=",X
Input "VERS=",Y
Input "X=",Str2
length(Str2->N
0->P
For(W,1,N
inString(Str1,sub(Str2,W,1))-1->Q
Q*X^(N-W)+P->P
End
If P=0
Stop
P->Z
Lbl R
" "->Str2
Repeat Q=0
iPart(P/Y->Q
P-YQ->R
Q->P
sub(Str1,R+1,1)+Str2->Str2
End
  /////// facultatif, avertit du risque d'arrondit
  // iPart(log((Z-1)))-1->S
  // 1+iPart(log(10^(S)iPart((Z-1)10^(-S))))->T
  // If T>13
  // Disp "TROP GRAND"
Pause Str2
Menu("RESTART","STOP",Q,"RECONVERTIR",S
Lbl S
Y->X
Input "RECONV=",Y
Z->P
Goto R
Lbl Q

EDIT 20/8/2012 : ce porgramme est pratiquement aussi bien que l'emblématique programme de MDR1 sur le Site-Du-Zéro, cependant il propose une reconversion et je l'ai écrit seul, et mdr1 a plus optimisé.

----------------------
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
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 03 Fév 2011, 21:18   Citer 

super!!

j'adore ton prog (j'avais l'ancienne version), je l'utilise régulièrement parce que j'essaie de coder des sprites en base 27 (plutot que de coder en 8*8 en hexa) dans des programmes en basic, enfin, j'essaie de faire du rentable et de faire tenir un sprite dans un ou deux caractères.(échec pour l'instant.)

la version précédente marchait, mais je ne suis pas contre une nouvelle.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 03 Fév 2011, 23:32   Citer 

Moi aussi j'ai bossé sur des sprites ainsi ! Et je n'ai moi non plus pas aboutit.

----------------------
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
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 07 Fév 2011, 13:49   Citer 

Houa ! Moi aussi j'ai fait un prgm de se genre...
Le tiens me semble un peu long. ahh.gif
Le mien tiens en 6 lignes... Et oui il existe une formule mathématique qui fait tout ! bigmouth.gif
Sauf qu'il fait:
-Réel vers-> binaire (base 2).
et
-N'importe qu'elle base vers-> Réel (base 10).

Tu as comprit, il ne fait pas:
-N'importe qu'elle base vers-> N'importe qu'elle base.
Mais peu importe...

Je le poste dès que possible sur ton sujet, c'est à dire, disons, euh...
Demain. happy.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mar 08 Fév 2011, 17:12   Citer 

Voilà le petit dernier !


Code
:EffEcr
:Menu("CONVERT","R->B",1,"B->R",2
:Lbl 1
:Input"R-)B",x
:if X supérieur ou = à 65535:Then:Disp "ERREUR...":Stop:End
:0-)B:Repeat x=0
:B+1-)B
:x-2int(x/2)-)R
:partEnt(x/2)-)x
:R-)L BIN(B)
:End
For(A,1,B)
:Output(8,17-A,L BIN(A
:End
:EffVar L BIN:Stop
:Lbl 2
:Input "BASE",B
:0->E:0->R
:Input N
:input "10^(",P  ----------- (nombre de chiffes).
:Repeat E-1=p
:Output(8,1,R
:N/10->N
:if ent(10partDéc(N)>B:Disp "ERREUR !"
:R+B^Eent(10PartDéc(N->R
:E+1->E
:End



----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 08 Fév 2011, 20:16   Citer 

celui qui supprime tes messages, c'est Sangohan; le modérateur.

ça veut dire qu'ils étaient inutiles.

deuxième possibilité: tu appuies sur "prévisualiser" au lieu de "soumettre" quand tu postes le message, et ensuite tu cliques sur le lien de l'index du forum, et le message est perdu. ça a l'air bète comme ça, mais ça m'est déjà arrivé.

tu saurais faire le programme pour convertir de base 10 en base 27 ?
ça te dit un petit défi ?

 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mer 09 Fév 2011, 10:44   Citer 

AH ! Désolée, haut grand modérateur Sangohan... happy.gif
Par St Denis !Je ne posterais plus de messages inutiles... minied.gif

Pour répondre à Persalteas, pourquoi 27 ? l’alpha b c'est (Base 26)... crazy.gif
De 1 à 25 + 0... C'est çà que t'as voulut dire ? ahh.gif
Si t'es d'accort pour 26, alors j'accepte le défit ! bigmouth.gif

Et que je trépasse si je faiblis ! karate.gif laugh.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 09 Fév 2011, 19:50   Citer 

Euh non, moi je voudrait en base 27 (3 au cube) pour coder des petits sprites en basic.

Ah, euh, les fautes d'orthographe énèrvent Sangohan aussi. Et il faut bien penser à la ponctuation, même au majuscules sur les Ah et les Euh. Ne t'inquiète pas on s'y fait au bout d'un moment. cupsmiley.gif Et pense bien à mettre l'espace après le point et non pas avant. glasses.gif

Ps: un petit peu de flood pour notre bien aimé modérateur (mais oui, celui dont je viens de me moquer pendant 4 lignes (ah non, quatre, pas 4, c'est plus français). Tiens, d'ailleurs, je viens de dépasser le webmaster en nombre de messages. Ne t'inquiète pas Sangohan, je te taquine. laugh.gif

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mer 09 Fév 2011, 20:24   Citer 

Je ne suis pas si chiant que ça quand même... Mais bon si tu y tien, je dénombre 3 fautes d'orthographes et une erreur concernant le nombre de lignes (ça fait 5 avec celle qui est sautée godgrace.gif ).

Et, je n'ai rien supprimé de ce coté, j'avais même lu les messages et laisser aller sans rien dire.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 09 Fév 2011, 20:29   Citer 

j'ai remarqué:

au qui devrait être aux
voudrait qui devrait être voudrais

mais la 3e ?

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mer 09 Fév 2011, 20:50   Citer 

Cherche du coté des accents ...
Et là, tu n'as pas mis de majuscules: SHAME ON YOU!

Sangohan38

 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Jeu 10 Fév 2011, 10:55   Citer 

Bon, d'accort, on çà marche pour 27...
Mais simple question d’équité; Tu n'en n'a pas déjà fait un de prgm qui traduit:
N'importe qu'elle base vers n’importe qu'elle base ? crazy.gif
Je cite ton premier message :

"Celui-ci converti n'importe quel nombre entier naturel de n'importe quelle base vers n'importe quelle autre base. (on choisit même si on on veut base 16 normal ou héxadécimal)."

Ah! Oui, J'allais oublier; Je souhaiterais que tu m'explique comment crée des prgm en basique par ta méthode...
Et puis comment tu veux que les nombres soit séparés quand on les entre ou sort en base 26 ? crazy.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Jeu 10 Fév 2011, 14:13   Citer 

Je ne comprends pas ta question. (tes questions):

Comment créer un programme en basic ? Tu te fiches de moi, là, tous ceux que tu as faits, tu les as faits comment? sur Ti editor?

Deuxième question: séparer les nombres en base 27 (et pas 26): Si je te le dis, autant chercher moi même comment faire ce programme. C'est parce que j'ai la flemme de le faire que je te le demande.

Ah oui, sinon, n'oublie pas que c'est linkakro qui a fait le programme. Je suis fort mais quand même. Moi j'en voudrais un léger qui fait juste la base 27.

Ps pour Sangohan: je n'ai pas trouvé cette faute d'accent... SHAME ON ME! moi qui ai eu 17 au bac de français! tu es sur que c'est bien toi qui as raison sur cet accent ?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 10 Fév 2011, 20:33   Citer 

pour persalteas :
---
programme simple pour les ti82
exemple base 10 vers base Y=27
Code
Prompt X
0->W
Repeat R=0
W+1->W
ent(X/27)->Q
X-27Q->L1(W
Q->X
End

Et tu lis la liste1 à l'envers.

exemple avec Y=27 vers 10
L'autre sens de conversion nécessite préalablement une saisie dans une liste : c'est quasiment l'élément le plus important parmi toutes les versions que j'ai conçu ou lu.
Voici donc beaucoup plus simple : tu rentres manuellement chaque "chiffre" (de 0 à 26) dans une liste L1 puis :
Code
dim(L1)->D
0->P
For(W,1,D
P+L1(W)*27^(D-W)->P
End
Disp P


---

Les progs de ce message sont relativement faîbles mais compatibles toutes calculatrices.

PS: La dérive du sujet me fait un peu mal aux yeux.

----------------------
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
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Ven 11 Fév 2011, 11:23   Citer 

Bin voilà ! Tu l'as ta raiponce Persalteas.
Et pis, je l'avais déjà fait ce prgm ! ahh.gif
Il ne manquer plus que le moyen de séparer chaque nombres lors de la frape.
D’ailleurs l'idée de linkakro m'as séduit par sa simplicité, c'est con mais fallait y penser !
Je ne vois pas ce qu'il y a d’embêtant de les renter dans une liste...
Bravo linkakro ! happy.gif

pour répondre a Persalteas; Ce que je voulais dire c'est en quoi çà t'aide à programmer de pouvoir convertir en base 27 (3 au cube) pour coder des petits "sprites" crazy.gif en basic.

Là çà m’échappe !? crazy.gif

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 11 Fév 2011, 16:21   Citer 

quand tu as passé des heures à recopier des Ligne(X1,Y1,X2,Y2 pour les graphismes de ton rpg, tu comprends pourquoi tu as envie que ça tienne en 2 ou 3 caractères.

et c'est possible en asm, en axe, en xlib, mais en basic, il faut le programmer.

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink