设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12420|回复: 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有吧4 c! Y/ B! l& |* h) G0 A- G  r
loop
# u& }! g* e7 V7 W" _# Lloop [ commands ]
7 i& D2 O/ @. x5 K! j) QRuns the list of commands forever, or until the current procedure exits through use of the stop. I- Y' F) p# P, }5 K; `  j" j
command or the report command.
7 h) N5 S/ n" T; k7 wNote: In most circumstances, you should use a forever button in order to repeat something forever.
/ m4 t/ s- a# PThe advantage of using a forever button is that the user can click the button to stop the loop
: Z* w- I! X% g, C" \+ e9 _
/ k7 G3 P( S( [, O(version 3.1.3)
/ @# Q$ W0 k! Q/ h( Z8 l9 R( }" l不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]* Y+ u! M" R6 I, T/ \+ S" K1 y
to setup1 q* s6 r1 g) ?
   set p  1
/ M* t5 f( [' X5 K& q1 q5 _7 [   set p  p + 1
. T( N4 R- E8 |& A3 U: N7 e   show p2 V. M( B8 v0 }% H  \
   end
% `, a! @' \; ^我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。6 J1 {; C* r8 C

- C' o4 s1 ?- P5 ]/ W9 R# p[ 本帖最后由 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 ]/ U0 k( D0 m4 S
to setup9 e- \- [+ r; p
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]3 v. K1 B$ E% m$ U" u8 K0 s$ d
set ml filter [ ? = 1] ml
1 j; m; |( n+ G+ ~* @set p  1
  N) Y5 M; Y' e% _8 v* k) d  Jrepeat length ml [ set p  p + 1]
7 x% J( y- H) {8 G1 n' uif p > 100[stop]
6 T4 @6 ^7 H7 q4 }' Zshow p
: a/ Y9 b5 |) F6 r2 R( Wend0 g9 ~7 Y- V% S7 x

; H. p5 M0 R1 L3 R& i! i! w: `像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?
, E, N2 K. D: @: Q$ x. y: Z* x( Q' q
[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加
* }# Q& \$ Y2 v$ A0 r9 K8 Ereduce [ ? 1 + ? 2 ][1 2 3 4]6 Q  e7 l9 o: E' }
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-13 08:20 , Processed in 0.013218 second(s), 13 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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