> -- Valery Solovey писал(а):
> Вот мой код (прошу прощения, я его не проверял, поэтому за корректность не совсем ручаюсь).Только сначала надо проверять i>=0, а потом индексировать, а так отличный код.

## Код:
```
PROCEDURE Inc;
      VAR i: INTEGER;
   BEGIN
      i := rank -1;
      WHILE (i >= 0) & (indices[i] = upperBound[i]) DO
         indices[i] := lowerBound[i];
         DEC(i)
      END;
      IF i >= 0 THEN
         INC(indices[i])
      ELSE
         completed := TRUE
      END
   END Inc;
```
