设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11459|回复: 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有吧- j8 d1 B) x. }) Y
loop
# g! G3 M: H% k7 _' \* Kloop [ commands ]: m8 ~! D" l+ e8 i& P( k% S
Runs the list of commands forever, or until the current procedure exits through use of the stop
8 Q; M2 \  d5 P4 g% j' I, P, s. e' qcommand or the report command.
, s* X# b" w4 n1 D3 m1 P, L7 y, `Note: In most circumstances, you should use a forever button in order to repeat something forever.4 n; D2 {1 f: ^. r: n5 _
The advantage of using a forever button is that the user can click the button to stop the loop  R4 r; R9 b; C2 e" o
5 m$ l: `, {$ O* ?
(version 3.1.3)# ^  G, A- `( o4 ]( T8 f
不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]' y1 F% D: a0 g2 y4 R
to setup$ B% C* d( {! H- a, A+ C% j
   set p  1
, G3 u: k% [" e/ e* h9 m   set p  p + 1' |# P% g9 q/ U1 c& e" K, a' o) M
   show p
* y( e. k* y1 t4 U2 S! \+ E9 k   end
3 S, ?, j& |5 a  [  [6 w) t我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。$ ?; o4 f, ~2 U$ |5 F
% T" `- F# Z9 |
[ 本帖最后由 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 ]
( w" m: q" w7 s# Pto setup/ H' \+ m) v6 F! L% J5 f; m
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]
( [: A2 d$ U  i- {2 xset ml filter [ ? = 1] ml
$ J3 c; ?" @* _/ z0 X. iset p  1
) \" n5 ]$ I6 ]9 W& Qrepeat length ml [ set p  p + 1]; @: O! ~0 E$ i; b. r0 M
if p > 100[stop]7 {- v& K9 Z6 r7 z: [7 D& D) R
show p 1 o4 {. Y6 I3 P0 e, }8 c
end, n; a; p: o* K" C/ Z
. W# h( k' a/ J5 b- a- [% g
像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?7 |$ m. B8 M7 f
6 S$ I7 |; z% [5 Q' Z' w3 _
[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
* j5 P* V' s) y) g- z. T+ P2 breduce [ ? 1 + ? 2 ][1 2 3 4]) X: j- h8 D2 ~* B2 j
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 03:24 , Processed in 0.016648 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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