Координаты точек - Pascal ABC
Формулировка задачи:
Добрый день. На плоскости заданы своими координатами n точек.Составить программу ,определяющуюю определяющую ,между какими из пар точек самое большое расстояние.Указание.Координаты точек занести в массив.
Решение задачи: «Координаты точек»
textual
Листинг программы
uses crt;
const nmax=15;
var x,y:array[1..nmax] of real;
n,i,j,imx,jmx:byte;
mx:real;
begin
randomize;
repeat
write('Количество точек от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
for i:=1 to n do
begin
x[i]:=10*random-4;
y[i]:=10*random-4;
end;
writeln('Координаты:');
write('N');
for i:=1 to n do
write(i:5);
writeln;
write('X');
for i:=1 to n do
write(x[i]:5:1);
writeln;
write('Y');
for i:=1 to n do
write(y[i]:5:1);
writeln;
writeln;
mx:=sqrt(sqr(x[1]-x[2])+sqr(y[1]-y[2]));
imx:=1;
jmx:=2;
for i:=1 to n-1 do
for j:=i+1 to n do
if sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]))>mx then
begin
mx:=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]));
imx:=i;
jmx:=j;
end;
writeln('Максимальное расстояние между точками ',imx,'-',jmx,' = ',mx:0:2);
end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая обеспечивает функции для работы с числами с плавающей точкой.
- Затем определяется константа nmax, которая ограничивает количество точек до 15.
- Далее определяются переменные x и y типа array[1..nmax] of real, которые будут хранить координаты точек.
- Также определяются байтовые переменные n, i, j, imx и jmx, которые будут использоваться для цикла и поиска максимального расстояния между точками.
- Затем с помощью функции randomize производится инициализация генератора случайных чисел.
- После этого начинается цикл repeat, который продолжается до тех пор, пока количество точек не будет варьироваться от 2 до nmax.
- Внутри цикла пользователю предлагается ввести количество точек n.
- Для каждой точки вводятся ее координаты x и y с помощью функций readln и write.
- После ввода всех точек выводится сообщение с их номерами.
- Затем вычисляется максимальное расстояние между двумя точками с помощью функции sqrt и цикла for.
- Если это расстояние больше предыдущего максимального расстояния, то обновляется значение максимального расстояния и индексов точек i и j.
- В конце выводится сообщение с максимальным расстоянием и его индексами.