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. {Tizedest is! alap:=Szralap(mirol.alap); tortalap:=1/alap; egesz:=0; i:=1; Ciklus amig mirol.szam[i]<>'.' . . . Cilkus vege - egeszben megvan a jo ertek - tort:=0; ciklus amig (i>tponthelye) elagazas mirol.szam[i]= '0'..'9': szamjegy:= ORD(mirol.szam[i])-48; mirol.szam[i]= 'A'..'F': szamjegy:= ORD(mirol.szam[i])-65+10; elagazas vege tort:=tort*tortalap+szamjegy ciklus vege tort:=tort*tortalap konvert(egesz,mire); mire.szam<>mire.szam+'.'; alap:=Szralap(mire.alap); Tortalap:=1/alap; szamjegydb:=0; - tizedes pont utan ? db szamjegy lehet - ciklus (tort<>0) es (szamjegydb=0; db:=db+1; tort:=tort-tortalap; cilus v‚ge; mire.szam:=mire.szam+Szamjegyek[db]; tortalap:=tortalap+1/alap; szamjegydb:=szamjegydb+1; ciklus v‚ge End; }