乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 38|回复: 2

循环获取编号规则

[复制链接]

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2007-4-27 09:50:22 | 显示全部楼层 |阅读模式
我已经尝试过X = # 到#我还没有弄清楚。 我不确定我是否需要使用
“执行”或“同时”?
我基本上需要一个循环来返回所有序列,直到某个#。
如果选择的项目数 = 2,那么我需要一个循环来返回 1&2 和 2&1。
如果项目数 = 3,那么我需要返回 1&2&3、1&3&2、2&1&3、2&3&1、3&2&1、3&1&2。
基本上,这些项目必须按特定顺序选择(出于许多原因),这将
确保无论某人如何选择项目,最终结果将始终按一定的顺序计算。
如果需要,我可以提供更多详细信息,但现在我只需要帮助创建一个循环来返回所有可能的序列。
序列将始终为 1 到(用户选择的项目数)
提前致谢。
凯文

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2007-4-27 09:58:33 | 显示全部楼层
下面是一个获取阶乘数的函数
  1. Function FACTORIAL(x As Integer) As Integer
  2. Dim i As Integer
  3. FACTORIAL = 1
  4. For i = 1 To x
  5. FACTORIAL = FACTORIAL * i
  6. Next i
  7. End Function

回复

使用道具 举报

12

主题

150

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2007-4-27 10:13:57 | 显示全部楼层
在将数据添加到数组后,可能需要使用两个for循环
这样做的问题是从数组中删除数据有点复杂。我这样做的方式是创建一个类型数组
  1. Public Type typPLinesArray
  2.   MyHandle As String
  3.   MyLineTypeScale As String
  4.   Used As Integer
  5.   MyStartPointX As Double
  6.   MyStartPointY As Double
  7.   MyStartPointZ As Double
  8.   MyEndPointX As Double
  9.   MyEndPointY As Double
  10.   MyEndPointZ As Double
  11. End Type

在代码中,您还需要创建要使用的数组,因为我们只定义了上面的类型:
  1. Dim MyPLinesArray2() As typPLinesArray

现在用您的数据填充MyPLinesArray2(),设置每个字段
根据需要调整…您将为您在类型
中定义的每个区域提供一个下拉列表
  1.    
  2.                 MyPLinesArray2(PolyLinesFound2).MyHandle = MyLWPoly.Handle
  3.                 MyPLinesArray2(PolyLinesFound2).MyLineTypeScale = MyLWPoly.LinetypeScale
  4.                 MyPLinesArray2(PolyLinesFound2).Used = 0
  5.                 MyPLinesArray2(PolyLinesFound2).MyStartPointX = PolyStartPoint(0)
  6.                 MyPLinesArray2(PolyLinesFound2).MyEndPointX = PolyEndPoint(0)
  7.                 MyPLinesArray2(PolyLinesFound2).MyStartPointY = PolyStartPoint(1)
  8.                 MyPLinesArray2(PolyLinesFound2).MyEndPointY = PolyEndPoint(1)
  9.                 MyPLinesArray2(PolyLinesFound2).MyStartPointZ = PolyStartPoint(2)
  10.                 MyPLinesArray2(PolyLinesFound2).MyEndPointZ = PolyEndPoint(2)

请注意“用作整数”行
一旦我使用了该值,我会将其值更改为1,因此我知道我已经使用了它。当然,您必须为此编写一行代码
  1. If MyPLinesArray2(X).Used = 0 Then

一旦您的阵列(基于您自己的个人类型)被填充/变暗,您就可以处理它了。
基本轮廓是:
  1. For X = 0 To UBound(MyPLinesArray2)
  2.                     Num1 = MyPLinesArray2(X).MyStartPointX
  3.                     'Whatever you are looking for...
  4.                           For Y = 0 To UBound(MyPLinesArray2)
  5.                            
  6.                               If MyPLinesArray2(Y).Used = 0 Then
  7.                                    Num2 = MyPLinesArray2(Y).MyStartPointX
  8.                                    MyString =  MyString & "," & Trim(Str(Num2))
  9.                                    MyPLinesArray2(Y).Used = 1
  10.                               End if
  11.                          Next
  12. Next

您需要添加大量代码,第一次通过条件检查构建字符串,可能需要两个不同的.used列,.used1和.used2,以及在重新开始时将其中1个重置为0的代码。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 17:45 , Processed in 1.828325 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表