Sie sind auf Seite 1von 4

program uts2; uses wincrt; var pilihan: char; selesai: boolean; dec,hex,i:0..maxlongint; a:array[1..

100] of string; procedure DecToBin; var hasilbagi, desimal,sisa: integer; biner,bin, bilbiner: string; begin write ('Masukan bilangan desimal: '); read (desimal); hasilbagi:= desimal div 2; bilbiner := ' '; while (hasilbagi >= 1 ) do begin sisa := desimal mod 2; if (sisa=0) then biner := '0' else if (sisa=1) then biner := '1'; bilbiner := biner+bilbiner; desimal := hasilbagi; hasilbagi := desimal div 2; end; bin := '1' + bilbiner; writeln ('Bilangan binernya adalah: ', bin); writeln; writeln('Tekan enter untuk melanjutkan'); readln; end; procedure DecToHex; begin write('Masukan bilangan desimal: '); readln(dec); i:=0; repeat i:=i+1; hex:=dec mod 16; dec:=dec div 16; if (hex = 0) then begin a[i]:='0'; end else if (hex = 1) then begin a[i]:='1'; end else if (hex = 2) then begin a[i]:='2'; end else if (hex = 3) then begin a[i]:='3'; end else if (hex = 4) then begin

a[i]:='4'; end else if(hex = 5) then begin a[i]:='5'; end else if (hex = 6) then begin a[i]:='6'; end else if (hex = 7) then begin a[i]:='7'; end else if (hex = 8) then begin a[i]:='8'; end else if (hex = 9) then begin a[i]:='9' end else if (hex = 10 ) then begin a[i]:='A'; end else if (hex = 11) then begin a[i]:='B'; end else if (hex = 12) then begin a[i]:='C'; end else if (hex = 13) then begin a[i]:='D'; end else if (hex = 14) then begin a[i]:='E'; end else if (hex = 15) then begin a[i]:='F'; end ; until(dec = 0); writeln; write('Bilangan Hexadesimalnya adalah: '); for i:=i downto 1 do begin write(a[i]); end; writeln; writeln; writeln('Tekan enter untuk melanjutkan'); readln; end;

Procedure HexToBin; Var des,desi : string; i, z,j,jlh,jlh1,a,z1,a1,K : longint; x,y,hasilbagi, desimal,sisa : integer; biner,bin, bilbiner: string; Begin Write('Masukan bilangan hexadesimal : ');Readln(des); desi:=des; write(''); jlh:=0; K:=0; for i:= length(des) downto 1 do begin if (des[i] in ['A','B','C','D','E','F']) THEN begin a:=ord(des[i])-55; a1:=i-1; if i= length(des) then z:=a else begin z1:=1; K:=K+1; for j:=1 to K do z1:=z1*16; z:=z1*a; writeln(z1); end; end else begin val(des[i],x,y); if i= length(des) then z:=x else BEGIN K:=K+1; if x=0 then z:=0 else begin z1:=1; for j:=1 to K do z1:=z1*16; z:=x*z1; end; end; END; Jlh:=jlh+z end; desimal:= jlh; hasilbagi:= desimal div 2; bilbiner := ' '; while (hasilbagi >= 1 ) do begin sisa := desimal mod 2; if (sisa=0) then biner := '0' else if (sisa=1) then biner := '1'; bilbiner := biner+bilbiner; desimal := hasilbagi; hasilbagi := desimal div 2; end; bin := '1' + bilbiner; writeln ('Bilangan binernya adalah: ', bin);

writeln; writeln('Tekan enter untuk melanjutkan'); readln; end; begin repeat clrscr; writeln(' Menu Pilihan '); writeln; writeln('1.Desimal ke Biner'); writeln('2.Desimal ke Hexadesimal'); writeln('3.Hexadesimal ke Biner'); writeln('4.Selesai'); writeln; write('Pilihan [1,2,3,4] : ');Readln(pilihan); clrscr; selesai:= false; case pilihan of '1' : begin DecToBin; readln; end; '2' : begin DecToHex; end; '3' : begin HexToBin; end; '4' : selesai:= true; else writeln('Pilihan salah'); writeln('Tekan enter untuk melanjutkan'); readln; end; until selesai; writeln('Selesai'); end.

Das könnte Ihnen auch gefallen