定义一个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
执行效果如下截图
改为大于号,再测试一遍,从小排到大。效果如下