设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11193|回复: 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 G" V: j, k0 J; N
loop8 r5 y# ^1 ~: t# x- u
loop [ commands ]5 X) X! ?0 g% N' {6 C+ ~% U, x8 G
Runs the list of commands forever, or until the current procedure exits through use of the stop
. w* k9 s& `2 F4 p, I0 Mcommand or the report command.
9 G- b7 p) j/ b. X/ j3 ~8 Z4 _3 tNote: In most circumstances, you should use a forever button in order to repeat something forever.
) p" k3 B* Y7 M) f( V) aThe advantage of using a forever button is that the user can click the button to stop the loop! J/ V0 @; r( W1 m6 @& `' R

$ p6 a" x6 }. a, N! z(version 3.1.3)
6 o/ X0 ]& E& t  Z7 ^3 V; h不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]$ d, e( t# {% [6 c+ @
to setup( q# ^" n. C* K% |
   set p  1
, l0 x) d+ f3 W% F1 o% R   set p  p + 1& C7 Y! G+ P0 \* N8 n, b
   show p
5 Z6 ~& S' _. d8 q/ d3 F" j   end
7 A/ [) f& W6 k我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。. U" Y7 b. o% g# Y0 g9 z) L, q% M

% m; }/ ^  K4 |; m. P0 ?. Z, p" A: 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 ]& @6 v. i# I8 J! P& x
to setup3 z' K9 b1 ]' _7 x* o; h9 q
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
' o/ E+ g: d- h$ I3 F" Xset ml filter [ ? = 1] ml( l+ C( F3 X3 q0 S, ~. D  P
set p  1) V1 v8 H, i& S- v
repeat length ml [ set p  p + 1]( c8 I0 i+ j) J2 E6 ?0 ?
if p > 100[stop]
7 ~" P- i& D9 u/ V9 f" j2 }/ ]show p
- L. b) ?: [( O: z/ N3 Lend/ b2 q" l5 b2 n) l' A( o; l# m2 |, O

  n0 F$ g2 w; G6 O- |$ k像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?: M5 g8 q$ J6 P. g% g9 h

3 ^7 l$ S0 x! _: n% H5 ~6 H[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
: D, Z/ ~1 A9 d% Z" Nreduce [ ? 1 + ? 2 ][1 2 3 4]* m7 v: ^. z1 B6 `+ H1 f
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-21 06:50 , Processed in 0.016103 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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