PROC PrintArray(INT ARRAY a INT size) INT i Put('[) FOR i=0 TO size-1 DO IF i>0 THEN Put(' ) FI PrintI(a(i)) OD Put(']) PutE() RETURN INT FUNC Compare(INT a1,a2) CHAR ARRAY s1(10),s2(10) INT res StrI(a1,s1) StrI(a2,s2) res=SCompare(s1,s2) RETURN (res) PROC InsertionSort(INT ARRAY a INT size) INT i,j,value FOR i=1 TO size-1 DO value=a(i) j=i-1 WHILE j>=0 AND Compare(a(j),value)>0 DO a(j+1)=a(j) j==-1 OD a(j+1)=value OD RETURN PROC Test(INT ARRAY a INT size) PrintE("Array before sort:") PrintArray(a,size) InsertionSort(a,size) PrintE("Array after sort:") PrintArray(a,size) PutE() RETURN PROC Main() DEFINE COUNT_A="13" DEFINE COUNT_B="50" INT ARRAY a(COUNT_A),b(COUNT_B) BYTE i FOR i=1 TO COUNT_A DO a(i-1)=i OD FOR i=1 TO COUNT_B DO b(i-1)=i OD Test(a,COUNT_A) Test(b,COUNT_B) RETURN