Witam, piszę program w Pascalu zamieniający m.in. liczby z systemu dziesiętnego na binarny i na ósemkowy. Z dziesiętnego na binarny mój kod wygląda tak:
function binarna:string;
var q,d:integer;
s:string;
cyfra:array[1..8] of real;
begin
if liczba=3 then
begin
d:=dzies;
for q:=1 to 8 do
begin
if (d=0) then
begin
cyfra[q]:=0;
continue;
end;
if (d mod 2=0) then
cyfra[q]:=0
else
cyfra[q]:=1;
d:=d div 2;
end;
for q:=8 downto 1 do
begin
Str(cyfra[q]:1:0, s);
binarna:= binarna + s;
end;
end;
end;
i ten kod działa tak, jak powinien. Problem pojawia się przy zamianie z liczby dziesiętnej na ósemkową. Kod który stworzyłem wygląda następująco:
function osemkowa:string;
var q,m,d:integer;
s:string;
cyfra:array[1..8] of real;
begin
if liczba=3 then
begin
d:=osem;
for q:=1 to 8 do
begin
if (d=0) then
begin
cyfra[q]:=0;
continue;
end;
m:=(d mod 8);
if (m=0) then
cyfra[q]:=0
else
cyfra[q]:=m;
d:=d div 8;
end;
for q:=8 downto 1 do
begin
Str(cyfra[q]:1:0, s);
osemkowa:= osemkowa + s;
end;
end;
end;
Przy podaniu liczby dziesiętnej zawsze wyświetla same zera.. Dodam, że operuję tutaj na takich samych nazwach zmiennych, ale to chyba nie problem? Są one w dwóch różnych funkcjach..