Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ketsvil555
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 6
#1

Создать 2 структуры: DEC и POL - C++ - C++

23.05.2016, 17:29. Просмотров 192. Ответов 4
Метки нет (Все метки)

Cоздать 2 структуры: DEC, состоящую из названия точки и её декартовых координат и POL, состоящую из названия точки и её полярных координат.
Считать из файла 10 точек в декартовых координатах. Перевести все точки в полярные координаты. Упорядочить их по Фи по убыванию. Найти название точки по введенному Фи.

Заранее благодарен всем тем, кто поможет!!!
http://www.cyberforum.ru/cpp-beginners/thread1720032.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2016, 17:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создать 2 структуры: DEC и POL - C++ (C++):

Dec to bin
Помогите написать программу перевода из 10-ой системы счисления в 2-ую, через ...

Из HEX в DEC
Господа привет. Помогите нубу из F6FD hex получить -522 dec. int a = 0xFD;...

Dec to Bin
Здравствуйте. Скажите, какие у меня есть ошибки в коде. static int...

Помещение структуры в вектор, удаление структуры, изменение элементов структуры
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в...

S dec na hex, ukazatel
Pomogite pojaluista! Etot kod menyaet 10noe chislo na 16noe. Nado izmenit eto...

4
Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
23.05.2016, 20:34 #2
Ну вот что-то такое.
C++
1
2
3
4
5
6
7
8
9
10
11
//points.txt
alpha 10 20
beta 20 30
gamma 30 40
delta 40 50
epsilon 5 10
zeta 15 2
eta 100 200
theta 150 100
iota 90 100
kappa 40 40
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>
 
#define BUFF_SIZE 100
 
using namespace std;
 
struct DEC {
    string name;
    double x;
    double y;
    DEC(string name, double x, double y) : name{ name }, x{ x }, y{ y } {}
};
 
struct POL {
    string name;
    double r;
    double phi;
    POL(string name, double r, double phi) : name{ name }, r{ r }, phi{ phi } {}
};
 
 
bool contains_name_dec(string name, vector<DEC> decs) {
    for (DEC d : decs)
        if (name == d.name)
            return true;
    return false;
}
 
POL dec_to_pol(DEC d) {
    double r = sqrt(d.x * d.x + d.y * d.y);
    double phi = atan2(d.y, d.x);
    return POL(d.name, r, phi);
}
 
bool my_comp_function(POL p1, POL p2) {
    return p1.phi > p2.phi;
}
 
bool double_equals(double a, double b, double epsilon = 0.001)
{
    return std::abs(a - b) < epsilon;
}
 
string name_by_phi(double phi, vector<POL> pols) {
    for (POL p : pols) {
        if (double_equals(phi, p.phi))
            return p.name;
    }
    return "phi not found";
}
 
int main()
{
    char data[BUFF_SIZE];
    ifstream fin;
    vector<DEC> decs;
    vector<POL> pols;
    string tname;
    double tx, ty;
 
    fin.open("points.txt");
    if (fin.fail())
        cout << "error!\n";
 
    while (fin) {
        fin >> tname;
        fin >> tx;
        fin >> ty;
        DEC d = DEC(tname, tx, ty);
        if (!contains_name_dec(tname, decs)) {
            cout << "pushing " << tname << endl;
            decs.push_back(d);
        }
    }
 
    cout << "all decs:\n";
    for (DEC el : decs)
        cout << el.name << "(" << el.x << ", " << el.y << ")" << endl;
 
    for (DEC el : decs) {
        POL p = dec_to_pol(el);
        pols.push_back(p);
    }
 
    cout << "all pols:\n";
    for (POL el : pols)
        cout << el.name << "(" << el.r << ", " << el.phi << ")" << endl;
 
    std::sort(pols.begin(), pols.end(), my_comp_function);
 
    cout << "sorted pols:\n";
    for (POL el : pols)
        cout << el.name << "(" << el.r << ", " << el.phi << ")" << endl;
 
    cout << name_by_phi(1.10715, pols) << endl;
    cout << name_by_phi(0.982794, pols) << endl;
    cout << name_by_phi(0.927295, pols) << endl;
    cout << name_by_phi(0.896055, pols) << endl;
    cout << name_by_phi(0.837981, pols) << endl;
    cout << name_by_phi(0.785398, pols) << endl;
    cout << name_by_phi(0.588003, pols) << endl;
    cout << name_by_phi(0.132552, pols) << endl;
    
    system("pause");
    return 0;
}
0
ketsvil555
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 6
24.05.2016, 11:49  [ТС] #3
Не работает
0
Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
25.05.2016, 12:06 #4
ketsvil555, а у меня работает. А что у вас не работает конкретно?
0
ketsvil555
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 6
25.05.2016, 18:23  [ТС] #5
Все теперь работает спасибо!
0
25.05.2016, 18:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2016, 18:23
Привет! Вот еще темы с решениями:

Long hex > dec
Никак не могу понять, как перевести большое 16-ричное в 10-ричное число. Вся...

Как в С++ конвертнуть HEX в DEC?
Киберперцы, есть ли готовая функция в Visual C++ для конвертации из HEX (типа...

Перевод числа из hex в dec
Привет, можете подсказать как можно перевести 16-ричное число произвольной...

Bin to dec типа float
Есть бинарное число вида 111111.1001, кое надо перевести в десятичную систему...


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

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

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