Zadání:
Algoritmy:
Převod čísla z desítkové do dvojkové soustavy
Převod čísla z desítkové do soustavy o základu X
Převod čísla ze soustavy o základu X do desítkové soustavy
Vytvořte funkci pro převod čísla v desítkové soustavě do soustavy dvojkové.
Netestujte, zda je zadáno platné číslo.
Algoritmus:
Function Dec2Two(Nr:longint):string;
{Funkce prevadi cisla z desitkove do dvojkove soustavy.}
var HlpStr:string;
Modulo:longint;
begin {Dec2Two}
HlpStr:='';
if Nr=0 then
Dec2Two:='0' {Osetrime 0}
else begin {Nenulove cislo}
Modulo:=Nr;
while Modulo>1 do begin
HlpStr:=chr((Modulo mod 2)+ord('0'))+HlpStr;
Modulo:=Modulo div 2;
end; {while}
end; {else}
Dec2Two:='1'+HlpStr;
end; {Dec2Two}
Seznam algoritmů
Zadání:
Function Dec2X(Nr:longint;X:byte):string;
{Funkce prevadi cisla z desitkove do Xkove soustavy.
Pri zadani prilis velkeho X dojde k preruseni behu programu s generovanim
behove chyby 171.}
const Letters:string='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var HlpStr:string;
Modulo:longint;
begin {Dec2X}
if X>length(Letters) then
RunError(171); {Je-li soustava moc velka, prerusime program s behovou
chybou cislo 171.}
HlpStr:='';
if Nr=0 then
Dec2X:='0' {Osetrime 0}
else begin {Nenulove cislo}
Modulo:=Nr;
while Modulo>X-1 do begin
HlpStr:=Letters[1+Modulo mod X]+HlpStr;
Modulo:=Modulo div X;
end; {while}
end; {else}
Dec2X:=Letters[1+Modulo]+HlpStr;
end; {Dec2X}
Seznam algoritmů
Zadání:
Function X2Dec(Nr:string;X:byte):longint;
{Funkce prevede cislo zadane retezcem z Xnactkove soustavy do desitkove.
Jsou-li zadany neexistujici znaky, program se prerusi s generovanim
behove chyby 172.
Vypocet probiha dle definice a(n)*z^n + a(n-1)*z^(n-1) + ... a(0)*z^0 = Y.}
const Letters:string='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var i:byte;
Hlp:longint;
Multiple:longint;
begin {X2Dec}
Hlp:=0;
Multiple:=1;
for i:=length(Nr) downto 1 do begin
if pos(Nr[i],Letters)=0 then
RunError(172); {Je-li zadan neexistujici znak.}
Hlp:=Hlp+(pos(Nr[i],Letters)-1)*Multiple;
Multiple:=Multiple*X; {Nasobitel}
end;
X2Dec:=Hlp;
end; {X2Dec}
Seznam algoritmů
|
|
30. 4. 2000 |
|
|
||
|
|