200SMART冒泡程序有小到大和有小到大的程序案例 点击:1419 | 回复:9



大头

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 23回
  • 年度积分:0
  • 历史总积分:127
  • 注册:2019年3月05日
发表于:2021-12-20 16:49:19
楼主
求助帖30分-未结帖

200SMART冒泡程序有小到大和有小到大的程序案例

1分不嫌少!


楼主最近还看过



Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 544回
  • 年度积分:73
  • 历史总积分:17753
  • 注册:2010年8月04日
发表于:2021-12-21 09:43:01
1楼

一、思路:

1、数据定义
     定义4个区域
     A、B 分别存储原始未排序前的数据;其中 A 存储设备序号,B 存储对应的数值
     C、D 分别存储排序后的数据;其中 C 存储排序后设备序号,D 存储排序后对应的数值2、当要排序时:
 2.1  将A 区域的值传送到 C 区域,将 B 区域的值传送到 D 区域
 2.2  用冒泡法比较 D 区域相邻两个数据的大小,如果需要调换位置,在调换时同进调换C 区域相邻两个序号
这样最后会在 C 区域中得到你想要的序号。

可以参考:

http://www.ad.siemens.com.cn/service/answer/solved_259564_1076.html

二、程序可以参考:

http://www.ad.siemens.com.cn/service/answer/solved_213777_1076.html

Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 544回
  • 年度积分:73
  • 历史总积分:17753
  • 注册:2010年8月04日
发表于:2021-12-21 09:45:59
2楼

上面的编程思路的需求是:

要找到数据最小的一个值以及这个值的序号,比如:
1号设备:23
2号设备:32
3号设备:98
4号设备:12
需要输出4号设备就是我想选择的,请问一下这个应该怎么实现?

121111115

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 378回
  • 年度积分:594
  • 历史总积分:21966
  • 注册:2016年1月20日
发表于:2021-12-22 11:01:22
3楼

char data[4]={"1号设备","2号设备","3号设备","4号设备"};

int   data1[4]={23,32,98,12};

for(a=0,a<4,a++)

{

   for(b=a,b<4,b++)

   {

        if(data1[a]>data1[b])

        {

            {

              d=data1[a];

              c=data[a];

              data1[a]=data1[b];

              data[a]=data[b];

              data1[b]=d;

              data[b]=c;

             }

        else

             {

            data1[a]=data1[a];

            data[a]=data[a];

              }

         }

   }

}

printf("%d,%c",data1[0],data[0])

差不多可以输出你要的结果的,同时上述代码还根据数据大小进行了排序,对应的设备号也会排序。

墨轩cc

  • 精华:0帖
  • 求助:4帖
  • 帖子:17帖 | 293回
  • 年度积分:0
  • 历史总积分:701
  • 注册:2016年11月01日
发表于:2021-12-24 08:32:57
4楼

"121111115" 的回复,发表在3楼
        对内容: 【char data[4]={"1号设备","2号设备","3号设备","4号设备"};int   data1[4]={23,32,98,12};for(a=0,a<4,a++){    for(b=a...】进行回复:

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

人家要的是SMART200的程序厄,你这只能算是提供了思路

PLC生产

  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 109回
  • 年度积分:0
  • 历史总积分:347
  • 注册:2020年1月30日
发表于:2021-12-25 10:29:34
5楼

有案例吗   来一点  🤭

absld

  • 精华:0帖
  • 求助:2帖
  • 帖子:25帖 | 299回
  • 年度积分:113
  • 历史总积分:9236
  • 注册:2014年9月03日
发表于:2022-01-09 17:25:52
6楼

"121111115" 的回复,发表在3楼
        对内容: 【char data[4]={"1号设备","2号设备","3号设备","4号设备"};int   data1[4]={23,32,98,12};for(a=0,a<4,a++){    for(b=a...】进行回复:

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


你就搞二个for循环嵌套当然简单了,他要的是用200写出来,我建议你还是用语句表STL  非常简单

635715193

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 168回
  • 年度积分:80
  • 历史总积分:608
  • 注册:2014年6月05日
发表于:2022-02-14 11:05:30
7楼

LBX112233

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 713回
  • 年度积分:214
  • 历史总积分:601
  • 注册:2012年5月10日
发表于:2022-02-19 14:01:20
8楼

谢谢分享,,学习学习。。

wodehaohaoguai

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 796回
  • 年度积分:3454
  • 历史总积分:6074
  • 注册:2011年2月28日
发表于:2022-05-16 19:58:29
9楼

学习学习!


热门招聘
相关主题

官方公众号

智造工程师