I represent a sample code of a binary translator algorithm. If you have any questions don't hesitate to leave a comment. Thank you!
Program binary;
uses crt;
Type
pin=Array[0..14] of Integer;
var
number:Integer;
bintbl,result:pin;
ans:integer;
bnr:string;
Function power_of_2(power:integer):Integer;
var i,p:integer;
begin
p:=1;
for i:=1 to power do
p:=p*2;
power_of_2:=p
end;
Function bin(num:Integer):String;
var iplp,i:integer;
begin
repeat
iplp:=num mod 2;
if iplp=0 then
bin:='0'+bin
else
bin:='1'+bin;
num:=num div 2;
until num=0;
end;
Function cint(b:string):integer;
begin
if b='1' then
cint:=1 else cint:=0; end;
Procedure put_in(Var bl:pin; s:string);
var i:integer;
begin
for i:=0 to length(s)-1 do
bl[i]:=cint(COPY(s,length(s)-i,1));
end;
Function normal(bl:pin):integer;
var i:integer;
begin
normal:=0;
for i:=14 downto 0 do
if bl[i]=1 then
normal:=normal+power_of_2(i);
end;
Procedure print_result(res:pin);
var i:integer;
begin
for i:=14 downto 0 do
write(res[i]);
end;
begin
repeat
clrscr;
writeln('Binary Translator');
writeln;
writeln('What do you want to do?');
writeln;
writeln('1. Binary->normal');
writeln('2. Normal->binary');
writeln('3. Exit');
writeln;
readln(ans);
case ans of
1:begin
writeln('Give the binary');
repeat
readln(bnr);
until length(bnr)<=14; put_in(bintbl,bnr); writeln('The number is'); writeln(normal(bintbl)); print_result(bintbl); readln; readln; end;
2:begin
writeln('Give a positive number');
writeln;
readln(number);
writeln(bin(number));
prepare;
readln;
end;
end;
until ans=3;
clrscr;
writeln('By vaslabs');
writeln('Author: Vasilis Nicolaou');
readln;
end.
No comments:
Post a Comment