Определить, попадает ли каждая из точек в указанную область, и найти площадь указанной области - Pascal ABC

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

пусть задана область на плоскости(вот так показанно на рисунке на координатной плоскости закрашены первая и четвёртая части круга), ограниченная диапазоном аргумента [-10;10] и диапазонам значений [-10;10]. С клавиатуры вводится радиус окружности (целое число) и координаты первой точки ( вещественые значения). Вторая точка задается случайными координатами (вещественные значения), с помощью генерации случайных чисел. Необходимо определить, попадает ли каждая из точек в указанную область и найти площадь указанной области, вывести только целую часть площади.

Код к задаче: «Определить, попадает ли каждая из точек в указанную область, и найти площадь указанной области - Pascal ABC»

textual
uses graphABC,crt;
var i,x0,y0,r,p:integer;
    m,xa,ya,xb,yb:real;
    s:string;
begin
randomize;
repeat
write('Введите радиус, целое число от 1 до 10 r=');
readln(r);
until r in [1..10];
repeat
writeln('Введите координаты точки А, вещественные числа от 1 до 10');
readln(xa,ya);
until(xa>=-10)and(xa<=10)and(ya>=-10)and(ya<=10);
xb:=-10+20*random;
yb:=-10+20*random;
setwindowsize(500,500);
centerwindow;
clrscr;
hidecursor;
x0:=windowwidth div 2;
y0:=x0;
rectangle(40,40,windowwidth-40,windowheight-40);
line(40,y0,2*x0-40,y0);
line(x0,40,x0,2*y0-40);
m:=(x0-60)/10;
setpencolor(clBlue);
setbrushstyle(bsClear);
circle(x0,y0,round(r*m));
floodfill(x0+5,y0-5,clLtGray);
floodfill(x0+5,y0+5,clLtGray);
setbrushstyle(bsClear);
for i:=1 to 10 do
 begin
  line(x0+round(i*m),y0+3,x0+round(i*m),y0-3);
  line(x0-round(i*m),y0+3,x0-round(i*m),y0-3);
  str(i,s);
  textout(x0+round(i*m),y0+10,s);
  textout(x0-round(i*m),y0+10,'-'+s);
  line(x0+3,y0-round(i*m),x0-3,y0-round(i*m));
  line(x0+3,y0+round(i*m),x0-3,y0+round(i*m));
  textout(x0-20,y0-round(i*m),s);
  textout(x0-25,y0+round(i*m),'-'+s);
 end;
textout(2*x0-50,y0-15,'X');
textout(x0+5,45,'Y');
textout(x0+5,y0+10,'0');
setbrushstyle(bsSolid);
setbrushcolor(clBlue);
circle(x0+round(xa*m),y0-round(ya*m),3);
circle(x0+round(xb*m),y0-round(yb*m),3);
setbrushstyle(bsClear);
textout(x0+round(xa*m)+5,y0-round(ya*m),'A');
textout(x0+round(xb*m)+5,y0-round(yb*m),'B');
if(xa>=0)and(xa*xa+ya*ya<=r*r) then s:='Точка А попадает в закрашенную область'
else s:='Точка А не попадает в закрашенную область';
textout(40,0,s);
if(xb>=0)and(xb*xb+yb*yb<=r*r) then s:='Точка B попадает в закрашенную область'
else s:='Точка B не попадает в закрашенную область';
textout(40,20,s);
p:=trunc(pi*r*r/2);
textout(40,470,'Площадь закрашенной области='+inttostr(p));
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

11   голосов, оценка 3.636 из 5


СДЕЛАЙТЕ РЕПОСТ