Форум программистов, компьютерный форум CyberForum.ru

структура TPoint - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
.: TAPAKAH :.
Мега Таракан
 Аватар для .: TAPAKAH :.
110 / 11 / 1
Регистрация: 24.05.2010
Сообщений: 227
25.02.2012, 22:26     структура TPoint #1
Доброго времени суток! Помогите решить
Решить задачу, используя структуру Point для хранения координат точки.
Найти такую точку, что шар радиуса R с центром в этой точке,
cодержит минимальное число точек заданного множества

неполучается массив задать + ещё ошибки

C++
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
#include <iostream>
#include <cstdlib>
#include <cmath>
  
struct TPoint
{
  double x;
  double y;
  double z;
};
 
bool InSphere(TPoint, TPoint, double);
 
int main(int argc, char * argv[])
{
  double R;
  int i, j, count, max_count = 0;
  TPoint point;
  std::cout << "Radius-> ";
  std::cin >> R;
  std::cout << "Count values-> ";
  std::cin >> 
  TPoint sets[10];  
  
  for(i = 0; i < 10; i++)
  {
    count = 0;
    for (j = 0; j < 10; j++)
      if(InSphere(sets[i], sets[j], R) count++;
 
    if(count > max_count)
    {
      max_count = count;
      point = sets[j];
    }
  }
  if(max_count != 0)
    std::cout << "Point-> (" << point.x << "," << point.y << "," << point.z << ")" << std::endl;
  else
    std::cout << "Point not found." << std::endl;
  return 0;
}
 
 
bool InSphere(TPoint center, TPoint point, double R)
{
  return (pow(point.x - center.x, 2) + pow(point.y - center.y, 2) + pow(point.z - center.z, 2) == R*R);
}
Заранее всем премного благодарен
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
25.02.2012, 22:33     структура TPoint #2
Цитата Сообщение от .: TAPAKAH :. Посмотреть сообщение
std::cin >> TPoint sets[10];
И что тут по-твоему должен сделать cin? Откуда ему знать, что нужно писать в массив твоих структур? Тем более, что ты объявляешь этот самый массив в неположенном месте.
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
25.02.2012, 22:38     структура TPoint #3
Первое, что не понимаю так это ввод множества точек:
C++
1
2
std::cin >> 
  TPoint sets[10];
это неправильно, нужно вводить х, у, z в цикле так:
C++
1
2
3
4
5
6
 TPoint sets[10];  
  for(int i = 0; i < 10; i++)
  {
      std::cout << "Enter x, y, z:";
      std::cin >> sets[i].x >> sets[i].y >> sets[i].z;
  }
.: TAPAKAH :.
Мега Таракан
 Аватар для .: TAPAKAH :.
110 / 11 / 1
Регистрация: 24.05.2010
Сообщений: 227
26.02.2012, 15:03  [ТС]     структура TPoint #4
Цитата Сообщение от Игорь Миронюк Посмотреть сообщение
C++
1
2
std::cin >> 
* TPoint sets[10];
тут что то другое надо было ввести... короче ничего вводить не надо
лучше скажите, почему у меня такой результат получился?
по-идее должна быть одна из координат точки...
а тут какая-то **** дробная
C++
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <math.h>
 
/** Работа со структурами
 
  Решить задачу, используя структуру Point для хранения координат точки.
 
  Замечание: В задачах с четными номерами, множество точек задано на плоскости,
  в задачах с нечетными номерами, множество точек задано в пространстве. (кЭп)
 
  Найти такую точку, что шар радиуса R с центром в этой точке,
  содержит минимальное число точек заданного множества
 
  */
 
struct TPoint
{
  double x;
  double y;
  double z;
};
 
bool InSphere(TPoint, TPoint, double);
 
int _tmain(int argc, _TCHAR* argv[])
{
  double R;
  int i, j, count, min_count = 1000;
  const int COUNT = 10;
  TPoint point;
  std::cout << "Radius-> ";
  std::cin >> R;
  TPoint sets[COUNT];
  for(int i = 0; i < COUNT; i++)
  {
    std::cout << "Input Set[" << i << "].x-> ";
    std::cin >> sets[i].x;
    std::cout << "Input Set[" << i << "].y-> ";
    std::cin >> sets[i].y;
    std::cout << "Input Set[" << i << "].z-> ";
    std::cin >> sets[i].z;
    std::cout << std::endl;
  }
 
  for(i = 0; i < COUNT; i++)
  {
    count = 0;
    for (j = 0; j < COUNT; j++)
      if(InSphere(sets[j], sets[i], R)) count++;
 
    if(count < min_count)
    {
      min_count = count;
      point = sets[j];
    }
  }
  if(min_count != 0)
    std::cout << "Point-> (" << point.x << ", " << point.y << ", " << point.z << ")" << std::endl;
  else
    std::cout << "Point not found." << std::endl;
  system("pause");
  return 0;
}
 
 
bool InSphere(TPoint center, TPoint point, double R)
{
  return (pow(point.x - center.x, 2) + pow(point.y - center.y, 2) + pow(point.z - center.z, 2) >= R*R);
}
Миниатюры
структура TPoint  
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
26.02.2012, 17:57     структура TPoint #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  for(i = 0; i < COUNT; i++)
  {
    count = 0;
        for (j = 0; j < COUNT; j++)
          if(InSphere(sets[i], sets[j], R)) count++; // !!!
        cout<<"i= "<<i<<"  cout=" <<count<<endl;
 
        if(count < min_count)
        {
          min_count = count;
          point = sets[i]; // !!!
        }
  }
  if(min_count != 0)
        std::cout << "Point-> (" << point.x << ", " << point.y << ", " << point.z << ")" << std::endl;
  else
        std::cout << "Point not found." << std::endl;
        getchar();
Миниатюры
структура TPoint  
.: TAPAKAH :.
Мега Таракан
 Аватар для .: TAPAKAH :.
110 / 11 / 1
Регистрация: 24.05.2010
Сообщений: 227
26.02.2012, 23:21  [ТС]     структура TPoint #6
Avazart спасибо, что указали ошибки
теперь осталось их исправить... может кто помочь в этом?
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
26.02.2012, 23:43     структура TPoint #7
C++
1
2
Avazart спасибо, что указали ошибки
 теперь осталось их исправить... может кто помочь в этом?
Так там i и j поменять местами ... я ж пометил строки "//!!!""
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 10:32     структура TPoint
Еще ссылки по теме:

C++ Описать тип TPoint — запись с полями вещественного типа X и Y (координаты точки на плоскости) — и функцию Leng(A, B)
C++ Структура DateTime, битовая структура
C++ Структура «База», сущности «Универсам» и «Продукты», структура «Товар»

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

Или воспользуйтесь поиском по форуму:
.: TAPAKAH :.
Мега Таракан
 Аватар для .: TAPAKAH :.
110 / 11 / 1
Регистрация: 24.05.2010
Сообщений: 227
27.02.2012, 10:32  [ТС]     структура TPoint #8
Ой сорри Не заметил
Yandex
Объявления
27.02.2012, 10:32     структура TPoint
Ответ Создать тему
Опции темы

Текущее время: 16:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru