Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 21
1

Определить номера наиболее удаленных друг от друга точек

13.03.2012, 09:54. Показов 2417. Ответов 6
Метки нет (Все метки)

В одномерном массиве с количеством элементов 2N содержатся координаты N точек плоскости. Они располагаются в следующем порядке:x1,y1,x2,y2,x3,y3 … и так далее. Определить номера наиболее удаленных друг от друга точек.
0
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2012, 09:54
Ответы с готовыми решениями:

Найти номера наиболее и наименее удаленных друг от друга точек в массиве +4 задачи.
Любая на выбор, помогите пожалуйста решить!!!! 12. Задан массив действительных чисел....

Напишите программу определения двух наиболее удаленных друг от друга точек
1. Координаты точек на плоскости заданы двумя массивами Х и У(в каждом по 10 элементов) . Напишите...

Определить пару наиболее удаленных друг от друга окружностей
помогите решить задачу. На плоскости задано n произвольно расположенных окружностей. Определить...

Определить пару наиболее удаленный друг от друга точек.
четыре точки заданы координатами: А(4,8:-3) В(-6,5:1,2) С(-3,7:-4,5) D(7,8:2). Определить пару...

6
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,133
13.03.2012, 11:45 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
uses crt;
const nmax=15;
var a:array[1..2*nmax] of real;
    n,i,j,n1,n2,i1,i2:integer;
    mx:real;
begin
clrscr;
randomize;
repeat
write('Количество точек до ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to 2*n do
a[i]:=-9+19*random;
writeln('Координаты точек:');
write('  ');
for i:=1 to n do
write(i:5);
writeln;
write('X:');
for i:=1 to n do
write(a[2*i-1]:5:1);
writeln;
write('Y:');
for i:=1 to n do
write(a[2*i]:5:1);
writeln;
n1:=1;
n2:=2;
i1:=1;
i2:=3;
mx:=sqr(a[1]-a[3])+sqr(a[2]-a[4]);
i:=1;
while i<=2*n-3 do
 begin
  j:=i+2;
  while j<=2*n-1 do
   begin
    if sqr(a[i]-a[j])+sqr(a[i+1]-a[j+1])>mx then
     begin
      mx:=sqr(a[i]-a[j])+sqr(a[i+1]-a[j+1]);
      i1:=i;
      i2:=j;
      n1:=i div 2+1;
      n2:=j div 2+1;
     end;
    j:=j+2;
   end;
  i:=i+2;
 end;
writeln('Максимальное расстояние между точками');
writeln(n1:2,' с координатами (',a[i1]:4:1,';',a[i1+1]:4:1,')');
writeln(n2:2,' с координатами (',a[i2]:4:1,';',a[i2+1]:4:1,')');
readln
end.
1
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 21
17.03.2012, 15:11  [ТС] 3
спасибо)
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 4
26.03.2012, 10:34 4
напишите, пажалйста, пояснение к выполняемым действиям и переменным)
заранее спасибо
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,133
26.03.2012, 10:56 5
А что непонятно? Вводится массив координат где нечетные индексы это Х, четные У.
За макс принимается расстояние между точкой 1(индексы 1,2) и точкой 2(индексы 3,4).
Затем определяем попарно все расстояния, находим максимальное и запоминаем номера точек.
Описание каждого действия дорого стоит, да и если мозга нет, то это не поможет.
0
0 / 0 / 0
Регистрация: 16.03.2012
Сообщений: 4
27.03.2012, 11:33 6
если данные вводятся не рандомно, а пользователем, то неправильно работает

Добавлено через 5 минут
если вводить координаты квадрата: 0 0; 0 2; 2 2; 2 0, то он пишет, что макс расстояние между первой и воторой точками, а не 1 и 3

Добавлено через 53 минуты
все, я понял. ты забыл sqrt в формуле. и i надо присваивать единице, а не 5. то же самое с j.
все равно большое спасибо)
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,133
27.03.2012, 11:56 7
Цитата Сообщение от dwijok Посмотреть сообщение
ты забыл sqrt в формуле
Не забыл а просто это не нужно. Зачем извлекать корень если можно просто сравнить квадраты расстояний.
Насчет i ты прав, не о том думал... Поправил в своем коде.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2012, 11:56

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

В случайном множестве точек соединить прямой линией две наиболее удаленные друг от друга
Поисковая система показала мне одну программу, решающую нечто подобное. Я был удивлён. Судя по...

Найти номера и координаты точек, наиболее удаленных друг от друга
Задано N точек своими координатами. Найти номера и координаты точек, наиболее удаленных друг от...

Определить пару наиболее удаленных друг от друга точек
Четыре точки заданны координатами А(4,8,2) ; В(-6,5,I.2) ; С(-3,7,-4.5) ; D(7,8,2). Определить...

Найти среди точек пару наиболее удаленных друг от друга
Даны n точек плоскости (x1,y2),...(xn,yn). Найти среди них пару наиболее удаленных друг от друга. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.