注册 登录
编程论坛 VFP论坛

请教这个循环语句

fdqzy 发布于 2022-11-26 19:18, 1594 次点击
在一张表中,字段结构规律如下(字段名是举例):
程序代码:
Create Table bb (m1_1 c(5),m1_2 c(5),m1_3 c(5),;
   m2_1 c(5),m2_2 c(5),m2_3 c(5),;
   m3_1 c(5),m3_2 c(5),m3_3 c(5),;
   p1_1 c(5),p1_2 c(5),p1_3 c(5),;
   p2_1 c(5),p2_2 c(5),p2_3 c(5),;
   p3_1 c(5),p3_2 c(5),p3_3 c(5),;
   k1_1 c(5),k1_2 c(5),k1_3 c(5),;
   k2_1 c(5),k2_2 c(5),k2_3 c(5),;
   k3_1 c(5),k3_2 c(5),k3_3 c(5))

   即:字段分为m,p,k三个类,每类下有n个小类字段(三类的小字段个数相同),每小类分别有3个字段。
要求在m,p,k中分别取一个字段组成一组进行统计,这个循环语句应怎么写?
谢谢!
15 回复
#2
my23182022-11-26 20:38
宏替换
#3
fdqzy2022-11-26 21:41
换个方式请教:
m1有n1个元素;
m2有n2个元素;
m3有n3个元素;
m4有n4个元素:
m5有n5个元素。
上面五类元素中,每类取一个与其他类组合,每次取3个一组,如何实现?

谢谢!
#4
吹水佬2022-11-27 00:13
没看明
#5
fdqzy2022-11-27 00:42
回复 4楼 吹水佬
谢谢版主!
举例如下:
m1(1)=aa1;
m1(2)=aa2;
m1(3)=aa3;
m2(1)=bb1;
m2(2)=bb2;
m3(1)=cc1;
m3(2)=cc2;
m3(3)=cc3;
m4(1)=dd1;
m4(2)=dd2;
m4(3)=dd3;
m4(4)=dd4
m1,m2,m3,m4中每次取一个元素,每3个一组:
组1=aa1,bb1,cc1
组2=aa1,bb1,cc2
......
组102=aa3,bb2,dd4
最后得到102组数
如何得到?

[此贴子已经被作者于2022-11-27 15:18编辑过]

#6
fdqzy2022-11-27 01:04
回复 4楼 吹水佬
版主:
   你以前有一个示例回复:
    https://bbs.bccn.net/thread-502821-1-1.html
我试试,不懂再请教!!!
#7
fdqzy2022-11-27 04:05
我用吹版主前面示例的方法不行,前面示例是3个数组,取数组成6个一组
,这是4个数组,取数组成3个一组。
请版主按上面的举例硬算,得到所有组的数据,谢谢!
#8
fdqzy2022-11-27 04:24
有了4个数组的取数方法,5个、6个…都好办了。
#9
独木星空2022-11-27 10:00
回复 5楼 fdqzy
如何用vfp实现,我现在还没有想好。
但是我想用两大层嵌套可以实现,最外层的嵌套简单,无非从四大类中任取三大类,或者把四大类去掉一大类。得到四种组合方式。
    第二层嵌套,就是选出的三大类中,每类取一个元素进行组合。
    有以上两大步可以完成任务。
最内层可以用个计数函数,开始设n=0,在内层每循环一次,加1.
而且同时,储存在三个字段内即可。
    运行完,结果也就出来了。
    你举得例子,最终结果为:2*3*3+3*3*4+3*4*2+4*2*3=18+36+24+24=102组,非72组。
#10
fdqzy2022-11-27 10:31
以下是引用独木星空在2022-11-27 10:00:50的发言:
最终结果为:2*3*3+3*3*4+3*4*2+4*2*3=18+36+24+24=102组,非72组。

对,谢谢!
#11
sdta2022-11-27 10:41
楼主的意思是数组数量不固定,每个数组的元素数也是不固定的吧,如5楼的示例所示,每个数组中的元素是不一样的吧?
#12
fdqzy2022-11-27 11:39
以下是引用sdta在2022-11-27 10:41:45的发言:

楼主的意思是数组数量不固定,每个数组的元素数也是不固定的吧,如5楼的示例所示,每个数组中的元素是不一样的吧?

谢谢关心!
就以示例为对象,硬计算,因为我目前而要统计的数组和数组内元素是可数的。

[此贴子已经被作者于2022-11-27 11:41编辑过]

#13
sdta2022-11-27 13:17
用FOR ENDFOR 嵌套,或者SQL命令处理
#14
fdqzy2022-11-27 15:25
以下是引用sdta在2022-11-27 13:17:09的发言:

用FOR ENDFOR 嵌套,或者SQL命令处理

如果是3个类,分别各取一个,这个好写。4个类及以上就不知怎么写为好。
请指教!
#15
fdqzy2022-11-27 15:30
请指教!

[此贴子已经被作者于2022-11-27 15:43编辑过]

#16
fdqzy2022-11-28 05:15
以下是引用sdta在2022-11-27 13:17:09的发言:

用FOR ENDFOR 嵌套,或者SQL命令处理

谢谢版主!
用SQL命令(动态语句)和4大类取3类硬算的方法解决了,且比FOR ENDFOR 嵌套速度快多了。
1