64 lines
1,012 B
Text
64 lines
1,012 B
Text
INT FUNC Compare(INT ARRAY x INT xLen INT ARRAY y INT yLen)
|
|
INT i,len
|
|
|
|
len=xLen
|
|
IF len>yLen THEN
|
|
len=yLen
|
|
FI
|
|
FOR i=0 TO len-1
|
|
DO
|
|
IF x(i)>y(i) THEN
|
|
RETURN (1)
|
|
ELSEIF x(i)<y(i) THEN
|
|
RETURN (-1)
|
|
FI
|
|
OD
|
|
IF xLen>yLen THEN
|
|
RETURN (1)
|
|
ELSEIF xLen<yLen THEN
|
|
RETURN (-1)
|
|
FI
|
|
RETURN (0)
|
|
|
|
BYTE FUNC Less(INT ARRAY x INT xLen INT ARRAY y INT yLen)
|
|
IF Compare(x,xLen,y,yLen)<0 THEN
|
|
RETURN (1)
|
|
FI
|
|
RETURN (0)
|
|
|
|
PROC PrintArray(INT ARRAY x INT len)
|
|
INT i
|
|
|
|
Put('[)
|
|
FOR i=0 TO len-1
|
|
DO
|
|
PrintI(x(i))
|
|
IF i<len-1 THEN
|
|
Put(' )
|
|
FI
|
|
OD
|
|
Put('])
|
|
RETURN
|
|
|
|
PROC Test(INT ARRAY x INT xLen INT ARRAY y INT yLen)
|
|
PrintArray(x,xLen)
|
|
IF Less(x,xLen,y,yLen) THEN
|
|
Print(" < ")
|
|
ELSE
|
|
Print(" >= ")
|
|
FI
|
|
PrintArray(y,yLen) PutE()
|
|
RETURN
|
|
|
|
PROC Main()
|
|
INT ARRAY a=[1 2 1 5 2]
|
|
INT ARRAY b=[1 2 1 5 2 2]
|
|
INT ARRAY c=[1 2 3 4 5]
|
|
INT ARRAY d=[1 2 3 4 5]
|
|
|
|
Test(a,5,b,6)
|
|
Test(b,6,a,5)
|
|
Test(b,6,c,5)
|
|
Test(c,5,b,6)
|
|
Test(c,5,d,5)
|
|
RETURN
|