Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Conversion du décimal en binaire

Posté par
aida1807
03-01-12 à 10:29

Bonjour,
on me demande dans un exercice d'ecrire une fonction itérative prenant en entrée un entier et retournant sa représentation en binaire.
Voici ce que j'ai écrit:

fonction binaire (val n:entier):entier
var res: entier =0;
var d: entier;
var i: entier=0;
debut
    si (n<0) alors
        retourner (erreur);
    finsi;
    tantque (n<>0) faire
        d=n/2;
        si (n=2d) alors
            res= res + 0*10^i ;   //je pense que cette ligne peut etre supprimée
            i=i+1;
            n=d;
        sinon
            res=res+1*10^i;
            i=i+1;
            n=d;
        finsi;
    fintantque;
    retourner (res);
fin
finfonction



Peut etre y-a-t-il plus simple, mais j'aimerais garder ma fonction sous cette forme. Seul problème: j'ai l'impression de ne pas avoir le droit d'utiliser les puissances (10^i). Je ne l'ai vu nulle part dans le cours. Quelqu'un sait-il de quelle manière je peux écrire 10^i en utilisant uniquement *, + et - ?
Merci d'avance
Bonne journée
Aïda

Posté par
pythamede
re : Conversion du décimal en binaire 03-01-12 à 11:09

Ben oui ! Tu peux définir une variable dixpuissi, initialisée à 1 et remplacer :

        si (n=2d) alors
            res= res + 0*10^i ;   //je pense que cette ligne peut etre supprimée
            i=i+1;
            n=d;
        sinon
            res=res+1*10^i;
            i=i+1;
            n=d;
        finsi;

par

        si (n<>2d) alors
            res=res+dixpuissi;
        finsi;
        dixpuissi=dixpuissi*10;
        n=d;

J'ai enlevé la ligne qu'à juste titre tu voulais enlever
et il n'était pas nécessaire d'écrire deux fois i=i+1 et n=d. Il suffisait de l'écrire une seule fois après le finsi. D'ailleurs i ne sert donc plus à rien et j'ai supprimé son incrémentation.

Posté par
aida1807
re : Conversion du décimal en binaire 03-01-12 à 11:23

Ca marche!!! Merci beaucoup, je n'aurais jamais pensé à définir cette variable, c'est bête, non? J'ai essayé avec n=4, ca marche, je vais vérifier avec n=77, mais je suis certaine que ça ne posera pas de problème.
Merci encore,
Bonne journée,
Aïda

Posté par
pythamede
re : Conversion du décimal en binaire 04-01-12 à 12:39



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !