Espace TI: Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

[83] Décimal en Hexa

3 participants

Aller en bas

[83] Décimal en Hexa Empty [83] Décimal en Hexa

Message par jovasco Lun 4 Fév - 21:17

Bonjour,

histoire de dérouiller ma calculatrice voila un programme qui convertit du Décimal en Hexadecimal.
bien sûr ce programme doit exister des centaines de fois, mais bon, fallait bien recommencer par du quelque-chose de simple.
Aucune gestion des erreurs n'est incluse donc ça peut donner n'importe quoi en fonction de ce que l'on saisi


exemple convertir 56789 devient DDD5

Il y a peut-être plus simple, je suis preneur.

Code:
:ClrHome
:Prompt D
:"0123456789ABCDEF"→Str1
:" "→Str0
:16→G
:0→I
:While D≠0
:I+1→I
:D-iPart(D/G)G→Z
:iPart(D/G)→D
:sub(Str1,Z+1,1)+Str0→Str0
:End
:Disp Str0
:

exemple convertir 56789 devient DDD5

Il y a peut-être plus simple, je suis preneur.
jovasco
jovasco
Argent 4
Argent 4

Age : 68
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

[83] Décimal en Hexa Empty Re: [83] Décimal en Hexa

Message par linkakro Lun 4 Fév - 23:36

Spoiler:

Tu utilises déjà l'algorithme le plus rapide parmi les deux remarquables.
La façon de le coder peut alléger quand même.
En particulier le test D=/=0 qui peut s'écrire simplement D.
Enlever les parenthèses et guillemets fermants en fin de ligne et avant chaque sto.
Dans l'état actuel I n'est pas utilisé donc je conseille de l'enlever.

Je constate que ton programme supporte la valeur nulle et répond par un espace. Seuls les nombres décimaux doivent poser problème.
linkakro
linkakro
Or 4
Or 4

Sexe : Masculin
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

[83] Décimal en Hexa Empty Re: [83] Décimal en Hexa

Message par jovasco Mar 5 Fév - 7:18

merci d'avoir pris le temps de regarder.

Oui la variable "i" est un oubli (sans doute d'une autre méthode que j'avais essayée)

je n'avais pas vu que si on rentrait 0 ça ne sortait rien... (quelle idée de taper 0 ... ) mais ça fait parti des tests qu'il faudrait faire

je remarque aussi que les décimaux et négatifs plantent mon programme
et les grand nombres qui passent en puissance de 10 ça doit être faux aussi.

j'ai tendance à laisser les parenthèses et les guillemets de fin car ça fait plus lisible et puis peut-être qu'un jour les nouveaux OS seront moins permissifs sur la syntaxe Mais c'est vrai au prix de l'octet et la taille de la RAM il vaut mieux économiser...

concernant l'autre algo remarquable, tu peux en dire un peu plus ?

Je n'e vois pas l'endroit de mon code : D=/=0 tu peux éclaircir ce point ?

merci en tous cas !
jovasco
jovasco
Argent 4
Argent 4

Age : 68
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

[83] Décimal en Hexa Empty Re: [83] Décimal en Hexa

Message par nikitouzz Mar 5 Fév - 10:44

J'avais fait un traducteur en une petite dizaine de ligne en basic je le chercherais ce soir mais c'est effectivmenet un bon programme et qui est utile, il ne te reste plus qu'a faire la traduction hexa->decimal
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 28
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :
  • - TI-Basic Z80
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
  • - TI-Basic 68K
  • - TI-Basic Nspire
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

[83] Décimal en Hexa Empty Re: [83] Décimal en Hexa

Message par jovasco Mar 5 Fév - 12:26

linkakro a écrit:[
En particulier le test D=/=0 qui peut s'écrire simplement D.
ah oui While D≠0 peut s'écrire While D. pas évident de savoir ce que ça teste au premier coup d'oeil
jovasco
jovasco
Argent 4
Argent 4

Age : 68
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :
  • - TI-Basic Z80
Calculatrices :
  • - TI-80
  • - TI-82 Stats.fr
  • - TI-86
  • - TI-89

TI-82 Stats.fr


Revenir en haut Aller en bas

[83] Décimal en Hexa Empty Re: [83] Décimal en Hexa

Message par linkakro Mer 6 Fév - 18:40

Les nombres décimaux et négatifs doivent planter le sub(). Les négatifs ne planteraient pas avec la fonction int à la place de iPart mais le résultat serait quand même faux. (voire boucle infinie, sur ce coup la j'ai du mal à prévoir)
Tandis que les nombres suppérieurs à 10^14 perdrent leurs derniers chiffres (s'il y en a des non nuls) après le 14ème.
En effet la calculatrice enmagasine 14 chiffres de mantisse (la mantisse est le nombre entre 0 et 1 associé à une puissance de 10 en notation scientifique).
Les entiers de 0 à 10^14 ne posent pas de problème.

L'autre algorithme que j'ai mentionné consiste à déterminer la plus grande puissance de 2 inférieure au nombre saisi puis à diviser le nombre par les puissances de 2 dans l'ordre décroissant en conservant les quotient et transmettant à la prochaine opération le reste.
Cette méthode est parfois performante de tête pour un humain, mais pas du tout pour un ordinateur.

Parfois je laisse les syntaxes de fin de ligne, par exemple quand une chaine de caractères se termine par des espaces. Si tu veux laisser des syntaxes, laisse les, c'est plus facile au radin de les enlever qu'au développeur de les ajoûter.

J'aime bien utiliser un Repeat pour que le programme supporte le 0 sans test ni initialisation de la chaine à "0".
linkakro
linkakro
Or 4
Or 4

Sexe : Masculin
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84 Pocket.fr

TI-84+ SE


Revenir en haut Aller en bas

[83] Décimal en Hexa Empty Re: [83] Décimal en Hexa

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum