Задана последовательность прямых линий. Определить прямую, близлежащую к данной точке

code: #pascal
Program PascalGuru;
uses crt;
type
    priamye=record
                 A:real;
                 B:real;
                 C:real;
                 r:real;
            end;
 
var x,y:real;
    pr:array[1..26] of priamye; {vsego 26 priamyx}
    i,n,min:integer;
 
begin
write('Skoliko priamyx budete vvoditi: ');
readln(n);
 
for i:=1 to n do
    begin
    clrscr;
    writeln('Vvedite dannye uravneniua ',i,'-oy priamoy:');
    writeln;
    write('A',i,': '); readln(pr[i].A);
    write('B',i,': '); readln(pr[i].B);
    write('C',i,': '); readln(pr[i].C);
    end;
 
clrscr;
writeln('Zadany ',n,' posledovatelinostei: ');
i:=0;
repeat
inc(i);
writeln('A',i,':',pr[i].A:0:2,'; ','B',i,':',pr[i].B:0:2,'; ','C',i,':',pr[i].C:0:2,';');
until i=n;
 
writeln;
writeln('Vvedite koordinaty tociki:');
write('x: '); readln(x);
write('y: '); readln(y);
 
{*************вычисление минимального расстояния****************}
 i:=0;
 while (i<n) do
 begin
 inc(i);
 pr[i].r:=abs((pr[i].A*x)+(pr[i].B*y)+pr[i].C)/sqrt((pr[i].A*pr[i].A)+(pr[i].B*pr[i].B));
 end;
 
 clrscr;
 writeln('RASTOIANIYA ot tociki s koordinatami: ',x:0:2,',',y:0:2,':');
 writeln;
 for i:=1 to n do writeln('Rastoianie do ',i,' priamoy: ',pr[i].r:0:2);
 {min:}
 min:=1;
  for i:=2 to n do
  if pr[i].r<pr[min].r then min:=i;
 writeln;
  writeln('Pryamaya, blizlezhaschaya k zadannoi tochke: ',min,' --- s rastoyaniem= ',pr[min].r:0:2);
 
{------------конец вычисления минимального расстояния----------}
 
readln;
end.      
Поделиться:

Похожие статьи: