Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 02.04.2012
Сообщений: 107
1

Структуры данных. Количество звезд в Галактике.

07.04.2012, 12:32. Показов 1237. Ответов 7
Метки нет (Все метки)

Приблизительное количество звезд разных спектральных классов в Галактике
Спектральный класс| Приблизительная масса (отн.Солнца)| Часть % | Численность
O | 32 | 0.00002 | 55000
F | 1.25 | 2.9 | 12000000000
M | 0.2 | 73.2 | 293000000000
Примечание: не показаны данные для классов: B, A, G, K
Миниатюры
Структуры данных. Количество звезд в Галактике.  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2012, 12:32
Ответы с готовыми решениями:

Сколько звёзд в галактике "Туманность Андромеды"?
Вообще пишут, что по размеру и форме Наша Галактика похожа на галактику Туманность Андромеды. То...

Определить количество планет в матрично-спиральной галактике
1)Ученые вывели формулу для определения количества планет в произвольной матрично-спиральной...

Понятие структуры данных. Элементарные структуры данных. Простые структуры данных
Понятие структуры данных. Элементарные структуры данных. Простые структуры данных: методы...

Вывести количество звезд, соответствующее введенным числам
нужно ввести 5 чисел в пределах от 1-30. Например мы ввели 7 то должно вывести на екран 7 звезд...

7
3656 / 2843 / 781
Регистрация: 25.03.2012
Сообщений: 10,424
Записей в блоге: 1
07.04.2012, 16:02 2
M | 0.2 | 73.2 | 293000000000

ууу.. да это побольше будет, чем ULONG_MAX=4294967295
Тут длинная арифметика нужна, мда.
Поищи в гугле или на форуме класс для длинной арифметики

Хотя, учитывая, что точное значение известно только для первых трёх-четырёх знаков, то можно хранить только мантиссу и порядок
mantissa=293;
poriadok=9;
osnovanie=10;
C++
1
2
3
4
5
6
7
8
9
10
11
//const  osnovanije=2
//const  osnovanije=10
//const  osnovanije=1000000000
const int osnovanije=1<<32;//возможны варианты
struct star{
unsigned int num_mant;
int num_porj;
double part;
double mass;
char spec_class;
};
0
Модератор
Эксперт С++
11481 / 9399 / 5649
Регистрация: 18.12.2011
Сообщений: 25,108
07.04.2012, 16:08 3
не надо тут никакие ULONG_MAX.
Значения выводятся с точностью всего 3 значащие цифры,
а посему достаточно даже Float.
0
3 / 3 / 1
Регистрация: 02.04.2012
Сообщений: 107
07.04.2012, 22:17  [ТС] 4
Цитата Сообщение от zss Посмотреть сообщение
не надо тут никакие ULONG_MAX.
Значения выводятся с точностью всего 3 значащие цифры,
а посему достаточно даже Float.
Спасибо! Но как прикажете создавать алгоритм?
0
3656 / 2843 / 781
Регистрация: 25.03.2012
Сообщений: 10,424
Записей в блоге: 1
07.04.2012, 22:27 5
Цитата Сообщение от MaDiNa Посмотреть сообщение
Спасибо! Но как прикажете создавать алгоритм?
Алгоритм чего?
Их нужно складывать , вычитать или что? Если все количества звёзд примерно в диапазоне от 55000 до 300000000000 То следует хранить их отрезав последние три десятичных нуля (или десять двоичных)

от 55 до 300000000
как раз попадает в int от -2147483647 до 2147483647 в моей MSVS
Можно было всего один нуль отрезать, ну да ладно
1
3 / 3 / 1
Регистрация: 02.04.2012
Сообщений: 107
07.04.2012, 22:39  [ТС] 6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Алгоритм чего?
Их нужно складывать , вычитать или что? Если все количества звёзд примерно в диапазоне от 55000 до 300000000000 То следует хранить их отрезав последние три десятичных нуля (или десять двоичных)

от 55 до 300000000
как раз попадает в int от -2147483647 до 2147483647 в моей MSVS
Можно было всего один нуль отрезать, ну да ладно
алгоритм всей задачи! Я вообще не поняла что здесь делать? просто создать структуру? а данные в таблице это входные? или как? объясните пожалуйста? Заранее спасибо!
0
3656 / 2843 / 781
Регистрация: 25.03.2012
Сообщений: 10,424
Записей в блоге: 1
07.04.2012, 23:02 7
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
const int osnova=1000;//возможны варианты
 
struct star_class{
  unsigned int size;//численность в галактике
  double part;
  double mass;
  char spec_class;
}buffer[10];
 
int bufsize;
 
void print_stars(){
  std::cout<<"Class|Mass(%sun)|Part|size"<<std::endl;
  for (int i=0; i<bufsize; i++){
    std::cout<<buffer[i].spec_class<<"|"<<buffer[i].mass<<"|"<<buffer[bufsize].part
    <<buffer[i].size <<"000"<<std::endl;
  }
}
 
bool from_string(T& t, 
                 const std::string& s, 
                 std::ios_base& (*f)(std::ios_base&))
{
  std::istringstream iss(s);
  return !(iss >> f >> t).fail();
}
 
int main()
{
   bool asking;
   string s;
   bufsize=0;
   
   do{
      std::cout<<"введи класс звёзд:";
      std::cin>>buffer[bufsize].spec_class;
      std::cout<<"введи массу звёзд класса (отн Солнца, float)"<<buffer[bufsize].spec_class;
      std::cin>>buffer[bufsize].mass;
      std::cout<<"введи часть класса(%, float) "<<buffer[bufsize].spec_class;
      std::cin>>buffer[bufsize].part;
      std::cout<<"введи количество звёзд класса "<<buffer[bufsize].spec_class;
      std::cin>>s;
      s.substr (0,s.length()-3);// последние 3 цифры долой
      from_string<int>(buffer[bufsize].size, s, std::dec);
      std::cout<<"продолжать?? (y/n)";
      bufsize++;
      std::cin>>s;
   }while(s=="y");
print_stars();
std::cin>>s;
return 0;
}
1
3 / 3 / 1
Регистрация: 02.04.2012
Сообщений: 107
07.04.2012, 23:08  [ТС] 8
Kuzia domovenok, Огромное СПАСИБО!!!!!!!!!! Теперь завтра доделаю)))))))) А то у нас здесь уже глубокая ночь! ОГРОМНЕЙШЕЕ СПАСИБО!
а как переделать код для использования в визульном программировании?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2012, 23:08

Определить количество отличников по предмету на курсе с помощью структуры данных – «стек»
Разработать функции для выполнения базовых операций над линейными структурами, содержащими записи...

Динамические структуры данных: определить количество потомков каждого элемента дерева
определить количество потомков каждого элемента дерева program L5_2; uses Crt; type Tree = ^S; ...

Динамические структуры данных. Организация данных в списковые структуры
Написать программу вставки нового элемента в список за некоторым заданным по- рядковым номером...

Динамические структуры данных. Организация данных в списковые структуры
Написать программу, формирующую два списка, заполняя их числами из файлов. Объединить оба списка в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru