Program Konverter; uses crt; const szamjegyek: array[0..15] of char=('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'); type talap=(decimalis,binaris,oktalis,hexadecimalis); const szalap:array[decimalis..hexadecimalis] of string=('decimalis','binaris','oktalis','hexadecimalis'); const szralap:array[decimalis..hexadecimalis] of integer=(10,2,8,16); Type tszam=record szam:string; alap:talap; end; var egesz:integer; szovegbenszam:Tszam; mirol:Tszam; mire:Tszam; Procedure conv(egesz:integer; var szovegbenszam:tszam); var alap:integer; szamjegy:integer; begin szovegbenszam.szam:=''; alap:=Szralap[szovegbenszam.alap]; While egesz <>0 do begin szamjegy:=egesz mod alap; egesz:= egesz div alap; szovegbenszam.szam:=Szamjegyek[szamjegy]+szovegbenszam.szam; end; End; Procedure Konverte(mirol:Tszam; var mire:Tszam); var alap:integer; szamjegy:integer; i:integer; Begin egesz:=0; alap:=Szralap[mirol.alap]; i:=1; While i<= length(mirol.szam) do Begin CASE mirol.szam[i] of '0'..'9' : szamjegy:=ORD(mirol.szam[i])-48; 'A'..'F' : szamjegy:=ORD(mirol.szam[i])-65+10; End; egesz:=egesz*alap+szamjegy; i:=i+1; End; conv(egesz,mire); End; Begin clrscr; mirol.szam:='15'; mirol.alap:=decimalis; mire.alap:=binaris; konverte(mirol,mire); Writeln(mirol.szam,' ',Szalap[mirol.alap],' -> ',mire.szam,' ', Szalap[mire.alap]); readkey; End.