Problem dotyczy zbioru Cantora. Otóż, zaimplementowałem rysowanie zbioru Cantora wszystko działa, lecz chciałbym się dowiedzieć, czy można go bardziej zoptymalizować. Umieszczam tylko rekurencyjną procke rysującą zbiór, reszta programu to inicjalizacja grapha.

procedure DrawCantorSet(left, right : Word; its : Byte);
var
  len : Word;      // its - numer iteracji
begin                 // left, right - współrzędne punktu od którego rysowana jest linia
  Line(left, y, right, y);
  if its < n then
  begin
    len:=Round((right - left) / 3);  // len - długość nowej linii
    inc(y, 20);  // współrzędna igrekowa dla linii z każdego poziomu
    DrawCantorSet(left, left + len, its + 1);
    DrawCantorSet(right - len, right, its + 1);
    dec(y, 20);
  end;
end;

Szczególnie nie wiem jak pozbyć się powtarzania instrukcji inc i dec. Najpierw zwiększam wartość y o 20, a potem zmniejszam. Jednak bez tego program nie działa poprawnie. Czy można ten problem wykonać bardziej elementarnie ??