Нарисовать расширяющуюся окружность. - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Не могу сделать одно олимпиадное задание: Составьте программу по следующему сценарию: в центре экрана расположена окружность радиусом 5 пикселей. При нажатии на одну из клавиш <к>, <с>, <ж>, <з> окружность окрашивается в соответствующий цвет (красный, синий, жёлтый или зелёный) и начинает расти в диаметре до тех пор, пока не упрётся в края экрана. Помогите, пожалуйста! Срочно!

Решение задачи: «Нарисовать расширяющуюся окружность.»

textual
Листинг программы
uses crt,graph;
var x,y,x0,y0,r,c,h:integer;
    v,k:char;
procedure Okr(r,h,c:integer);
begin
repeat
r:=r+h;
setcolor(c);
circle(x0,y0,r);
setfillstyle(1,c);
floodfill(x0,y0,c);
delay(50);
circle(x0,y0,r);
setfillstyle(1,0);
floodfill(x0,y0,0);
until r>y0;
circle(x0,y0,r);
setfillstyle(1,c);
floodfill(x0,y0,c);
end;
begin
x:=0;
initgraph(x,y,'');
x0:=getmaxX div 2;
y0:=getmaxY div 2;
{repeat}
outtextXY(1,5,'Vyberite cvet po pervoj bukve:');
outtextXY(1,15,'russkogo nazvaniya:');
outtextXY(1,25,'krasnyj, sinyj');
outtextXY(1,35,'jeltyj, zelenyj');
outtextXY(1,45,'Vyhod - Esc');
circle(x0,y0,5);
r:=5;
h:=5;
repeat
if keypressed then
 begin
  k:=readkey;
  case k of
  'Є':Okr(r,h,red);
  'б':Okr(r,h,blue);
  '¦':Okr(r,h,yellow);
  '§':Okr(r,h,green);
  #27:exit
  end;
 end;
until k=#27;
{v:=readkey;
if v=#13 then exit;
until v=#13;}
end.

Объяснение кода листинга программы

  1. Используется библиотека CRT и графическая библиотека graph.
  2. Задаются переменные: x, y, x0, y0, r, c, h (x, y - координаты центра окружности; x0, y0 - начальные координаты; r - радиус окружности; c - цвет заливки; h - шаг изменения радиуса).
  3. Определена процедура Okr, которая рисует расширяющуюся окружность с заданными параметрами.
  4. В основном блоке кода запрашивается цвет заливки окружности.
  5. Устанавливаются начальные значения переменных: x0 = maxX / 2, y0 = maxY / 2, r = 5, h = 5.
  6. В цикле ожидается нажатие клавиши.
  7. При нажатии клавиши считывается цвет и вызывается процедура Okr с соответствующим аргументом.
  8. Цикл продолжается до нажатия клавиши Esc.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы