PROC PrintComb(BYTE ARRAY c BYTE len) BYTE i Put('() FOR i=0 TO len-1 DO IF i>0 THEN Put(',) FI PrintB(c(i)) OD Put(')) PutE() RETURN BYTE FUNC Increasing(BYTE ARRAY c BYTE len) BYTE i IF len<2 THEN RETURN (1) FI FOR i=0 TO len-2 DO IF c(i)>=c(i+1) THEN RETURN (0) FI OD RETURN (1) BYTE FUNC NextComb(BYTE ARRAY c BYTE n,k) INT pos,i DO pos=k-1 DO c(pos)==+1 IF c(pos)n THEN Print("Error! k is greater than n.") Break() FI FOR i=0 TO k-1 DO c(i)=i OD DO PrintComb(c,k) UNTIL NextComb(c,n,k)=0 OD RETURN PROC Main() Comb(5,3) RETURN