设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12480|回复: 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有吧
/ C: D8 n* c4 eloop
, h0 m+ D" g' Z8 Z/ _; {- G  Nloop [ commands ]
4 M/ f, d5 x6 r! v2 C9 t& C  xRuns the list of commands forever, or until the current procedure exits through use of the stop# X: H$ d# I" Y2 [
command or the report command.
0 O8 D: S1 Y% ~4 C; p% z5 o& p' uNote: In most circumstances, you should use a forever button in order to repeat something forever., |, Z  N  Q/ h
The advantage of using a forever button is that the user can click the button to stop the loop" w& g2 Q4 i  k2 K
3 O) z  `6 b" k2 ]
(version 3.1.3); @$ S7 T1 j0 [/ B6 Z" x
不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]1 n8 M( h, F- `6 |
to setup
! }1 R; ~$ t& q  n0 H1 ]4 [* y; C   set p  1) O2 [+ c8 l/ x/ |! b7 g" n6 j9 i
   set p  p + 1# Q8 p! y3 q  `0 c  L& s) T
   show p! k0 m4 }& R" c  I
   end% W) d$ M& H) u1 x
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。
4 F1 D& h  I9 [. `; R+ E3 S. ^2 Y  E& T* S1 a
[ 本帖最后由 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 ]' Q+ P* U: _4 u" ]" C
to setup% A% G) u' ~( D8 b, q1 d
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
  W2 t; U. I9 ?# ?9 W% M; eset ml filter [ ? = 1] ml& k. n. J' ]* [1 V2 B, j% M- V
set p  11 s* F7 N9 k" o
repeat length ml [ set p  p + 1]
6 D7 i: s0 n2 w) Lif p > 100[stop]
5 n6 p% U  Z  b5 Sshow p - V4 ~9 r  b( d1 e, F
end
. d' F8 K$ a" F6 W0 L. ]9 {! Q* y% z2 y, |' \7 y) E: l' S7 T% @2 W" g
像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?: |+ H, f# V1 z5 m9 w

1 r  E+ |# U. n! c7 J[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加: {0 N- t1 u7 b7 u4 ]
reduce [ ? 1 + ? 2 ][1 2 3 4]
" a* |0 e' z4 a* T6 h7 i( ^! W相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-24 22:17 , Processed in 0.015504 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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