|

楼主 |
发表于 2025-6-15 12:22
|
显示全部楼层
SELECT 1
USE d:\最密四生素数文件\四中升序.DBF ALIAS 四中表
SELECT 2
USE d:\最密四生素数文件\四中和值34.DBF ALIAS 四中和34
SELECT 3
USE d:\最密四生素数文件\四中统计表.DBF ALIAS 四中统计表
kssj=SECONDS()
SELECT 3
GO 1
FOR k=1 TO 17
@ 9,6 say k
jl1=recno()
PUBLIC ZL1
ZL1=总量
PUBLIC FL1
FL1=分量
czhi=35-k &&czhi代表差值,即合成区间分量
SELECT 3
GO czhi
PUBLIC ZL2
ZL2=总量
PUBLIC FL2
FL2=分量
SELECT 1
GO ZL1-FL1+1 &&定位在第一个参与运算值上,本次运行交叉部分,外循坏取前段,内循环取后段,一次产生两组
FOR i=1 TO FL1
&& @ 19,16 say i
jl=recno()
PUBLIC A
A=ssz
SELECT 1
GO ZL2-FL2+1&&到段区起始位置
FOR j=1 TO FL2&&循环本区间的数据量
PUBLIC B
B=ssz
n=A+B
c=INT(n/210)*5-350574510&&10623470*33
d=(n-210*INT(n/210))/30
IF d<2
SELECT 2
GO c+d
REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
ELSE
SELECT 2
GO c+INT((d+INT(d/2))/2)
REPLACE sztj WITH sztj+2 &&本次运行(a+b)的平方交叉部分
ENDIF
SELECT 1
skip
ENDFOR
SELECT 1
GO jl+1
ENDFOR
SELECT 3&&原来这里没有选择工作区导致第二次循环时中断
GO jl1+1
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
原先在最外层没有选择工作区,导致第二次循环时失败,没有找到变量“总量” |
|