[83] compter en base sur demande par linkakro
5 participants
Page 1 sur 1
[83] compter en base sur demande par linkakro
ça fait un bout de temps que j'ai des progs sur mon ordi, et je viens de retrouver celui ci.
il permet de convertir un nombre dans une base de votre choix en une autre base, également de votre choix.
il permet de convertir un nombre dans une base de votre choix en une autre base, également de votre choix.
- Code:
:Normal
:Float
:ClrHome
:ClrList L1,L2
:Input "DEPART=",X
:Input "FINAL=",Y
:10→A
:11→B
:12→C
:13→D
:14→E
:15→F
:3→T
:0→S
:0→N
:iPart(log(X-1))+1→U
:If X=16
:1→U
:" "→Str2
:"ABC--DEF--------789--456--123--0---"→Str1
:Lbl 88
:0→K
:Repeat K≠0
:getKey→K
:End
:If K=105 and N/U=iPart(N/U) and N≠0
:Goto 99
:If K=23 and N≠0
:Then
:Output(T,S," "
:S-1→S
:If S=0
:Then
:16→S
:T-1→T
:End
:N-1→N
:sub(Str2,1,N+1)→Str2
:If N/U=iPart(N/U)
:N/U→dim(L1):End
:If K<41 or K=105 and (N/U≠iPart(N/U) or N=0)
:Goto 88
:If K=23
:Goto 88
:K-40-5iPart((K-40)/10)→M
:If sub(Str1,M,1)="-"
:Goto 88
:If expr(sub(Str1,M,1))≥X or expr(sub(Str1,M,1))≥10 and H=0
:Goto 88
:N+1→N
:S+1→S
:If S=17
:Then
:T+1→T
:1→S
:End
:Output(T,S,sub(Str1,M,1))
:Str2+sub(Str1,M,1)→Str2
:If N/U=iPart(N/U)
:expr(sub(Str2,N-U+2,U)→L1(N/U)
:Goto 88
:Lbl 99
:"0123456789ABCDEF"→Str1
:Lbl R
:0→H
:If Y=16
:1→H
:0→P
:N/U→N
:For(W,1,N
:L1(W)*X^(N-W)+P→P
:End
:0→W
:P→Z
:ClrList L2:Repeat Q=0
:W+1→W
:iPart(P/Y)→Q
:P-Q*Y→L2(W)
:Q→P
:End
:ClrList L<sub>1</sub>
:For(V,0,W-1
:L2(W-V)→L1(V+1)
:End
:ClrList L2:ClrHome
:If P>9999999999
:Disp "TROP GRAND"
:If P<ᴱ10
:Disp "BASE"
:Output(1,7,Y
:If Y=10 and dim(L1)<11
:Pause Z
:If Y>10 and H=0
:Pause L<sub>1</sub>
:If H=1 or Y=10 and dim(L1)>10 or Y<10
:Then
:" "→Str2
:dim(L1)→M
:For(W,1,M
:Str2+sub(Str1,L1(W)+1,1)→Str2
:End
:Pause Str2
:End
:Menu("RESTART","STOP",Q,"RECONVERTIR",S
:Lbl S
:Y→X
:Input "RECONV=",Y
:ClrHome
:Udim(L1)→N
:If Y=16
:1→H
:Goto R
:Lbl Q
Dernière édition par persalteas le Ven 31 Déc - 10:27, édité 1 fois
persalteas- Platinum 2
- Sexe :
Age : 28
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [83] compter en base sur demande par linkakro
Pas mal, c'est une des options de Omnicalc mais là progammée en TI-BASIC. Pourrais-tu citer le nom du créateur ?
Re: [83] compter en base sur demande par linkakro
c'est bien le problème, je n'en ai aucune idée.
peut-être linkakro ou sypotu.
peut-être linkakro ou sypotu.
persalteas- Platinum 2
- Sexe :
Age : 28
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [83] compter en base sur demande par linkakro
Ah oui en fait c'est linkakro. (J'ai posté son programme sur le site.)
Re: [83] compter en base sur demande par linkakro
Du coup, le topic est au mauvais endroit.
Metallica- Or 4
- Sexe :
Age : 28
Messages : 926
Date d'inscription : 30/06/2010
Etudes : DUT Info
Points Forum : 17
Points Concours : 9
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-82 Stats.fr
- - TI-83+ SE
Re: [83] compter en base sur demande par linkakro
Non, il peut rester ici car ce n'est pas linkakro qui a présenté son propre programme.
Re: [83] compter en base sur demande par linkakro
Ok Sinon pour revenir aux programmes, il est super utile lorsqu'on fait des conversions de base en SI.
Metallica- Or 4
- Sexe :
Age : 28
Messages : 926
Date d'inscription : 30/06/2010
Etudes : DUT Info
Points Forum : 17
Points Concours : 9
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-82 Stats.fr
- - TI-83+ SE
Re: [83] compter en base sur demande par linkakro
visiblement, il doit y avoir une possibilité avec l'hexadécimal, vu que les lettres sont dans la chaine1, mais je n'ai pas trouvé comment les utiliser...
persalteas- Platinum 2
- Sexe :
Age : 28
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [83] compter en base sur demande par linkakro
Ce n'est pas tout simplement en tapant 16 dans la base de départ ?
Metallica- Or 4
- Sexe :
Age : 28
Messages : 926
Date d'inscription : 30/06/2010
Etudes : DUT Info
Points Forum : 17
Points Concours : 9
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-82 Stats.fr
- - TI-83+ SE
Re: [83] compter en base sur demande par linkakro
yeah!!
comment t'as deviné ça?
comment t'as deviné ça?
persalteas- Platinum 2
- Sexe :
Age : 28
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [83] compter en base sur demande par linkakro
Sa parait loqique ! :albino:
Metallica- Or 4
- Sexe :
Age : 28
Messages : 926
Date d'inscription : 30/06/2010
Etudes : DUT Info
Points Forum : 17
Points Concours : 9
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-82 Stats.fr
- - TI-83+ SE
Re: [83] compter en base sur demande par linkakro
Bon, je suis désolé, mais je doit faire de la promotion pour mdr1, son tutoriel sur les notions avancés en TI-Basic arrivera prochainement, et le programme que tu présente ici... il le place sur 17 lignes exactement. Code commenté par le maître :
EDIT : Compatible 36 bases pour 200 octets de programmes... je dirais une vrai merveille. :D
- Code:
:Input "NB ",Str1 //demande le nombre à convertir
:Input "BA ",C //demande la base de ce nombre
:Input ">B ",D //demande la base désirée
:"123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ→Str2
:length(Str1→A
:0 //on place zéro dans Ans
:For(Ɵ,1,A //On fait parcourir à Théta (juste après le Z) tous les numéros du premier au dernier caractère de Str1
:Ans+C^(A-Ɵ)inString(Str2,sub(Str1,Ɵ,1 //On ajoute à Ans la valeur du caractère en cours.
// si "inSring(" ne trouve pas le caractère correspondant dans Str2, il renvoie zéro (c'est pour ça que je ne l'ai pas mis dans Str2).
:End //fin de la boucle
:Ans→B //on stocke dans B le décimal obtenu
:"0"+Str2→Str2 //On ajoute le zéro dans Str2
:While B //tant que le dividende est positif (le dividende parce-que c'est l'ancien quotient
// et que la boucle "While(" commence par tester la condition avant d'exécuter les instructions.)
:int(B/D→C //on met le quotient obtenu par B/D dans C
:sub(Str2,B-DC+1,1)+Str1→Str1
//on a B-DC qui est égal au reste de la division
//on recherche le caractère qui correspond à la valeur du reste ; on ajoute 1 au reste car le caractère n°1 de Str2 est "0".
//on ajoute donc ce caractère au résultat qui sera affiché
:C→B //l'ancien quotient devient le dividende
:End
sub(Str1,1,length(Str1)-A //on affiche le résultat en prenant soin d'enlever le "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" de la fin.
EDIT : Compatible 36 bases pour 200 octets de programmes... je dirais une vrai merveille. :D
kindermoumoute- Or 4
- Sexe :
Age : 29
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [83] compter en base sur demande par linkakro
Encore mieux que ma dernière version de convers que vous n'avez pas eu en main. Efficace et sans superflu. Mais il y a une différence d'affichage.
linkakro- Or 4
- Sexe :
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+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Re: [83] compter en base sur demande par linkakro
kindermoumoute a écrit:Bon, je suis désolé, mais je doit faire de la promotion pour mdr1, son tutoriel sur les notions avancés en TI-Basic arrivera prochainement, et le programme que tu présente ici... il le place sur 17 lignes exactement. Code commenté par le maître :
- Code:
:Input "NB ",Str1 //demande le nombre à convertir
:Input "BA ",C //demande la base de ce nombre
:Input ">B ",D //demande la base désirée
:"123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ→Str2
:length(Str1→A
:0 //on place zéro dans Ans
:For(Ɵ,1,A //On fait parcourir à Théta (juste après le Z) tous les numéros du premier au dernier caractère de Str1
:Ans+C^(A-Ɵ)inString(Str2,sub(Str1,Ɵ,1 //On ajoute à Ans la valeur du caractère en cours.
// si "inSring(" ne trouve pas le caractère correspondant dans Str2, il renvoie zéro (c'est pour ça que je ne l'ai pas mis dans Str2).
:End //fin de la boucle
:Ans→B //on stocke dans B le décimal obtenu
:"0"+Str2→Str2 //On ajoute le zéro dans Str2
:While B //tant que le dividende est positif (le dividende parce-que c'est l'ancien quotient
// et que la boucle "While(" commence par tester la condition avant d'exécuter les instructions.)
:int(B/D→C //on met le quotient obtenu par B/D dans C
:sub(Str2,B-DC+1,1)+Str1→Str1
//on a B-DC qui est égal au reste de la division
//on recherche le caractère qui correspond à la valeur du reste ; on ajoute 1 au reste car le caractère n°1 de Str2 est "0".
//on ajoute donc ce caractère au résultat qui sera affiché
:C→B //l'ancien quotient devient le dividende
:End
sub(Str1,1,length(Str1)-A //on affiche le résultat en prenant soin d'enlever le "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" de la fin.
EDIT : Compatible 36 bases pour 200 octets de programmes... je dirais une vrai merveille. :D
Encore mieux que mon programme de conversion ! [Vous devez être inscrit et connecté pour voir cette image] (Inclus dans TI-Basic+.)
Re: [83] compter en base sur demande par linkakro
Qu'est ce que TI-Basic+ ?
kindermoumoute- Or 4
- Sexe :
Age : 29
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [83] compter en base sur demande par linkakro
C'est un programme pour TI qui fait un peu page d'accueil pour accéder au programme externe qui font partie du pack.
Metallica- Or 4
- Sexe :
Age : 28
Messages : 926
Date d'inscription : 30/06/2010
Etudes : DUT Info
Points Forum : 17
Points Concours : 9
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-82 Stats.fr
- - TI-83+ SE
Re: [83] compter en base sur demande par linkakro
Par contre ne le mettez pas en ligne sans l'autorisation de mdr1 !
kindermoumoute- Or 4
- Sexe :
Age : 29
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Re: [83] compter en base sur demande par linkakro
Non en faite j'avais fais un programme de conversion de quatre bases. (Décimal, Héxadécimal, Binaire et Octet) dans un programme de 800 octets. Ce programme est inclus dans le pack TI-Basic+.
Re: [83] compter en base sur demande par linkakro
C'est sûr qu'après avoir vu un exemple de simplification de mdr1... on l'a un peu dur.
PS : Son tutoriel fait beaucoup d'impatient je vous rassure !
PS : Son tutoriel fait beaucoup d'impatient je vous rassure !
kindermoumoute- Or 4
- Sexe :
Age : 29
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-83+
Sujets similaires
» [82] amélioration de imgstock de linkakro
» Demande d'un programme en ASM
» [Demande-Résolu] Faire des block apparaissant aléatoirement tous en avancant dans une direction prédéfinie
» Demande d'un programme en ASM
» [Demande-Résolu] Faire des block apparaissant aléatoirement tous en avancant dans une direction prédéfinie
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|