www.pudn.com > CHANGE1.rar > CHANGE1.PAS
program change;
var intzi,unloopzi,zi,mu,temp:longint;
looplen,unlooplen:byte;
str:string;
flag:boolean;
function divisor(m,n:longint):longint;
var a,b,t:longint;
begin
a:=m;b:=n;
repeat
if a0 then delete(str,pos(')',str)+1,length(str)-pos(')',str))
else str:=str+')';
end;
t:=pos('.',str);
val(copy(str,1,t-1),intzi,ok);
delete(str,1,t);
t:=pos('(',str);unlooplen:=t-1;
val(copy(str,1,t-1),unloopzi,ok);
delete(str,1,t);
t:=length(str);
looplen:=t-1;
delete(str,t,1);
val(str,zi,ok);
str:='';
for i:=1 to looplen do str:=str+'9';
val(str,mu,ok);unloopzi:=unloopzi*mu;
for i:=1 to unlooplen do str:=str+'0';
val(str,mu,ok);intzi:=intzi*mu;
zi:=zi+intzi+unloopzi;
temp:=divisor(zi,mu);
zi:=zi div temp;
mu:=mu div temp;
writeln(zi,'/',mu);
end;
procedure judge;
var strt:string;
begin
flag:=false;
strt:=str;
delete(strt,pos('.',strt),1);
delete(strt,pos('(',strt),1);
delete(strt,pos(')',strt),1);
if (pos('.',strt)<>0) or (pos('(',strt)<>0) or (pos(')',strt)<>0) then flag:=true;
end;
begin
writeln('Please input a number with using brackets to show where the loops is:');
readln(str);
judge;
if ((pos('.',str)=0) and ((pos('(',str)<>0) or (pos(')',str)<>0)))
or ((pos('(',str)=0) and (pos(')',str)<>0))
or flag
then writeln('Are you kidding me?')
else if pos('.',str)=0
then writeln('foolish ',str)
else if pos('(',str)=0
then main1
else main2;
readln;
end.