Rss & SiteMap

搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp

搭建论坛是“搭建式”中文软件开发工具《搭建之星》、《网站·搭建者》技术交流的地方。
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[讨论]堆栈”数据控制 构件

1楼
从头再来 发表于:2010-8-1 11:11:25
请教“堆栈”数据控制 构件 如何使用,在什么情况下才使用,O(∩_∩)O谢谢
2楼
dbs 发表于:2010-8-1 11:47:13

先进后出,实际应用的不多;很多递归操作 可能用到。

3楼
从头再来 发表于:2010-8-1 19:36:47
谢谢回答,不过还是不明白
4楼
引力波 发表于:2010-8-1 21:53:08
在某种意义上讲,"堆栈"构件就是一个缓存器,把需要处理数据一个一个的"推入"堆栈中,在需要使用的时候再一个一个的"弹出"来,规则就是先进后出,很容易理解和应用.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新项目名称.rar

5楼
wbl051 发表于:2010-8-2 10:48:47
这个主要用在哪方面
6楼
从头再来 发表于:2010-8-2 12:16:50
谢谢引兄:有点明白了
7楼
玩脑者 发表于:2010-8-2 15:45:06
其实,你只要明白搭建的“代码”工作原理,你就明白“堆栈”是怎么回事了。
8楼
从头再来 发表于:2010-8-2 19:25:41
以下是引用玩脑者在2010-8-2 15:45:06的发言:
其实,你只要明白搭建的“代码”工作原理,你就明白“堆栈”是怎么回事了。

尽管我已经使用星有2年了,其实还是似懂非懂,准确的说:我只会做软件,至于原理就有点不好意思,我知道代码肯定是从上至下,从头到位执行,嘿嘿,就这么多

9楼
玩脑者 发表于:2010-8-2 23:46:47

例一:

参数> 自定义.数字:"1"
参数> 自定义.数字:"1"
参数> 运算.以上两项数值相:<加>
设置> 窗口1.普通按钮1.属性:(标题)

------

选择菜单中的“调试运行当前项目”

选择“单步”运行

在项目跟踪窗口中,可以看到,右边是你写的代码,左边是对应的值,左边那个值就是放在了“堆栈”里。这种效果你在“编译执行”的开发工具中是看不到的。

--------执行----------

1            //第一行代码值

1            //第二行代码值

2            //第三行代码值,即1+1的结果

堆栈清空   //这里因为赋值给了普通按钮的标题,所以清空了堆栈,如果不清空上面的值会传递给下要执行的方法。

 

或者说,在搭建中,在参数没有遇到“赋值”命令,或“带有参数的方法”命令时,是不会清空堆栈里的内容的。

同样是上面的代码:

参数> 自定义.数字:"1"
参数> 自定义.数字:"1"

参数> 自定义.数字:"1"
参数> 运算.以上两项数值相:<加>
设置> 窗口1.普通按钮1.属性:(标题)

-------------

我们再看,上面的代码就出错了,在堆栈中还会留有一个值,即:1

因为这个值没有参与运算,也没有相应的命令来接收,所以执行完上面的代码后在堆栈中还会留有“1”这个值。

 

例二:

参数> 自定义.数字:"1"
参数> 自定义.数字:"2"
参数> 自定义.数字:"3"
参数> 自定义.数字:"4"
参数> 自定义.数字:"5"
设置> 窗口1.行编辑1.属性:(当前编辑内容)
设置> 窗口1.行编辑2.属性:(当前编辑内容)
设置> 窗口1.行编辑3.属性:(当前编辑内容)
设置> 窗口1.行编辑4.属性:(当前编辑内容)
设置> 窗口1.行编辑5.属性:(当前编辑内容)
---------

看上面的代码,这里就体现了堆栈的“先进后出”原理

返回的结果为:

行编辑1.属性:(当前编辑内容)  被赋值为:5
行编辑2.属性:(当前编辑内容)  被赋值为:4
行编辑3.属性:(当前编辑内容)  被赋值为:3
行编辑4.属性:(当前编辑内容)  被赋值为:2
行编辑5.属性:(当前编辑内容)  被赋值为:1
-----------------------------------------

原代码还可以写成:

参数> 自定义.数字:"1"

设置> 窗口1.行编辑5.属性:(当前编辑内容)
参数> 自定义.数字:"2"

设置> 窗口1.行编辑4.属性:(当前编辑内容)
参数> 自定义.数字:"3"

设置> 窗口1.行编辑3.属性:(当前编辑内容)
参数> 自定义.数字:"4"

设置> 窗口1.行编辑2.属性:(当前编辑内容)
参数> 自定义.数字:"5"
设置> 窗口1.行编辑1.属性:(当前编辑内容)
==========================

在搭建里最容易出错的就是“连接以上字符串”这个命令

如果在写参数时,不小心或使用多个判断后,使用“连接以上字符串”这个命令,就容易出现错误。

因为“连接以上字符串”这个命令,是把堆栈中所有没有参与运算或被接收的值连接到一起。
=================

另外,你说的“我知道代码肯定是从上至下,从头到位执行,”这种方式只是在“解释执行”中才是这样的,“编译执行”不是这样的。

解释执行,不生成目标程序,每次执行一段代码都要重新解释。相当于翻译,你说一句我翻译一句,你又重复了同样的话,我就要再重复翻译一遍。

编译执行,编译时已经将源代码生成目标语言,之后通过连接程序连接到生成的目标程序进行执行。

 

所以,解释执行的效率会彽于编译执行。

 

10楼
development 发表于:2010-8-3 0:01:54
楼上讲的很深刻,也很经典,参考学习。
共11 条记录, 每页显示 10 条, 页签: [1] [2]

搭建之星 网站·搭建者 Copyright © 2000 - 2011
Powered By Dvbbs Version 8.2.0
Processed in 0.01563 s, 4 queries.