设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11368|回复: 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有吧
: D/ P" [2 P5 cloop
  {  c9 S( o; T8 j% Rloop [ commands ]
# O3 l9 f, W9 i- N+ rRuns the list of commands forever, or until the current procedure exits through use of the stop/ h3 }( K- r2 Z
command or the report command.
1 q$ [; S) L: Q% p( ^Note: In most circumstances, you should use a forever button in order to repeat something forever.  N6 L4 R) W! K
The advantage of using a forever button is that the user can click the button to stop the loop
# ~- S+ k) T) y1 F5 v% J$ ^( Y8 E+ Q+ ^) v
(version 3.1.3)# j, ?: L. ?6 B7 h0 {* b1 r
不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]0 U7 X9 l( j0 N: X
to setup  ~5 o( g! h4 l
   set p  1- ^% o" M- H" E" ~; b7 T7 R
   set p  p + 1, Q' n& ?) d! e% [% X
   show p  _6 @) v* y1 }* i2 X& p
   end% H! z6 Z0 K+ h& K4 ~) l# w
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。) h' b  c1 B) \# Y- d

4 c( i9 {/ H2 t. L% G& e8 y[ 本帖最后由 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 ]' k- B9 ^0 _% x6 X
to setup
, H- w% j# }- N( C  G7 K6 Xset ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]5 `6 c' V( ~) T4 g, ^! A' n5 V1 o
set ml filter [ ? = 1] ml
* ?& U: S5 G' w+ t4 E) v0 p8 C9 T; f! eset p  12 B9 F" A0 h( S7 `% P
repeat length ml [ set p  p + 1]" F3 y7 X( b9 n3 p- n: U* h  G; ?  \
if p > 100[stop]+ |0 M, _- m0 W
show p
2 ~: z1 B9 B9 Y& _) Yend
9 P9 G" M! r3 M8 c6 l4 `: ]( s, ?& D9 F4 F, i$ X0 \$ L# Q
像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?9 o7 s/ w! t/ C* u2 l% M

/ U! ]" j5 |/ o" x; t8 S[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
  E+ W( \0 g( o6 J6 u' sreduce [ ? 1 + ? 2 ][1 2 3 4]1 [) l* l2 ^7 s$ x% H
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-19 23:08 , Processed in 0.013816 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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