В квадратном графическом окне нарисовать спираль. Размер окна и шаг спирали задаются константами - PascalABC.NET
Формулировка задачи:
Здравствуйте,впервые на этом форуме и немного времени изучаю паскаль.Нужна помощь в решении задачи кого-нибудь более опытного.
Задача:
Напишите программу,которая в квадратном графическом окне рисует спираль.Размер окна и шаг спирали задаются константами.Начинается спираль в точке с координатами (2,2),а заканчивается в центре графического окна.При выполнении задачи используйте из операторов множественного повтора только оператор "Repeat...Until".
Прошу если возможно прямо в эту тему прислать уже написанную программу.
Рассчитываю на вас,заранее спасибо
*спираль должна состоять из линий.
Решение задачи: «В квадратном графическом окне нарисовать спираль. Размер окна и шаг спирали задаются константами»
textual
Листинг программы
Program spiral;
uses graphabc;
const
s=10;
d=400;
Var
x1,x2,y1,y2:Integer;
Begin;
SetWindowSize(d,d);
SetPenColor(rgb(random(256),random(256),random(256)));
SetWindowCaption('Спираль');
x1:=2;
x2:=d;
y1:=2;
y2:=d;
Repeat
Line (x1,y1,x2,y1);
sleep(100);
Line (x2,y1,y2,y2);
x1:=x1+s;
y1:=y1+s;
sleep(100);
Line (x2,y2,x1,y2);
sleep(100);
Line (x1,y2,x1,y1);
x2:=x2-s;
y2:=y2-s;
sleep(100);
Until (x2-x1<s) and (y2-y1<s);
End.
Объяснение кода листинга программы
- Программа начинается с объявления переменных x1,x2,y1,y2 типа Integer
- Затем устанавливается размер окна и цвет линии с помощью функций SetWindowSize и SetPenColor соответственно
- Функция SetWindowCaption устанавливает заголовок окна на 'Спираль'
- Переменные x1,x2,y1,y2 инициализируются значениями 2,d,2,d соответственно
- В цикле repeat выполняются следующие действия:
- Строка (x1,y1,x2,y1) рисует линию от точки (x1,y1) до точки (x2,y1)
- Функция sleep(100) задерживает выполнение программы на 100 миллисекунд
- Строка (x2,y1,x2,y2) рисует линию от точки (x2,y1) до точки (x2,y2)
- Переменные x1 и y1 инкрементируются на значение s
- Переменные x2 и y2 декрементируются на значение s
- Если (x2-x1<s) и (y2-y1<s) выполняется до тех пор, пока разница между x2 и x1 меньше s и разница между y2 и y1 меньше s
- После окончания цикла программа завершается