简单的编程,谁能试试? 点击:10157 | 回复:120



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-02-10 16:13:00
楼主
河内塔游戏的编程算法, 手机上的河内塔游戏,一般人都很熟悉,现在把它用PLC语言,实现出来,不知有人会否, 就是,假设有N个圆片在A柱上,从小到大,分别为,1,2,。。。N,三个塔柱分别为A,B ,C,现要从A移动到C,以为B过度,也是从小到大排列,移动的过程,只能小圆片放在大圆片上,不能反。计算结果放在连续地址列,指针数就是移动的次数,三个塔之间的移动的方式一共六种,A—B,A—C,B—C,B—A,C—A,C—B,在地址中只要以代码的形式例如 1,2,3,4,5,6,就行, 计算的结果在连续地址中,地址存的六种移动方式的次序,最终能完全实现由A到B的移动。 地址的长度为:2的N次方-1,也就是需要移动的次数, 哪位高人能试试,不一定要用代码,把算法详细讲解也可以。 .........



gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-12-24 20:50:00
21楼
我有个想法: 做一个数据块.长度为n+1. 将第一步的操作填到第一位,下一位填结束位(比如0). 在做一个轮换程序.到结束位就轮换一次.再在最后一位前添加一次操作. 第二步,将本数据块执行到结束,再轮换一次.再在最后一位前添加一次操作. .... 第n步,将本数据块执行到结束.

byljz

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2003年12月24日
发表于:2003-12-24 21:48:00
22楼
2片操作:AB AC BC 3片操作:AB AC BC(AB) CA CB AB C-》A A-》B B-》C “C替代A等“ 4片操作:AB AC BC AB CA CB AB (AC) BC BA CA BC AB AC BC C-》B A-》C B-》A ”C替代B“ 以下重复(AB)”C替代A“ (AC)”C替代B“.......

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-24 23:13:00
23楼
Structured Control Language http://www4.ad.siemens.de/WW/llisapi.dll?func=cslib.csinfo&lang=en&siteid=CSEUS&objid=11153295

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-25 00:03:00
24楼
to 小楼, 你有问题需要回答.抱歉把你从理论高度拽回到现实.

不懂不想装懂

  • 精华:2帖
  • 求助:0帖
  • 帖子:64帖 | 87回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2003年11月07日
发表于:2003-12-25 09:36:00
25楼
小楼兄: 如果我没有弄错的话,第一块最小的摆放位置是有学问的,它可以摆在B,也可以摆在C,我总结了一下,当N为双数时必须摆在B,当N为奇数时必须摆在C,只有这样才能达到最少的移动次数,也就是你说的2的N次方减一次,因此编写程序的时候是否也需要编制两套程序,用两个输入控制,双数按一,奇数按二。虽然两套程序的移动方法差不多。 还有这里我有个问题,你光靠一个普通机械手就能判断你所搬动的那块就一定是你想搬的那块东西么?全部虚拟也是没有什么意思的,你总得考虑一个定位问题吧,不然谁知道你编出来的这步移动是不是就是搬动指定的那块。 呵呵,愚人之见,愚人之见

teddy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2003年12月16日
发表于:2003-12-25 10:49:00
26楼
TO:小楼 这在PLC上有什么意义所在? 抑或是你要改行当数学老师了?

利昌機電

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 288回
  • 年度积分:0
  • 历史总积分:301
  • 注册:2003年10月12日
发表于:2003-12-25 17:00:00
27楼
看你幾個ch ,數值化為16進制,差分用遞減或遞加隨你,到預設值再重複迴圈! 用bit不是太麻煩!呵呵!想太多!

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-25 22:21:00
28楼
to 小楼,   拜托不要锻炼思维了,好好踏踏实实地研究PLC吧,这样你才不会曲高和寡。

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-25 22:28:00
29楼
小楼老师:   PLC的问题就不问你了,但是算术的问题(不是数学)以后还是要向您请教的,不要嫌弃哦!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-12-25 22:50:00
30楼
TO wangliguo 这个问题,用轮换程序,我感觉是比较难实现的,最终需要的是程序能够自动寻优的,也可以说,有点象是活的程序,它根据不同的N值,来进行排列,而且每进行一步,算法程序都能判断出是目前三个柱是一种什么样的状态, TO byljz 你说的还有点象是思维的步骤,我感觉还不能通过程序语言建立,也可能是我没有理解透彻,见笑。 TO rickyxu 其实我很想听听你对这个问题的见解和看法,呵呵,感谢你对我迷茫之处的解释。谢谢! TO 不懂不想装懂 1、你考虑的是对的,但是,不用编制两套,都是一样的,只是相对的,程序会自动根据N值来判断出先移哪块的, 2、你只需按找顺序驱动就可以了,因为你移动的那根一定是这根柱上最短的,另外程序当然得能判断出它移动的是哪一块,不然就失去意义了。 TO teddy 只是觉得 他山之石,可以攻玉。我也当不了数学老师,因为要搞高等数学模型,这个东西不值一提,甚至拿不出手去,呵呵,让你见笑了,我的高等数学不是很好,又是一个小小的本科生,想当老师人家也不让啊。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-12-25 23:02:00
31楼
TO RICKYXU 谢谢你的提醒,但是我这个人是很不安分的,呵呵,我对PLC,上位,VB,数据库,网络,都是很感兴趣的,PLC自然是不会例外的, 我工作四年,入行三年,所学颇杂,就是不精啊,但是还好都撑下来了,感触最深的就是,所学太少,然后碰到行业内的一个高手,他对我说的这些PLC,上位,VB,数据库,网络,都是精通无比的,受到他的启发,也开始学习,但水平难以望其项背,呵呵,

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-12-25 23:30:00
32楼
rickyxu 你可能理解错了,我上学的时候,算术,数学都是很差劲的,你别跟我学啊,那岂不是误人子弟了, 另外啊,我也不明白,象你所说 锻炼思维,就会曲高和寡,踏踏实实学PLC就不会曲高和寡,也就是说PLC不锻炼思维,是这个意思么,可也不要忘记,PLC的全称是什么啊,可编程逻辑控制器,没有人性化的编程语言,不加入人的思维,那它真的是什么也干不成啊,那它不只是曲高和寡,而是无人来和,如果你解不出这个题目,或者你觉得很简单不值一提,都可以保持沉默。论坛自然是以理服人,且以礼待人,这样才是礼仪之士。 说多了,见谅!

byljz

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2003年12月24日
发表于:2003-12-25 23:58:00
33楼
ABC简单编码后,通过左移,右移实现ABC替代。

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-26 10:47:00
34楼
我碰见太多的工程师,有很丰富的经验,几乎各种PLC和各种传动都搞过,所学颇杂也. 但是碰到任何问题都搞不定,令我困惑. 精一样比懂百样更有用,方法对了,往往会触类旁通,一通百通. "PLC,上位,VB,数据库,网络,都是精通无比的"究竟是如何的厉害? 只可惜没有机会看到好的东东,就以为天就那末大,磁悬浮是靠"河内塔"的"思维能力"能悬起来的吗?要看到差距,不要太阿Q了,鬼佬也有比你更聪明的人,但更有强大的基础科研撑着.92年毕业时的课题是"xx光栅的多元非线性方程式求解",是863项目的一部分,计算结果有了,但微电子所照排机分辨率太低,化学刻蚀深度无法精确控制,实验结果可想而知.唯一自豪的是"中国人的思维能力不比任何人差",哈哈!!

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 49回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2003年11月11日
发表于:2003-12-26 11:03:00
35楼
各位同道中人: 此乃工控论坛而非斗嘴之所,纯技术交流之处不可挪为他用哦!

Zane

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 44回
  • 年度积分:0
  • 历史总积分:107
  • 注册:2001年12月28日
发表于:2003-12-26 11:09:00
36楼
实际的应用中,除了讲技巧,还是以讲实用为主的。 我喜欢理论指导实践,实践发展理论。

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-26 11:14:00
37楼
同时也要以正视听,以免初学着走火入魔.

teddy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2003年12月16日
发表于:2003-12-26 11:18:00
38楼
这种对话实在是鸡同鸭讲,让旁观者都看着吃力。 to rickyxu 可惜,你在这里被他浪费精力。

Zane

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 44回
  • 年度积分:0
  • 历史总积分:107
  • 注册:2001年12月28日
发表于:2003-12-26 11:29:00
39楼
TO 小楼 我们用S7-200按你的要求编一个程序吧。

rickyxu

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 50回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2003年12月01日
发表于:2003-12-26 12:04:00
40楼
TO 小楼   在另一贴子中,你有机会用你的思维来表现你"人性化的编程语言,和人的思维",那是一个已完成的项目中的一小部分,同时也非常 实用."PLC的全称是什么啊,",我会告诉你的.

热门招聘
相关主题

官方公众号

智造工程师