Selasa, 08 September 2009

konversi2 pascal

dec bin
bin dec
hex dec
okt dec
dec hex


PROGRAM KONVERSI HEX KE DESIMAL


USES CRT;

VAR

A,F,Z,W:STRING;

B,D,N,M,I:LONGINT;

C,J,K,E,G,H,X,Y,O:INTEGER;

BEGIN

CLRSCR;

WRITE(’HEXADECIMAL=’);

READLN(A);

B:=LENGTH(A);M:=0;E:=1;X:=34;Y:=3;

FOR C:= B DOWNTO 1 DO

BEGIN

F:=COPY(A,E,1);

IF (F=’A') OR (F=’A') THEN F:=’10?;

IF (F=’B') OR (F=’B') THEN F:=’11?;

IF (F=’C') OR (F=’C') THEN F:=’12?;

IF (F=’D') OR (F=’D') THEN F:=’13?;

IF (F=’E') OR (F=’E') THEN F:=’14?;

IF (F=’F') OR (F=’F') THEN F:=’15?;

VAL(F,J,K);

H:=C-1;I:=1;

FOR G:=H DOWNTO 1 DO

BEGIN

I:=I*16;

END;

D:=J*I;M:=M+D;E:=E+1;

END;

WRITE(’DECIMAL =’,M);

READLN;

END.



Hasil:



HEXADECIMAL=FFFF

DECIMAL =65535

HEXADECIMAL=0000

DECIMAL =0

HEXADECIMAL=ABCDEF

DECIMAL =11259375



PROGRAM KONVERSI OKTAL KE DESIMAL



USES CRT;

VAR

A,F,Z,W:STRING;

B,D,N,M,I:LONGINT;

C,J,K,E,G,H,X,Y,O:INTEGER;

BEGIN

WRITE(’OKTAL=’);

READLN(A);

B:=LENGTH(A);M:=0;E:=1;X:=34;Y:=3;

FOR C:= B DOWNTO 1 DO

BEGIN

F:=COPY(A,E,1);

VAL(F,J,K);

H:=C-1;I:=1;

FOR G:=H DOWNTO 1 DO

BEGIN

I:=I*8;

END;

D:=J*I;M:=M+D;E:=E+1;

END;

WRITE(’DECIMAL =’,M);

READLN;

END.



Hasil:



OKTAL=65

DECIMAL =53

OKTAL=31

DECIMAL =25

OKTAL=1000

DECIMAL =512


PROGRAM Hex(input, output);

USES crt;

CONST
max = 30; {this is used for declaring ARRAY}

TYPE
hexadecimal = ARRAY[1..max] OF integer;

VAR
decimal: longint;
i: integer;
hexa: hexadecimal;

PROCEDURE convert(decimal: longint; VAR i: integer; VAR hexa: hexadecimal); {This procedure works the conversion}
BEGIN
i := 1;
WHILE decimal <> 0 DO BEGIN
hexa[i] := decimal MOD 16;
decimal := decimal DIV 16;
i := i + 1;
END;
END;

PROCEDURE writetothescreen(i: integer; hexa: hexadecimal);
VAR j: integer;
BEGIN
write(output, 'Number ', decimal, ' in hexadecimal is ');
{This is how you make a hex number}
FOR j := (i - 1) DOWNTO 1 DO BEGIN
IF hexa[j] < 10 THEN
write(output, hexa[j])
ELSE BEGIN
{Here, program checks for number larger than 10 to write a letter instead of number}
CASE hexa[j] OF
10: write(output, 'A');
11: write(output, 'B');
12: write(output, 'C');
13: write(output, 'D');
14: write(output, 'E');
15: write(output, 'F');
END; {End of Case}
END; {End of ELSE}
END; {End of FOR loop}
END; {End of Procedure}

BEGIN
clrscr;
write(output, 'Enter a number in decimal to be converted: ');
readln(decimal);
convert(decimal, i, hexa);
writetothescreen(i, hexa);
readln(input);
END.

Tidak ada komentar:

Posting Komentar