Задано два множества точек на плоскости. В первом множестве найдите хотя бы одну точку, сумма расстояний от которой до точек второго множества превышала бы заданную величину — Delphi(Делфи)

program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
type Point=record
           x,y:real;
           end;
     mas=array of Point;
function R(a,b:Point):real;
begin
result:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
end;
procedure CreateMnz(var a:mas;var n:integer;c:char);
var i:integer;
begin
write('Razmer mnozestva ',c,' n=');
readln(n);
Setlength(a,n);
for i:=0 to n-1 do
 begin
  a[i].x:=-10+20*random;
  a[i].y:=-10+20*random;
 end;
writeln('Mnozestvo ',c);
write('X:');
for i:=0 to n-1 do
write(a[i].x:6:2);
writeln;
write('Y:');
for i:=0 to n-1 do
write(a[i].y:6:2);
writeln;
end;
var a,b:mas;
    na,nb,i,j:integer;
    f:boolean;
    z,s:real;
 
begin
randomize;
CreateMnz(a,na,'A');
CreateMnz(b,nb,'B');
write('Vvedite chislo dlya poiska z=');
readln(z);
f:=false;
i:=0;
while (i<na)and not f do
 begin
  s:=0;
  for j:=0 to nb-1 do
  s:=s+R(a[i],b[j]);
  if s>z then f:=true
  else inc(i);
 end;
if f then write('Tocka ',i+1)
else write('Takoj tochki net');
readln
end.

Leave a Comment

− 7 = 3