Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/12: Рейтинг темы: голосов - 12, средняя оценка - 4.50
.: TAPAKAH :.
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
1

структура TPoint

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

Доброго времени суток! Помогите решить
Решить задачу, используя структуру 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 22:26
Ответы с готовыми решениями:

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

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

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

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

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

7
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
25.02.2012, 22:33 2
Цитата Сообщение от .: TAPAKAH :. Посмотреть сообщение
std::cin >> TPoint sets[10];
И что тут по-твоему должен сделать cin? Откуда ему знать, что нужно писать в массив твоих структур? Тем более, что ты объявляешь этот самый массив в неположенном месте.
1
miriganua
131 / 102 / 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
.: TAPAKAH :.
Мега Таракан
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);
}
0
Миниатюры
структура TPoint  
Avazart
Эксперт С++
7724 / 5633 / 549
Регистрация: 10.12.2010
Сообщений: 25,406
Записей в блоге: 17
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();
1
Миниатюры
структура TPoint  
.: TAPAKAH :.
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
26.02.2012, 23:21  [ТС] 6
Avazart спасибо, что указали ошибки
теперь осталось их исправить... может кто помочь в этом?
0
Avazart
Эксперт С++
7724 / 5633 / 549
Регистрация: 10.12.2010
Сообщений: 25,406
Записей в блоге: 17
26.02.2012, 23:43 7
C++
1
2
Avazart спасибо, что указали ошибки
 теперь осталось их исправить... может кто помочь в этом?
Так там i и j поменять местами ... я ж пометил строки "//!!!""
1
.: TAPAKAH :.
Мега Таракан
110 / 11 / 5
Регистрация: 24.05.2010
Сообщений: 227
27.02.2012, 10:32  [ТС] 8
Ой сорри Не заметил
0
27.02.2012, 10:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 10:32

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

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

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


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

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

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