В файле задать последовательность точек с координатами x и y . Количество наборов любое. Вводится произвольная точка . Найти из данного набора точек самую ближайшую точку к введенной . Обеспечить вывод на экран координат исходных точек и результат выбора — Pascal(Паскаль)

uses crt;
var f:text;
    nf:string;
    x,y,x0,y0,r,mn,xmn,ymn,rmn:real;
begin
clrscr;
write('Имя файла для чтения: ');
readln(nf);
nf:=nf+'.txt';
assign(f,nf);
{$I-} reset(f);  {$I+}//В Паскаль АВС по другому
if IOResult <> 0 then
 begin
  writeLn('Файл ',nf,' не найден!');
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
writeln('Введите координаты точки:');
readln(x0,y0);
writeln('Координаты точек в файле:');
read(f,x,y);
mn:=sqrt(sqr(x0-x)+sqr(y0-y));
writeln('x=',x:5:1,' y=',y:5:1,' r=',mn:5:1);
xmn:=x;
ymn:=y;
while not eof(f) do
 begin
  read(f,x,y);
  r:=sqrt(sqr(x0-x)+sqr(y0-y));
  writeln('x=',x:5:1,' y=',y:5:1,' r=',r:5:1);
  if r<mn then
   begin
    mn:=r;
    xmn:=x;
    ymn:=y;
    rmn:=r;
   end;
 end;
close(f);
writeln('Самая ближняя точка x=',xmn:5:1,'  y=',ymn:5:1,' r=',rmn:5:1);
readln
end.

Leave a Comment

− 2 = 3