Задана последовательность прямых линий. Определить прямую, близлежащую к данной точке
Категория: Delphi/Pascal
2012-03-04 21:08:12
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.
Поделиться: