设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12496|回复: 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有吧6 l0 E. F" O# Z9 U3 }9 y' _6 n
loop( i6 A/ S  S, R/ I+ l
loop [ commands ]+ V% P+ Y, a" @% R4 o$ ?- d: _7 P
Runs the list of commands forever, or until the current procedure exits through use of the stop
6 P3 @$ |+ G1 h9 O0 [5 r" I/ |) icommand or the report command.
7 @8 L' N2 ]7 R# I" s, wNote: In most circumstances, you should use a forever button in order to repeat something forever.2 M; Y# Q, V5 I8 x
The advantage of using a forever button is that the user can click the button to stop the loop5 ~$ {' ]) X5 e

4 |2 C. Q$ s2 W# L5 i( f! l% V(version 3.1.3)1 F; T) ^+ B+ b: ]! w
不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]
0 R' i' q# r* _# U9 c+ ito setup
0 T9 E! \& r. l8 T- E   set p  18 Q9 w" I4 l; x. {4 n1 G
   set p  p + 1( [- |) P* Q$ x( F; |; K; ^
   show p
$ a0 |* A8 n9 p! W7 |# d   end
+ V/ I% B5 ]; d' e我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。* u% b0 W( Z& s) \& G- S* P
6 [; l6 Z7 h) V1 }7 ~1 _% W3 Z8 T
[ 本帖最后由 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 ]. @* [9 s4 o- [
to setup
, i6 H0 ?; a/ `8 `' V) X: Cset ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
  w, d; I" V& K$ c1 pset ml filter [ ? = 1] ml
$ t& _+ _  A# k4 E# t+ p5 Gset p  1
' U+ d. U* a0 G9 w! A( f/ ]repeat length ml [ set p  p + 1]
/ C* n& S* O* W+ b9 [if p > 100[stop]
6 |& `/ ]5 o! `; b* {show p
$ m& t# l; S3 n9 E! Nend2 z3 Y, D7 ^( K0 B7 ^0 n0 T) u# @

+ A' Y: g1 j* N: p( v像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?2 Q7 U  M1 o9 y% w9 h9 |  g8 M9 P

- u& D  M2 G' i9 W7 X% y[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
- A/ A2 u+ D0 u) Hreduce [ ? 1 + ? 2 ][1 2 3 4]  f+ e6 k  F4 e" C  o9 z
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-26 20:37 , Processed in 0.013364 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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