Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/30: Рейтинг темы: голосов - 30, средняя оценка - 5.00
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
1

структура TPoint

25.02.2012, 22:26. Показов 5550. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Помогите решить
Решить задачу, используя структуру 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);
}
Заранее всем премного благодарен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2012, 22:26
Ответы с готовыми решениями:

Пожалуйста, подскажите, что нужно для работы с TPoint?
Добрый день! Пожалуйста, подскажите, что нужно для работы с TPoint? Я подключил windows.h,...

Как подключить библиотеки TBitmap, TPoint и т.п. в проекте Visual Studio ?
Ребят у меня курсач на стеганографию, дело в том, что сам пример я нашел:...

Дано описание следующего класса class TPoint ... Как описывается указатель на данный класс
Дано описание следующего класса class TPoint ... Как описывается указатель на данный класс

Описать тип TPoint — запись с полями вещественного типа X и Y (координаты точки на плоскости) — и функцию Leng(A, B)
Описать тип TPoint — запись с полями вещественного типа X и Y (координаты точки на...

7
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
25.02.2012, 22:33 2
Цитата Сообщение от .: TAPAKAH :. Посмотреть сообщение
std::cin >> TPoint sets[10];
И что тут по-твоему должен сделать cin? Откуда ему знать, что нужно писать в массив твоих структур? Тем более, что ты объявляешь этот самый массив в неположенном месте.
1
136 / 107 / 61
Регистрация: 05.02.2012
Сообщений: 241
25.02.2012, 22:38 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;
  }
1
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
26.02.2012, 15:03  [ТС] 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  
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.02.2012, 17:57 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  
1
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
26.02.2012, 23:21  [ТС] 6
Avazart спасибо, что указали ошибки
теперь осталось их исправить... может кто помочь в этом?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.02.2012, 23:43 7
C++
1
2
Avazart спасибо, что указали ошибки
 теперь осталось их исправить... может кто помочь в этом?
Так там i и j поменять местами ... я ж пометил строки "//!!!""
1
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
27.02.2012, 10:32  [ТС] 8
Ой сорри Не заметил
0
27.02.2012, 10:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2012, 10:32
Помогаю со студенческими работами здесь

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и...

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет функцию, которая...

Структура DateTime, битовая структура
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru