|
|
treug.PAS |
|
{* Треугольники *}Unit TREUG;Interface Implementation Begin writeln('В графическом режиме с помощью рекурсии выводится треугольники. В большой треугольник вписываются треугольники меньшего размера.'); End. Program Treug; Uses treug.pas; {* Эту строку можно удалить *} Uses Crt, Graph; {* Подключение модулей *} Const {* Константы *} x1 = 10; y1 = 10; x2 = 10; y2 = 400; x3 = 400; y3 = 400; n = 4; Procedure InitGr; {инициализация графики} Var {* В работе нам потребуются переменные: *} a : integer; b : integer; Begin a := Vga; B := VgaHI; Procedure Rec(x1, y1, x2, y2, x3, y3, k, l, n : word); {рекурсия, с помощью которой на экран выводятся треугольники} Begin MoveTo(x1, y1); LineTo(x2, y2); LineTo(x3, y3); LineTo(x1, y1); SetColor(random(15) + 1); If n > 0 Then Rec(x1, y1 - k, x1 + l, y1 - k, x1 + l, y1, round(k / 2), round(l / 2), n - 1); If n > 0 Then Rec(x2, y1 + k, x2 + l, y1 + k, x2 + l, y1 + 2 * k, round(k / 2), round(l / 2), n - 1); If n > 0 Then Rec(x1, y1 + k, x1 + l, y1 + k, x1 + l, y1 + 2 * k, round(k / 2), round(l / 2), n - 1); End; Begin InitGr; {инициализация графики} MoveTo(x1, y1); {рисуем первоначальный} LineTo(x2, y2); {треугольник} LineTo(x3, y3); LineTo(x1, y1); randomize; Rec(x1, y1 + (y2 - y1) Div 2, x1 + (x3 - x1) Div 2, y3, x1 + (x3 - x1) Div 2, y1 + (y3 - y1) Div 2,(y2 - y1) Div 4, (x3 - x1) Div 4 , n); ReadKey; {ожидание нажатия на клавишу} CloseGraph; {закрытие графического режима} End..... 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|