ABB数组的应用之冒泡排序

定义一个num类型的一维数组,长度暂且定义为10个,可以自定义修改。手动输入10个整数,采用for循环嵌套。利用Dim()函数,获取数组长度,其返回值为num类型,可以放到for循环中作为循环次数。STEP为步长,值为-1。
详细代码:
VAR num arr_1{10}:=[0,0,0,0,0,0,0,0,0,0];
VAR string string1:="";

PROC R_Arr_lv2()
	TPErase;
	reg2 := 1;
	FOR o FROM 1 TO Dim(arr_1,1) DO
        TPReadNum reg3, "Input";
        arr_1{o}:=reg3;
	ENDFOR
    string1 := NumToStr(arr_1{1},0) +","+ NumToStr(arr_1{2},0) +","+ NumToStr(arr_1{3},0) +","+ NumToStr(arr_1{4},0) +","+ NumToStr(arr_1{5},0) +","+ NumToStr(arr_1{6},0) +","+ NumToStr(arr_1{7},0) +","+ NumToStr(arr_1{8},0) +","+ NumToStr(arr_1{9},0) +","+ NumToStr(arr_1{10},0);
	TPWrite string1;
	FOR i FROM Dim(arr_1,1)-1 TO 1 STEP -1 DO
		FOR j FROM 1 TO i DO
		!小于号从大排到小,反之从小到大
			IF arr_1{j} < arr_1{j + 1} THEN
				reg2 := arr_1{j};
				arr_1{j} := arr_1{j + 1};
				arr_1{j + 1} := reg2;
			ENDIF
		ENDFOR
	ENDFOR
	string1 := NumToStr(arr_1{1},0) +","+ NumToStr(arr_1{2},0) +","+ NumToStr(arr_1{3},0) +","+ NumToStr(arr_1{4},0) +","+ NumToStr(arr_1{5},0) +","+ NumToStr(arr_1{6},0) +","+ NumToStr(arr_1{7},0) +","+ NumToStr(arr_1{8},0) +","+ NumToStr(arr_1{9},0) +","+ NumToStr(arr_1{10},0);
	TPWrite string1;
ENDPROC

执行效果如下截图
在这里插入图片描述
改为大于号,再测试一遍,从小排到大。效果如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/QQ128619/article/details/101306052