sladko sa odmenim diki
Kód: Vybrať všetko
{prevod z 10-tkovej do 2-ovej a opacne}
program PREVOD;
uses Crt;
var C,C10:longint;{C,C10-cisla v desiatkovej}
C2,C16:string;{C2-dvojkove cislo}
v:char;{v-odpoved}
procedure DESIATKOVE;
var m:byte;{m-delenie mod}
begin
write('Zadaj cislo v desiatkovej s£stave:');
readln(C10);
if C10=0 then write('0 v desiatkovej = 0 v dvojkovej')
else begin
C:=C10;
C2:=' ';
while C10<>0 do begin
m:=C10 mod 2;
if m=0 then C2:='0'+C2
else C2:='1'+C2;
C10:=C10 div 2;
end;
write(C,' v desiatkovej = ',C2,' v dvojkovej');
end;
end;
procedure DVOJKOVE;
var d,i:byte;{d-dlzka retazca}
begin
write('Zadaj dvojkove cislo:');
readln(C2);
d:=length(C2);
C10:=0;
for i:=1 to d do begin
if C2[i]='0' then C10:=2*C10
else C10:=2*C10+1;
end;
write(C2,' v dvojkovej = ',C10,' v desiatkovej');
end;
procedure HEXADECIMALNA;
var m:byte;{m-delenie mod}
begin
write('Zadaj cislo v desiatkovej s£stave:');
readln(C10);
if C10=0 then write('0 v desiatkovej = 0 v hexadecimalnej')
else begin
C:=C10;
C2:=' ';
while C10<>0 do begin
m:=C10 mod 16;
case m of
1: C16:='0'+C16;
2: C16:='0'+C16;
3: C16:='0'+C16;
4: C16:='0'+C16;
5: C16:='0'+C16;
6: C16:='0'+C16;
7: C16:='0'+C16;
8: C16:='0'+C16;
9: C16:='0'+C16;
10: C16:='A'+C16;
11: C16:='B'+C16;
12: C16:='C'+C16;
13: C16:='D'+C16;
14: C16:='E'+C16;
15: C16:='F'+C16;
end;
C10:=C10 div 2;
write(C,' v desiatkovej = ',C2,' v hexadecimalnej');
end;
end;
end;
BEGIN
ClrScr;
write('Zvol prevod z desiatkovej na binarnu - d , z binarnej na desiatkovu - b , z desiatkovej na hexadecimalnu - h:');
readln(v);
writeln;
if v='d' then DESIATKOVE
else if v='b' then DVOJKOVE
else HEXADECIMALNA;
readln;
END.