设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10256|回复: 7

[求助] 循环

[复制链接]
发表于 2008-4-10 17:04:15 | 显示全部楼层 |阅读模式
5仿真币
关于logo的循环结构程序可使用哪些源语啊?如loop,之类的,basic有很多,但在logo上好像不能使用。
 楼主| 发表于 2008-4-10 17:26:56 | 显示全部楼层

谢谢

我再摸索摸索。
发表于 2008-4-10 17:56:17 | 显示全部楼层
loop有吧
3 Z0 l9 J8 ?/ E$ [0 x1 p: \loop
+ E' U4 E0 g5 ~" F. h+ w& R) N9 N+ O, iloop [ commands ]
5 J2 ~% o7 I  {8 x7 u# }0 ]- XRuns the list of commands forever, or until the current procedure exits through use of the stop8 j+ g% g( Q6 T  r
command or the report command.8 a: Q2 q8 a' n( i5 v
Note: In most circumstances, you should use a forever button in order to repeat something forever.
9 a  e- ?, M/ w1 }5 ?The advantage of using a forever button is that the user can click the button to stop the loop
/ x6 ^3 i4 P6 v2 a5 Q+ |' D1 X) a3 K; t5 T( R+ u3 \% T$ {6 m( _
(version 3.1.3)
7 m- y. g) O; T: s不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]7 C+ ?2 P4 \7 v, k4 D
to setup0 |8 A# T9 E+ d; d% s& }8 D
   set p  1* ~  W* K/ S  M) Y* l
   set p  p + 1
) V. r4 y* {1 X" Q$ g7 j& I   show p  b. S* B) d6 S, P( A+ g* [
   end6 x8 B" k6 D6 G
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。
) a- p6 [$ K8 N& G* M: \" G9 S8 L& c7 a; r3 r* j, E0 Z
[ 本帖最后由 wjcpcahu 于 2008-4-11 10:25 编辑 ]
发表于 2008-4-11 10:35:25 | 显示全部楼层
将该procedure与一个forever的button建立联系,同时procedure中加一个if p>100[stop], 不知道楼主说的是不是这个意思
 楼主| 发表于 2008-4-11 10:58:31 | 显示全部楼层

多谢,看来还是要用repeat

globals[p ml ]
5 ^* h- |, x8 ?+ l; r# xto setup% n# V8 u0 q/ d! Z, B+ J# ]. d
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
+ n- A+ ?- c1 g" |set ml filter [ ? = 1] ml5 ]4 ?4 g6 _+ W, v+ p
set p  1
1 m- G5 a; w' s) A) Prepeat length ml [ set p  p + 1]
, c7 P% k* Z9 y3 Z" }7 Cif p > 100[stop]( R1 ^6 `% V+ i: X! }  v/ K- w, O
show p 0 _9 |, W8 ?/ d/ d2 X
end* B6 \( b& Q6 ^# Y
! L5 a* B) e& m; X$ ~. w/ R
像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?
4 M& D- [& T! `6 M
9 @' `% J% J. z$ R1 p( t" m5 a[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
5 m% w* u/ x1 X( I! Zreduce [ ? 1 + ? 2 ][1 2 3 4]
+ ^$ @2 f/ e. d- j相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2025-9-14 13:50 , Processed in 0.015800 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表