Bonjour,
je demande votre aide dans un programme en pascal qui me perturbe :s il s'agit de lire tous les nombres de 1 à 1000 , de faire leur division binaire nombre par nombre , de chercher son équivalent en binaire et de vérifier si ce nombre binaire est rond ou non (rond veut dire s'il contient autant de 0 que de 1)
voici mon travail , sur la deuxième fonction ya qq chose qui cloche , je c pa exactement ou est le probleme
Merci de votre aide !!
program affich_rond;
uses wincrt;
var
x : integer;
chr : string;
function conversion (d:integer):string;
var
e , q : integer;
ch1,ch : string;
begin
ch := '';
repeat
q := d div 2;
e := d mod 2;
str(e,ch1);
ch:= ch1 + ch;
d := q
until d=0;
conversion:=ch;
end;
function rond (ch : string):boolean;
var
i , n1 , n0 : integer;
V : boolean;
begin
for i := 1 to length(ch) do
begin
if ch[i] = '1' then
begin
n1 := n1 + 1;
end
else
begin
n0 := n0 + 1;
end;
end;
if n1 = n0 then
begin
V := true;
end
else
begin
V := false;
end;
rond := V;
end;
begin
for x := 1 to 1000 do
begin
chr := conversion(x);
writeln(chr);
if rond(chr) = true then
begin
writeln(x);
end;
end;
end.
Configuration: Windows XP
Firefox 3.0.5