Bonjour a tous,voila mon probleme:
Depuis quelque temps j'essai de creer un programme permettant de passer dun nombre reeel a un binaire en basic
petit rappel du binaire(pour ceux qui le savent deja):
pour trouver la valeur binaire dun nombre,on le compare a un tableau
ex:le nombre 166
cela donne: .../ 128 / 64 / 32 / 16 / 8 / 4 / 2 / 1 / 0 -->On remarque que
/ 1 / 0 / 1 / 0 / 0 /1 / 0 / 1 1*2=2.. 2*2=4...et 4*2=8 ...........
je mexplique:
166>128 donc on place 1 et on fait 166-128=38(qui nous servira pour la
prochaine valeur)
38<64 donc on met 0 et on continu avec la meme valeur
38>32 donc on place 1 et 38-32=6 (cf au dessu...)
6<16 donc 0
6<8 donc 0
6>4donc 1 et 6-4=2
2=2 donc 1 et 2-2=0
0<1 donc 0
0=0 donc 1
Voici donc le code que je tape pour l'avoir:
:ClrHome //efface l'ecran
:Prompt A //demande la variable A(nombre reel a convertir)
:246144->B // stoque 246144 dans B
:Repeat B=1 //jusqu'a ce que B=1(debut de la boucle)
:If A>B //si a>b
:Ouput("1" //ecrit 1
:A-B->A //comme expliquer plus haut,si a>b,on fai a-b pour avoir la nouvele valeur a comparer a b
:B/2->B // comme expliquer plus haut,si a>b,on fai b/2 pour avoir le nouvo comparant
:If a<b //si a<b
:Output("0" //ecirt 0
:End //fin de la boucle on revient a repeat
Mais malhaureusement,il ne marche pas,alors si vous avez le bon code,merci de me le faire parvenir!
dans l'écran home 42 |> bin ( |> == petit triangle plein)
Peut -tu texpliquer stp?
je ne comprend pas lerreur dans mon programme ou sinon si tu as la soluce pour faire ce convertisseur?
sacha>si condition n'éxécute que la ligne qui se trouve juste en dessous. Pour éxécuter plusieur commande, faut que tu fasse suivre la condition par then puis termine par endif :
If condition then
instruction
instruction
instruction
...
EndIF

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.
Ca donne ca?
:ClrHome
:Prompt A
:246144->B
:Repeat B=1
:If A>B
:then
:Ouput("1"
:A-B->A
:B/2->B
:If a<b
:then
:Output("0"
:Endif
Copi ton code dans mon prgramme stp ca maidera a comprendre parce que la je ne voi pa pkoi
if a=1
3->b
4->c
Et ma boucle alors?sinon le prog ne marche pas?
Dude Le 14/12/2004 à 21:59 Ca donne ca (juste en corrigeant les erreurs de synthaxe :
:ClrHome
:Prompt A
:246144->B
:While B!=1 // != signifie different
:If A>B then
:Ouput(x,y,"1") // x et y sont les positions où tu veux afficher ton 1
:A-B->A
:B/2->B
:If a<b then
:Output(x,y,"0")
:Endif
:Endif // il te manque ce endif
:EndWhile // ...Et ce endwhile (fin de ton repeat si tu prefere)
A par ca je te conseille vivement d'utiliser le [Catalog] disponile sur ta calc pour verifier la synthaxe de ton prog ou si tu as un doute.
Dernier truc : dans ton PRoGraM Editor tu as plein de raccourcis disponibles avec les touches F1...Fn qui t'eviteront de te tromper dans tes structures (genre le IF,While,For,etc...)
@+
[EDIT] : Oublis de corrigier le 2eme Output
PS: je te déconseille d'utiliser les outputs d'ailleurs. Sauf si tu gere les positions d'affichage.
"De l'Art de faire des Posts qui ne servent a Rien." (c) Ximoon
15:13 @Ximoon - 29-11-2005
"C'est débile ce sondage, une fois de plus Dude, tu ne sers à rien #hehe#" #love# Il est collector celui là ^^
18:56 @Ximoon - 09-10-2010
"Mince Dude sert à quelque chose %) (pas taper :D )" Owii xD #trilove#
output 98,0, * permet de faire une console plus serrée que Disp
Sinon tu peux faire resultat&"1"->resultat (ou resultat&"0"->resultat), puis afficher tous à la fin le contenus de resultat.
Dude>euh... je crois pas que le programme affichera 0 quand a<b si il faut préalablement que a>b ^^
Le 2é then ... EndIf ne sert à rien (puisqu'il n'y a qu'une seul instruction qui suit le if et non plusieur) et il faut déplacer le dernier EndIf juste avant le 2é if.
Sinon, regardes la fonction modulo ( mod() ), tu peux considérablement réduire la taille de ton programme.
Sinon, Sacha, t'aurais pas un ti-83 ou 84, par hasard ??

Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.