uses oglgraph; // Необходимая библиотека, у нас заменяет graph var gd, gm: smallint; mx, my, cx, cy: smallint; x, y, d: smallint; Procedure Crectangle(x,y,d:smallint); begin rectangle(x-d, y-d, x+d, y+d); end; Procedure Crectangle2(x,y,d:smallint); begin Crectangle(x, y, d); if d >= 1 then Crectangle2(x, y, d div 2); // Рекурсивный вызов с "отсечкой" при маленьком d end; // Раздел кода ************************************************************************************** begin gd := Detect; // Автоматическая установка разрешения gm := DetectMode; initgraph(gd, gm, ''); // Открытие "графического окна" {далее все, что Вы хотите нарисовать, например:} mx := getmaxX; my := getmaxY; cx := mx div 2; cy := my div 2; d := cx div 4; x := cx; y := cy; Crectangle2(x,y,d); //Вызов рекурсивной функции {конец отрисовки} repeat until graphkeypressed; // Задержка закрытия графического окна до нажатия // клавиши для завершения работы программы - // иначе рискуете ничего толком не увидеть closegraph(); // закрытие графического окна - не обязательно, но рекомендуемо. end.