设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11144|回复: 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有吧
0 n: y% v" Q% z8 r, C) Zloop
, H0 y/ P/ M/ U. k7 G+ mloop [ commands ]
9 J" _# ]4 \+ CRuns the list of commands forever, or until the current procedure exits through use of the stop; Z4 \# ~6 Z7 O5 K0 W' [% f
command or the report command.
" R- y3 w# C* _6 B% m5 a& K0 T' YNote: In most circumstances, you should use a forever button in order to repeat something forever.5 u* I  [% F2 A" ^
The advantage of using a forever button is that the user can click the button to stop the loop
0 Z2 |! a1 p5 Q$ o% ?) k* q9 V# b
(version 3.1.3)
% Z7 |( B+ t# o不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]$ w- L) ~" u6 x1 w: ?& Z# V/ |
to setup: B" ?, {/ P- \' X" F9 h
   set p  14 O6 t: j8 H) z$ H
   set p  p + 1
0 c; ?  w; R% W2 S   show p
& f. z2 Z; M5 ?$ [8 \  \# S1 U5 @; a   end8 u, Z. y. j" R; ^
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。
$ B7 t; D5 D4 N0 }- o) B* a3 G5 R5 `1 u0 p1 d( P% s" 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 ]
& Y- p$ V/ M" C! g7 _+ c9 bto setup; r* k3 q" m: b# P$ i2 g9 g4 v  {
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
1 g, V! S, W: S, ]1 l* }1 p! d: [set ml filter [ ? = 1] ml
) g$ W- C0 u' J8 oset p  1
* `. i/ U: \, A5 |; D: vrepeat length ml [ set p  p + 1]! i9 z- [" L4 i+ h3 w8 T
if p > 100[stop]$ a/ w' z, W- `% p: q. c9 b
show p 2 E! c: R+ M' H: {8 @
end
* ~. h0 s. q( m. k: b1 ]3 z! ~! V  {* y8 ~5 y# J
像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?
4 T( \) t$ z, a
! V+ }* V  m2 b9 i1 ?/ ^[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
, {) }% P9 }8 yreduce [ ? 1 + ? 2 ][1 2 3 4]* j7 L/ ^( t; U; R( b% ?8 r
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-15 16:01 , Processed in 0.017366 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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