设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11931|回复: 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有吧
; T9 Y5 U3 f' Z! W. d7 ploop% G5 k; {5 K6 |# E4 p( y' `" S( K! Z* V
loop [ commands ]; h. D2 h& H2 s) e7 ~- q: ]
Runs the list of commands forever, or until the current procedure exits through use of the stop1 D1 V1 `0 U( z7 n) K3 {' D
command or the report command.; E2 ?- w( L. i/ h0 f2 e
Note: In most circumstances, you should use a forever button in order to repeat something forever.
0 v" w) x& K6 J9 v' y  z% ]0 p9 kThe advantage of using a forever button is that the user can click the button to stop the loop
  c7 T  O$ a2 _2 N2 d
; v( X2 e- J' b' K9 P(version 3.1.3)
+ w1 w& U# c' X6 T不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]' @& `# Q8 M- u& p
to setup5 ~% A/ W$ |# p% c% ~
   set p  1
) k2 \! x9 `2 o, L1 K% [   set p  p + 1
+ v& m& _. X( u$ ^   show p* p# f0 l0 t4 c( \* i& i
   end
" k0 b/ J1 t0 u3 l. C我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。7 i3 l9 w* ?8 u# t0 t6 I" [* b
5 F: ?) ~& C! A$ O' c3 b
[ 本帖最后由 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 ]
/ M* G: d* P/ |( h+ _1 H- w! O' z0 Hto setup
  X: `2 w3 |  \9 o. v# m" v8 m8 s$ ~8 Rset ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]  G% w! [3 ~/ k" j+ I+ v
set ml filter [ ? = 1] ml
8 _, I" O0 {  b* ~8 Q. Y% ~9 ]set p  1
: _5 h0 l- w7 W! D1 \  T2 srepeat length ml [ set p  p + 1]
9 X3 n  C2 \( U! A) lif p > 100[stop]
2 O: \- m& j+ T& w) z! @& sshow p
) b. y" q& u! Q$ l; X0 v& send7 k, g. C9 Y7 `& P( w" H

& O5 Z" X  f' q, B$ z8 D像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?
7 K/ }. j1 |! j5 E; X7 o  m6 H  m3 K
[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
+ U* ~/ r$ B( s6 v! G9 F# Vreduce [ ? 1 + ? 2 ][1 2 3 4]  w- l1 ~' G  {: c
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-5 01:27 , Processed in 0.016772 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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