设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6614|回复: 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有吧) q" N3 E! O, }2 \# f6 z( V
loop
6 A; q1 F# t& N0 X) J% c/ Aloop [ commands ]
/ ^" U" s5 ~8 v* i; ?Runs the list of commands forever, or until the current procedure exits through use of the stop
9 b5 |& v" O4 [1 U* [1 \6 gcommand or the report command.  u# M9 ~  C7 ]
Note: In most circumstances, you should use a forever button in order to repeat something forever.
4 [" p4 O8 N% s% n( e, b3 f0 hThe advantage of using a forever button is that the user can click the button to stop the loop/ f1 O' n; l/ O) E
3 @! y7 |! {: V- ]6 R+ d* I
(version 3.1.3)
2 {9 j9 e) ]9 }9 n; Z2 G不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]
! d2 z( H7 X( ~# r6 H" U% I* Cto setup
  I, f: ^( W3 l   set p  1
3 t! H  Y7 X/ M) e( w   set p  p + 1
8 T; M9 X" M1 N3 k   show p* ]( T6 v- h! n& ~5 w
   end8 K5 y5 ~0 l3 W1 N/ G4 u8 f( c
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。
& b- o: c( Q9 x
7 @, T5 n  I. C* \8 D: B, W8 N[ 本帖最后由 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 ]
7 Z) {: j9 z. l8 u2 t2 Fto setup. Z# p0 X" U/ A8 V4 f
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
  r' u: @; Q/ b- k' Uset ml filter [ ? = 1] ml
/ `, M( N! N+ z- B9 C' W$ s+ \set p  1
; d' N9 u0 s6 N6 v2 U; drepeat length ml [ set p  p + 1]% k; K. x2 ?8 L
if p > 100[stop]2 e" g$ [4 R+ q9 Q3 V
show p , @8 }1 R& I& M; ^2 ]. e, C7 @
end
/ r1 l2 `0 z5 ]7 M- `4 \& C+ m
' E0 I; I' B, D: z  ^2 i/ P% K9 \" I. Y像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?* M6 v7 z% k" m3 W5 ?: o

3 Q8 D+ i; E! R1 w! g[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加* t8 d: V0 E( ^, O1 w1 y6 h
reduce [ ? 1 + ? 2 ][1 2 3 4]
7 s; }. u  A( {& ?$ B- ~相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 01:04 , Processed in 0.011619 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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