uses oglgraph; // Необходимая библиотека, у нас заменяет graph var gd, gm : smallint; mx, my, cx, cy : smallint; x, y, d : smallint; procedure Serp(x1, y1, x2, y2: smallint; n: Integer); var x1n, y1n, x2n, y2n: smallint; begin if n > 0 then begin x1n := 2*x1 div 3 + x2 div 3; x2n := x1 div 3 + 2*x2 div 3; y1n := 2*y1 div 3 + y2 div 3; y2n := y1 div 3 + 2*y2 div 3; Rectangle(x1n, y1n, x2n, y2n); Serp(x1, y1, x1n, y1n, n-1); Serp(x1n, y1, x2n, y1n, n-1); Serp(x2n, y1, x2, y1n, n-1); Serp(x1, y1n, x1n, y2n, n-1); Serp(x2n, y1n, x2, y2n, n-1); Serp(x1, y2n, x1n, y2, n-1); Serp(x1n, y2n, x2n, y2, n-1); Serp(x2n, y2n, x2, y2, n-1) end; 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; Rectangle(x-d, y-d, x+d, x+d); Serp(x-d, y-d, x+d, x+d, 4); repeat until graphkeypressed; // Задержка закрытия графического окна до нажатия // клавиши для завершения работы программы - // иначе рискуете ничего толком не увидеть closegraph(); // закрытие графического окна - не обязательно, но рекомендуемо. end.