设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13434|回复: 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有吧
9 a9 j- U8 k' g1 T6 _; z4 Oloop
2 O6 J: L) L& e2 i8 O/ E, Gloop [ commands ]
, ?0 s6 C8 |) y& lRuns the list of commands forever, or until the current procedure exits through use of the stop
- D. E  f7 K, W; Ucommand or the report command.2 i: D1 Y3 u/ K2 e, I
Note: In most circumstances, you should use a forever button in order to repeat something forever.* v+ W% J$ n) X: V8 ]: M* T
The advantage of using a forever button is that the user can click the button to stop the loop
: L( E& G% @- C  i. t+ p, V/ x* N5 d4 y! ]7 {% U1 W$ s
(version 3.1.3)% F0 f7 w- q' v. J
不过好像不大推荐
 楼主| 发表于 2008-4-10 23:51:54 | 显示全部楼层

补充

globals[p ]; S+ K5 h0 \1 g& T% ^5 {
to setup
* C$ s# {+ C$ J9 s   set p  1
9 a  }- y# X. N: B- ^0 b   set p  p + 1
8 e! R, t. ~7 q" R   show p
, b7 b/ F! i  g   end3 r* u. q3 I( J/ P! x, H5 M3 }
我想表达的是让这个循环一直下去,直到p=100时才停止,logo语言该怎么写呢?除了repeat,可否用其它原语表示。
  {2 |8 R0 Q+ |* h8 B) w- Q. Y
! `- E  z% n! I4 N5 [0 A" e[ 本帖最后由 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 ]
# Z* S. o8 W0 Q/ e# Hto setup+ T: _% ?5 h; \5 h
set ml n-values 200 [ifelse-value (random-float 1 < 0.3 ) [0] [1] ]/ `3 S6 j, V$ }5 A# C5 j
set ml filter [ ? = 1] ml* a' k4 {( b1 Q: f: H3 X  V2 g1 g- L
set p  10 m( c; z: g6 M. V6 H4 M
repeat length ml [ set p  p + 1]
2 ?+ r2 ?  O3 M3 Uif p > 100[stop]
+ h* m, x6 u( b9 lshow p
! l) S. s% `9 s" m: f* b: eend% Y* {7 u1 ?) ~: H. h
/ ]3 e6 O) s' \
像这种简单的迭代加和还可以,但如果牵涉到多变量的迭代加和,不知道该怎么表达。还有,如果想取出运行中每个阶段的值而不仅仅是终值,该怎么取呢?/ U; z# M& B( e# N  M
9 ~& |# _* U+ }4 Z  ?$ _% o
[ 本帖最后由 wjcpcahu 于 2008-4-11 11:25 编辑 ]
 楼主| 发表于 2008-4-11 13:37:42 | 显示全部楼层

感激!!

什么都不说了,都在程序里了。
发表于 2008-4-11 15:21:00 | 显示全部楼层
reduce也可以做累加. D' c/ n( y  Q& B+ B, a
reduce [ ? 1 + ? 2 ][1 2 3 4]
, o8 e3 d: `: E7 A9 i9 }0 O) t& D相当于(((1+2)+3)+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-19 13:41 , Processed in 0.015403 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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