Нарисовать цепочку из квадратов, расположенных на диагонали экрана - Turbo Pascal
Формулировка задачи:
Нарисовать цепочку из квадратов, расположенных на диагонали экрана. С клавиатуры вводятся значение ребра квадрата и значение ребра малого квадрата, получающегося при наложении квадратов друг на друга.
Решение задачи: «Нарисовать цепочку из квадратов, расположенных на диагонали экрана»
textual
Листинг программы
uses
graph, crt;
var
x1,y1,x2, y2, i, err, gd, gm, rebro, period, kol_kv: integer;
begin
writeln('Введите значения ребер большого и малого квадратов, а также количество квадратов:');
readln(rebro, period, kol_kv);
gd := vga;
gm := vgahi;
initgraph(gd, gm, 'd:\bp\bgi');
err := graphresult;
if err <> grok then
begin
writeln('Ошибка открытия графики');
halt(1)
end;
x1:=1;
y1:=1;
for i := 1 to kol_kv do
begin
setcolor(4);
x2 := x1 + rebro;
y2 := y1 + rebro;
rectangle(x1, y1, x2, y2);
x1 := x1 + rebro - period;
y1 := y1 + rebro - period
end;
readln;
closegraph;
end.
Объяснение кода листинга программы
- В начале кода подключаются необходимые библиотеки graph и crt.
- Переменные x1, y1, x2, y2, i, err, gd, gm, rebro, period и kol_kv инициализируются значениями, введенными пользователем.
- Функция initgraph() используется для настройки графического дисплея, указав путь к файловой системе BGI.
- Если произошла ошибка при открытии графики, выводится сообщение об ошибке и программа завершается.
- Установлены начальные координаты x1, y1 для первого квадрата.
- Запускается цикл for, который выполняется kol_kv раз.
- Внутри цикла устанавливается цвет фона равным 4.
- Вычисляются координаты x2 и y2 для следующего квадрата, как сумма rebro и текущего значения x1 и y1 соответственно.
- Вычисляются координаты x1 и y1 для следующего квадрата, как сумма rebro и period и текущего значения x1 и y1 соответственно.
- Круглые фигуры рисуются с помощью функции rectangle().
- После завершения цикла выводится сообщение readln().
- Закрывается графический дисплей с помощью функции closegraph().