PDA

Zobacz pełną wersję : program przeliczajacy systemy dziesietny na binarny osemkowy i szesnastkowy



luki_luk
23-11-08, 21:49
mam problem z programem przeliczajacym liczby dziesietne na binarne osomekowe i szesnastkowe, napisalem tyle:
var
liczba:longint;
b,d,e:string;
function odwroc(cos:string):string;
var
temp:string;
i:integer;
begin
for i:=1 to length(cos) do
begin
cos[i]:=temp[length(cos)-i];
end;
cos:=temp;
end;
function bin(b:string):string;
var
a,x:longint;
begin
x:=liczba;
repeat
a:= x mod 2;
x:= x div 2;
case a of
0:b:='0';
1:b:='1';
end;
write(b);
until x=0;
b:=odwroc(b);
result:=b;
end;

function os(d:string):string;
var
c,y:longint;
begin
y:=liczba;
repeat
c:=y mod 8;
y:=y div 8;
case c of
0:d:='0';
1:d:='1';
2:d:='2';
3:d:='3';
4:d:='4';
5:d:='5';
6:d:='6';
7:d:='7';
end;
write(d)
until y=0;
end;

function sz(e:string):string;
var
f,z:longint;
begin
z:=liczba;
repeat
f:=z mod 16;
z:=z div 16;
case f of
0:e:='0';
1:e:='1';
2:e:='2';
3:e:='3';
4:e:='4';
5:e:='5';
6:e:='6';
7:e:='7';
8:e:='8';
9:e:='9';
10:e:='A';
11:e:='B';
12:e:='C';
13:e:='D';
14:e:='E';
15:e:='F';
end;
write(e)
until z=0;
end;


begin
writeln('Podaj liczbe: ');
readln(liczba);


write('W systemie binarnym liczba wyglada tak: ');
bin(b);
readln;
write('W systemie osemkowym liczba wyglada tak: ');
os(d);
readln;
write('W systemie szesnastkowym liczba wyglada tak: ');
sz(e);
readln
{ TODO -oUser -cConsole Main : Insert code here }
end.
nie wiem jak wywolac funkcje "odwroc" zeby od razu dostac lustrzane odbicia wynikow z tych trzech funkcji...nie wiem tez czy funkcja odwroc jest dobrze napisana...poki co to jestem z tego dosyc zielony i bede wdzieczny za kazda pomoc