📄 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 a<b then begin
t:=a;a:=b;b:=t;end;
a:=a-b;
until a=0;
divisor:=b;
end;
procedure main1;
var i,t:byte;ok:integer;
begin
t:=pos('.',str);
val(copy(str,1,t-1),intzi,ok);
delete(str,1,t);
unlooplen:=length(str);
val(str,unloopzi,ok);
str:='1';
for i:=1 to unlooplen do str:=str+'0';
val(str,mu,ok);
zi:=intzi*mu+unloopzi;
temp:=divisor(zi,mu);
zi:=zi div temp;
mu:=mu div temp;
writeln(zi,'/',mu);
end;
procedure main2;
var i,t:byte;ok:integer;
begin
if pos(')',str)<length(str) then begin
writeln('You have wronged your writing,I have correct it!');
if pos(')',str)<>0 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.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -