IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> массив с координатами точек, Pelles C for Windows
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


Задан вещественный массив размера 2*N, каждая пара элементов которого
содержит координаты точки x и y. Определить номера пар задающих точки с
максимальным расстоянием между ними.


не могли бы вы объяснить немного сам смысл задачи? и как можно организовать цикл, чтобы рассмотреть все комбинации?
расстояние я понимаю нужно считать по формуле: sqrt( pow((x2-x1),2.0)+pow((y2-y1),2.0))?

Сообщение отредактировано: *оля* -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
Примерно так

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


ну так мы же получим только согласно задаче x или y, а как сделать, чтобы получить и x, и y, чтобы посчитать расстояние?
либо я не совсем понимаю задание

Сообщение отредактировано: *оля* -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


хм. Данные расположены
XY XY XY XY
так? т.е. вектор?

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


вот я и не знаю, что тут имеется в виду, просто смущает то, что в задании массива цифра 2)
не может быть так:
X X X X
Y Y Y Y

?

хотя вряд ли наверное?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


если матрица, то просто один цикл.
Если вектор. пусть будут точки
11 22 33 44. Итого четыре точки (X и Y)
for (i=0; i<n-1; i++) //n = 4
for (j=i+1; j<n; j++)

чтобы получить теперь X и Y для первой точки, можно написать так
if ((i-1)*2 +1) //будет X
if ((i-1)*2 +2) //будет Y

и для j надо тоже найти x и y

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


=(((
пытаюсь вникнуть, но не понимаю
Цитата(Client @ 28.10.2010 18:31) *

если матрица, то просто один цикл.




если делаю так:


while (i<2) {
for (int j=0; j<m-1; j++) // получаем x
for ( int jj=1; jj<m; jj++) // получаем y
...



то это только одна точка, а надо сразу две
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


#include <stdio.h>
#include <iostream>

using namespace std;
int main(int argc, char **argv)
{
int arr[2][4];
for (int i = 0; i<2; i++)
for(int j = 0; j<4; j++)
arr[i][j] = i*10 + j +1;
for (int i = 0; i<2; i++){
for(int j = 0; j<4; j++)
cout << arr[i][j] << '\t';
cout << '\n';
}
cout << '\n';
for (int i = 0; i<4-1; i++){
cout << "ARR I= "<< i <<"; " << arr[0][i] << "__" << arr[1][i] << '\t';
cout << '\n';
for (int j =i+1; j<4; j++){
cout << "ARR J=" << j << "; " << arr[0][j] << "__" << arr[1][j] << '\t';
}
cout << '\n';
cout << '\n';
}

return 0;
}

Вот как бы визуальное представление.
надо только посчитать и найти 2 точки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


М
А почему вторая тема за день с тем же названием?? blink.gif *Оля*, у вас так принято? Подумай немного о других..
Переделай, пожалуйста.
Кстати, это также повод перечитать еще разок три пункта правил этого раздела (вверху страницы). Особенно, третий пункт.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Спасибо.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


Client, спасибо большое!)

Lapp, извиняюсь, постараюсь больше правила не нарушать)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
	int arr[2][4];
противоречит условию:
Цитата
Задан вещественный массив размера 2*N
, про матрицу речи не было. Должно быть так:
Цитата
double arr[2*n]

Соответственно, решение - как-то вот так (SQR определил как макрос):
    const int n = 4;
double arr[2*n] = {2, 2, 6, 6, 5, 2, 4, 1};

int first = -1, second = -1;
double dist = 0.0;

for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
double new_dist = sqrt(SQR(arr[2*i] - arr[2*j]) + SQR(arr[2*i+1] - arr[2*j+1]));
if(new_dist > dist)
{
dist = new_dist;
first = i; second = j;
}
}
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Пионер
**

Группа: Пользователи
Сообщений: 125
Пол: Женский

Репутация: -  1  +


да, в условии подразумевалось именно это, вы, как всегда, правы, спасибо большое!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 15:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name