## Код:
```
PROCEDURE (c: Cor1) Do
  VAR x: INTEGER; found: BOOLEAN
BEGIN
found := FALSE;
x := 0;
WHILE ~found DO
  x := x + 1;
  found := f(x) = 0;
  Co.Yield();
END;
END Do;
и
PROCEDURE (c: Cor2) Do
  VAR x: INTEGER; found: BOOLEAN
BEGIN
found := FALSE;
y := 1;
WHILE ~found DO
  y := y - 1;
  found := f(y) = 0;
   Co.Yield();
END;
END Do;
```

при этом f() должна содержать только локальные переменные