签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
这个子程序的第三段,我直观感觉每次循环只执行了一次数据比较和交换,但实际运行结果是对的,排序都是正常的。可能我对这个循环过程或者指针的理解哪里有问题?求教大家
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1767375&b_id=64&s_id=0&num=9
例如第一次排序将最大数放在最后一位,第二次将第二大的排在倒数第二位;这个程序看起来是缺少一个外循环;程序是在不断的执行的,很快执行了完了,无法看到执行的过程。
FOR循环是在一个扫描周期内执行完毕的,不是跨扫描周期的
冒泡程序for一次?怎么跟我想象的不一样的?
冒个泡沉个底,找最小值或最大值,要几个FOR循环?
楼主指着这段程序说是排序就是排序啦?
你看看上面的注释,5个数据,循环比较4次,得到的是什么?
想岔了想岔了。程序运行的单个周期过程跟想的其实是一致的,7个数据,循环六次,第一次循环比较第1和第2个元素,第二次循环比较第2和第3个元素,第三次循环比较第3和第4个元素.......以此类推。没有考虑且不应该没有考虑的是,PLC程序是循环运行的,以后还会运行无限次FOR—NEXT循环,直到我们得到排序结果仍然循环。
和c语言的冒泡排序程序不同,PLC程序本身循环执行,可以说是少一层循环。
太搞了......
看**释,程序结构呢。
可主程序的启动后面加上升沿运行下,看下结果就明白了。
“我直观感觉每次循环只执行了一次数据比较和交换,”
------------------------------------------------------------------
循环体内,本来就是一次比较和交换的啊。冒泡程序要涉及多重循环倒是真的。
如果只是找最大值或最小值,是不需要多重循环的。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录