// Tetszőleges (2-32) alapú számrendszerbe való // átváltást megvalósító program, ahol az // osztási maradékokat dinamikus tömbben tároljuk program dintomb; {$APPTYPE CONSOLE} uses SysUtils,Dialogs; var alap, szam : int64; i : integer; verem : array of byte; vm : integer; jegyek : array[0..31] of char; begin // a lehetséges számjegyeket tartalmazó tömb feltöltése: for i:=0 to 9 do jegyek[i]:= chr(48 + i); for i:=10 to 31 do jegyek[i]:= chr(55 + i); // a program adatainak beolvasása: write('Kerem a szamrendszer alapjat:', #9); readln(alap); if not (alap in [2..32]) then begin ShowMessage('Csak 2..32 közötti érték használható'); halt; end; write('Az atvaltando szam:', #9#9); readln(szam); // a maradékok elhelyezése a veremben helyfoglalással: SetLength(verem,0); while szam<>0 do begin vm := length(verem); SetLength(verem, vm+1); // A verem méretének változtatása verem[vm] := szam mod alap; szam:= szam div alap; end; // a szám kiírása a veremből történő visszaolvasással write('A(z) ', alap:2, ' szamrendszerbeli alak:', #9); for i:=length(verem)-1 downto 0 do write(jegyek[verem[i]]:1); writeln(#13#13); // a dinamikus tömb felszabadítása Setlength(verem,0); readln; end.