> -- Vlad писал(а):
> не "дублируя" присваивания в исходном тексте.Можно пойти на компромисс и вдвое сократить число дополнительных проверок (с 1..8 до 1..4), не так сильно увеличив объём исходника. В первом варианте было на 1 операцию присваивания больше, чем в сишном оригинале, во втором - на 28, здесь - на 7:## Код:
```
PROCEDURE UnwindedLoop (from, to, count);
VAR c: INTEGER;
BEGIN
   c := cound DIV 8;
   WHILE c > 0 DO
      to^ := from^; INC (from);      to^ := from^; INC (from);
      to^ := from^; INC (from);      to^ := from^; INC (from);
      to^ := from^; INC (from);      to^ := from^; INC (from);
      to^ := from^; INC (from);      to^ := from^; INC (from);
      DEC (c)
   END;
   c := count MOD 8;
   IF c # 0 THEN
      IF c DIV 4 # 0  THEN
         to^ := from^; INC (from);      to^ := from^; INC (from);
         to^ := from^; INC (from);      to^ := from^; INC (from);
      END;
      c := c MOD 4;
      IF c DIV 2 # 0 THEN
         to^ := from^; INC (from);      to^ := from^; INC (from);
      END;
      IF ODD(c) THEN
         to^ := from^
      END
   END
END UnwindedLoop;
```
