主题:帮我看这个钟面成直角统计程序,能否更简洁或其他好方法
见笑了,有兴趣的帮看一下,程序运行的结果是时针转一圈时成直角的时刻及总次数
*从0时到12时,时针与分针夹角90度的次数
*本程序以分钟为步长,分针每分6度,而时针每分1/2度
*a*b用来判断直角,m,h分别为分、时钟转过的度数,t为直角个数,n为分钟转过的圈数,hh为直角时刻
clear
a=0
b=0
m=0
h=0
t=0
k=1
n=0
hh=0
do while k<=720
pd=.t.
if b<>0
a=b
endif
m=6*k
h=k/2
n=int(m/360)
do while pd
if m>=360
m=m-360
else
pd=.f.
endif
enddo
x=abs(m-h)
y=iif(m>h,1,-1)
if x<=180
b=x-90
hh=(n*360+y*90)/330
else
b=270-x
hh=(n*360+y*270)/330
endif
if a*b<0
t=t+1
??hh
if t/5=int(t/5)
?
endif
endif
k=k+1
enddo
?"t=",t
return
*从0时到12时,时针与分针夹角90度的次数
*本程序以分钟为步长,分针每分6度,而时针每分1/2度
*a*b用来判断直角,m,h分别为分、时钟转过的度数,t为直角个数,n为分钟转过的圈数,hh为直角时刻
clear
a=0
b=0
m=0
h=0
t=0
k=1
n=0
hh=0
do while k<=720
pd=.t.
if b<>0
a=b
endif
m=6*k
h=k/2
n=int(m/360)
do while pd
if m>=360
m=m-360
else
pd=.f.
endif
enddo
x=abs(m-h)
y=iif(m>h,1,-1)
if x<=180
b=x-90
hh=(n*360+y*90)/330
else
b=270-x
hh=(n*360+y*270)/330
endif
if a*b<0
t=t+1
??hh
if t/5=int(t/5)
?
endif
endif
k=k+1
enddo
?"t=",t
return