设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12457|回复: 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有吧
) n) Z8 {9 a2 O" ?loop$ O& J/ o2 f1 ~: w8 J1 F3 @: k: e" \
loop [ commands ]2 S( l( }0 ?5 i- i$ W
Runs the list of commands forever, or until the current procedure exits through use of the stop3 _* H! q+ [/ F) J$ H1 k, f
command or the report command.! t6 p9 f* B8 [. t% U/ q& f
Note: In most circumstances, you should use a forever button in order to repeat something forever.# b/ }' L" K: w7 f5 x2 Q! J
The advantage of using a forever button is that the user can click the button to stop the loop
2 b7 k$ Z' ^( q$ \  T% N. F
  U( e8 F7 H/ h8 Q: R6 X4 C' G(version 3.1.3)$ _- Q& I7 A! i
不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]4 n9 Y+ p' h" G3 W+ k" j: l
to setup
- G* c3 L! q6 h8 [" |, X2 Z0 ~   set p  1: x& k& |; X. p  \8 t" @. R
   set p  p + 1
; E8 _' e. Q3 y% O% Z+ B& j5 r' O   show p3 c* [. u  [3 ]! E# x  ^+ C
   end3 f: }1 N7 ]# @9 e" |; R0 C
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。4 j7 d. f) {: Q0 k5 Y0 ?/ W# l

! D2 T) ^$ i0 a" ^3 I[ 本帖最后由 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 ]
- v, O7 B& W# k$ z2 E0 e1 D  y# eto setup' V; Y0 N/ d8 i. x" V* A8 |  m
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ], @/ n) z. E5 c* Y& u! i1 @( N
set ml filter [ ? = 1] ml
' C5 z0 Y, ?7 Z0 S$ g' i) bset p  16 S) V' _2 P' Q9 U  k0 T
repeat length ml [ set p  p + 1]" Z4 B" k* j  M: I$ k( Q8 O
if p > 100[stop]
8 \) o. l8 [: e* A+ B: zshow p
% _* @  C; P6 lend
/ W& O2 [- |! }2 b( {1 E- W
- h* @6 [, M, \& j像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?1 _0 |2 T: d6 W2 v4 d  o0 O# K) S* G

/ }' c- W6 d% U8 F0 z) R8 ^[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加3 C+ ~& {! s9 T6 m
reduce [ ? 1 + ? 2 ][1 2 3 4]4 y/ b  |* @' d, O9 t
相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-17 21:03 , Processed in 0.015762 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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