设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12208|回复: 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有吧
& c2 A8 `, n$ ^: X1 cloop3 t4 e* w3 \3 k, B1 x: s4 y
loop [ commands ]
6 r' \4 ^2 L' s7 |& v3 nRuns the list of commands forever, or until the current procedure exits through use of the stop
& a5 `: i- k3 D0 v: v' e- s2 Acommand or the report command.
3 a# \: v! q' ~( H0 |Note: In most circumstances, you should use a forever button in order to repeat something forever.; j' u! {% a- a6 ^: G" O
The advantage of using a forever button is that the user can click the button to stop the loop
$ T) K. q% e2 |" [2 L) e$ p- K4 D: ^, Z+ R
(version 3.1.3)
4 i7 j! J. C, y4 f( u) y5 v! c' L不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]$ }* p. A. @# W& k
to setup+ e: y% p( \# b% j: K
   set p  1) V1 w. q& W# N  D6 ]
   set p  p + 1
, C5 c/ B2 J$ R% A* ]9 t   show p9 b4 @  B& K- S( F' q) n8 q. x! D
   end
& \4 R. J: A# C! P7 ^, G+ x我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。
) Y% W0 B, C+ c$ X* \6 X9 \
: R% q/ V: h" E8 @  S[ 本帖最后由 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 ]" \  T% Y& q3 a4 y$ [% \% S1 w
to setup6 Q1 V: u( c  K4 g" Y' \6 ]
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]4 }% T# y+ b- J6 }) `+ X
set ml filter [ ? = 1] ml
$ y  g  D/ a0 V0 |) f/ Vset p  1" d5 U9 r; g0 u' {) b/ k" j
repeat length ml [ set p  p + 1]
( y. L& W* o* G3 k. Fif p > 100[stop]- b% c9 Z9 D1 k( U- H
show p
& V8 _+ X9 H5 A' D2 _end$ p8 D* d, j4 Y9 c# @7 g

# t6 ]- K: u! n+ y5 }! H9 N+ F像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?3 B* n* z. I: D. l, p
1 C+ l- N( O8 ?0 A* v
[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加& U0 @0 ^8 p9 B4 G' w& D1 |  p
reduce [ ? 1 + ? 2 ][1 2 3 4]0 m( F( |) ?/ A7 m/ f$ n& ?; l
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-5 12:14 , Processed in 0.015911 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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