bonjour;
on nous a demandé de faire l'algorithme ainsi que le programme en Pascal qui nous permet de convertir un nombre entier positif dans une base quelconque comprise entre 2 et 10.
Voici mon algorithme
Algorithme exo42
quand j'ai exécuté mon algorithme sous Pascal, je faisais des essaies et comme par hasard, je suis tombé sur le nombre 677463, qui en le convertissant dans la base 4 me donne -2083846183.Code:Variable N,M,x,A :entier DEBUT ECRIRE(‘Donnez un nombre entier positif’) LIRE(N) ECRIRE(‘Dans quelle base voulez-vous l’écrire ?’) LIRE(x) Cpt<--1 ; A<--0 ; M<--N REPETER A<--(M mod x)*cpt + A M<-- M div x Cpt<--cpt*10 JUSQU’A M=0 ECRIRE(N,’ s’écrit ’,A,’ dans la base’,x) FIN.
j'ai essayé de resoudre ce probléme en mettant"jusqu'a m div x=0" comme condition d'arrét de la boucle, et là ça marche sauf que pour d'autrs cas ça ne marche pa (par exemple 7 me donne 11 dans la base 2)
Alors voila si quelqu'un peut m'expliquer en détails ou est le probléme et comment le résoudre.
j'espère avoir la réponse au plus vite.
merci d'avance
-----