Conversion decimal vers binaire

xman -  
 xman -
Bonjour,

je voudrais savoir mon erreur , aidez moi s'il vous plait et Merci d'avance :)
program conversion10_2;
uses wincrt;

var
x,i:integer;
ch:string;

procedure binaire(i,x:integer;var ch:string);
var
carac:string;
begin
ch:='';
if x<>0 then
begin
str(x mod 2,carac);
ch:=ch+carac;
x:=x div 2;
end;
binaire(i+1,x,ch);
end;

begin
readln(x);
binaire(1,x,ch);
write(ch);
end.

1 réponse

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    program conversion10_2; 
    
    uses wincrt; 
    
    var  x:word; 
         ch:string; 
    
    procedure binaire(x:word;var ch:string); 
    var carac:string; 
    begin 
      ch:=''; 
      while x<>0 do 
      begin 
        str(x mod 2,carac); 
        ch:=ch+carac; 
        x:=x div 2; 
      end; 
    end; 
    
    begin 
      clrscr; 
      readln(x); 
      binaire(x,ch); 
      write(ch); 
    end.

    RQ. le type word permet d'aller un peu plus loin dans les entiers positifs

    bonne journée
    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      et si tu veux quelque chose de réciursif

      function binaire(x:word):string;
      var carac : string;
      begin
        if x = 0 then
          binaire := ''
        else
          begin
            str(x mod 2,carac);
            binaire := binaire(x div 2) + carac;
          end;
      end;
      0
    2. xman
       
      merciiiiii beaucoup
      0