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

Полярные координаты - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти количество фигур в матрице http://www.cyberforum.ru/cpp-beginners/thread725424.html
Нужно найти количество фигур в матрице 6х8 фигуры. Фигуры состоят из 1, остальные ячейки 0. Вот пример как выглядит матрица сдесь 5 фигуры. 110011 100111 000000 001111 111100 000001 ...
C++ Сумма максимальных массивов Помогите написать программу, которая бы находила сумму двух максимальных массивов и объясните каждую строчку, был бы очень благодарен. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread725418.html
C++ Ошибка: Левый операнд должен быть левосторонним значением
Здравствуйте, не могу понять, в чем суть ошибки. Ругается на это и подобные выражения best.fio.f=mas.fio.f; Слышал, можно избежать ошибки, используя strcpy... #include<iostream> #include<string.h> #include<stdio.h> using namespace std; int main(){ struct fio_type{ char f,i,o;
как в файл с динамическим массивом вставить 2 старших байта первого элемента в конец файла,а 2 младших байта в середину файла C++
нужно в файл с динамическим массивом вставить 2 старших байта первого элемента в конец файла,а 2 младших байта в середину файла, но почему то все 4 байта он записывает в конец файла, не могу понять в чем ошибка #include <fstream> #include <iomanip> #include <stdio.h> #include <iostream> using namespace std; int row, col; int main(int argc, char* argv) {
C++ Сформировать файл, в котором хранится информация о... http://www.cyberforum.ru/cpp-beginners/thread725414.html
Люди помогите как написать эту программу в c++?: Сформировать файл, в котором хранится информация о заболеваниях сотрудников: ФИО., Год рождения, заболевания, продолжительность болезни. На его основе сформировать список сотрудников постарше 30 лет Оригинал: Сформувати файл, в якому зберігається інформація про захворювання співробітників: ПІБ., рік народження, захворювання, тривалість...
C++ определить количество слов в которых одинакова первая и последняя буквы мне нкжно определить количество слов в которых одинакова первая и последняя буквы я попыталась но ничего не получается((( #include <iostream> #include <conio.h> #include <string.h> using namespace std; char main() { setlocale(LC_ALL,"Rus"); подробнее

Показать сообщение отдельно
Sublimee
7 / 7 / 0
Регистрация: 14.11.2012
Сообщений: 69
19.12.2012, 16:59  [ТС]     Полярные координаты
Было решено не хранить полярные и декартовые значения координат для объекта, а ограничиться только полярными, что мне кажется более логичным.
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
// Файл Polarization.h
// Предотвращение многократного включения данного файла
#ifndef _Polarization_h
#define _Polarization_h
 
 
    #include <iostream>  // Для ввода-вывода
    #include <math.h>
    using namespace std ;
    #define M_PI 3.14159265358979323846
    class PolarCoordinates
    {
        double r ;          // радиус
        double phi ;        // угол
        //double x;         // x
        //double y;         // y
        //void set_x () { x = r * cos(phi) ; }
        //void set_y () { y = r * sin(phi) ; }
 
    public:
 
        PolarCoordinates operator + ( PolarCoordinates& h ) ;
        PolarCoordinates& operator += ( PolarCoordinates& h ) ;
        PolarCoordinates operator - ( PolarCoordinates& h ) ;
        PolarCoordinates& operator -= ( PolarCoordinates& h ) ;
        // Конструктор копирования
        PolarCoordinates ( const PolarCoordinates& a ) ;
        // Конструктор по умолчанию
        PolarCoordinates () ;
        // Конструктор из r
        PolarCoordinates ( double radius ) ;
        // Конструктор из r и phi
        PolarCoordinates ( double radius , double ygol ) ;
        //void convert ( PolarCoordinates& r ) ;
        //double distance ( PolarCoordinates& my, PolarCoordinates& next) ;
        double get_x () ;
        double get_r () ;
        double get_phi () ;
        double get_y () ;
        double distance ( PolarCoordinates& my ) ;
        // Ввод и вывод
        friend istream& operator >> ( istream& in , PolarCoordinates& r ) ;
        friend ostream& operator << ( ostream& out , const PolarCoordinates& r ) ;
 
    };
 
#endif
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
// Файл Polarization.cpp
#include "Polarization.h"
 
PolarCoordinates PolarCoordinates::operator + ( PolarCoordinates& h )
{
    PolarCoordinates temp(*this);
    temp += h;
    return temp;
}
PolarCoordinates& PolarCoordinates::operator += ( PolarCoordinates& h )
{
    double x = get_x () + h.get_x () ;
    double y = get_y () + h.get_y () ;
    r = sqrt ( x * x + y * y ) ;
    
    if ( r == 0 ) 
    {
        phi = 0 ;
    }
 
    if ( ( x > 0 ) && ( y >= 0 ) )
    {
        phi = atan ( x / y ) ;
    }
 
    if ( ( x > 0 ) && ( y < 0 ) )
    {
        phi = atan ( x / y ) + 2 * M_PI ;
    }
    if ( ( x < 0 ) && ( y < 0 ) )
    {
        phi = atan ( x / y ) + M_PI ;
    }
    
    if ( ( x == 0 ) && ( y > 0 ) )
    {
        phi = M_PI / 2 ;
    }
    
    if ( ( x == 0 ) && ( y < 0 ) )
    {
        phi = (  M_PI ) / 2 ;
    }
 
    if ( ( x == 0 ) && ( y == 0 ) )
    {
        phi = 0 ;
    }
 
    return *this;
}
PolarCoordinates PolarCoordinates::operator - ( PolarCoordinates& h )
{
    PolarCoordinates temp(*this);
    temp -= h;
    return temp;
}
PolarCoordinates& PolarCoordinates::operator -= ( PolarCoordinates& h )
{
    double x = get_x () - h.get_x () ;
    double y = get_y () - h.get_y () ;
 
    r = sqrt ( x * x + y * y ) ;
    
    if ( r == 0 ) 
    {
        phi = 0 ;
    }
 
    if ( ( x > 0 ) && ( y >= 0 ) )
    {
        phi = atan ( x / y ) ;
    }
 
    if ( ( x > 0 ) && ( y < 0 ) )
    {
        phi = atan ( x / y ) + 2 * M_PI ;
    }
    if ( ( x < 0 ) && ( y < 0 ) )
    {
        phi = atan ( x / y ) + M_PI ;
    }
    
    if ( ( x == 0 ) && ( y > 0 ) )
    {
        phi = M_PI / 2 ;
    }
    
    if ( ( x == 0 ) && ( y < 0 ) )
    {
        phi = (  M_PI ) / 2 ;
    }
 
    if ( ( x == 0 ) && ( y == 0 ) )
    {
        phi = 0 ;
    }
 
    return *this;
}
PolarCoordinates::PolarCoordinates (const PolarCoordinates& a)
{
    r=a.r;
    phi=a.phi;
}
PolarCoordinates::PolarCoordinates ()
{
    r = 0 ;
    phi = 0 ;
}
 
PolarCoordinates::PolarCoordinates ( double radius )
{
    r = radius ;
    phi = 0 ;
}
 
PolarCoordinates::PolarCoordinates ( double radius , double ygol )
{
    r = radius ;
    phi = ygol ;
}
 
double PolarCoordinates::get_x () 
{
    return r * cos(phi) ;
}
 
double PolarCoordinates::get_y ()
{
    return r * sin(phi) ;
}
 
double PolarCoordinates::get_r ()
{
    return r ;
}
 
double PolarCoordinates::get_phi () 
{
    return phi ;
}
 
double PolarCoordinates::distance (PolarCoordinates& my)
{
    return ( sqrt ( (r * cos(phi)-my.r * cos(my.phi) ) * ( r * cos(phi) - my.r * cos(my.phi) ) +
        ( r * sin(phi)- my.r * sin(my.phi) ) * ( r * sin(phi) - my.r * sin(my.phi)) ) ) ;
}
 
istream& operator >> ( istream& cin, PolarCoordinates& r )
{
    cin >> r.r >> r.phi ;
    //r.set_x();
    //r.set_y();
    return cin ;
}
 
ostream& operator << ( ostream& out, const PolarCoordinates& r )
{
        out << r.r << " " << r.phi;
        return out ;
}
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
 //Файл main.cpp
#include "Polarization.h"
 
int main ( void )
{
    // точка создаётся при помощи 1 конструктора
    PolarCoordinates point1 ;
    // полярные значения координат
    cout << "Polar point1: " << endl << endl ;
    cout << "r=" << point1.get_r () << " phi=" << point1.get_phi () << endl << endl ;
    // декартовые значения координат
    cout << "Decart point1: " << endl << endl ;
    cout << "x=" << point1.get_x () << " y=" << point1.get_y () << endl << endl ;
 
    // точка создаётся при помощи 2 конструктора
    PolarCoordinates point2 (1) ;
    // полярные значения координат
    cout << "Polar point2: " << endl << endl ;
    cout << "r=" << point2.get_r () << " phi=" << point2.get_phi () << endl << endl ;
    // декартовые значения координат
    cout << "Decart point2: " << endl << endl ;
    cout << "x=" << point2.get_x () << " y=" << point2.get_y() << endl << endl ;
 
    // точка создаётся при помощи 3 конструктора
    PolarCoordinates point3 (4,5) ;
    // полярные значения координат
    cout << "Polar point3: " << endl << endl ;
    cout << "r=" << point3.get_r () << " phi=" << point3.get_phi () << endl << endl ;
    // декартовые значения координат
    cout << "Decart point3: " << endl << endl ;
    cout << "x=" << point3.get_x () << " y=" << point3.get_y() << endl << endl ;
 
    // точку создаёт пользователь
    cout << "Set r & phi in polar: " ;
    PolarCoordinates mypoint ;
    cin >> mypoint ;
    cout << endl ;
    // полярные значения координат
    cout << "Polar mypoint: " << endl << endl ;
    cout << "r=" << mypoint.get_r () << " phi=" << mypoint.get_phi () << endl << endl ;
    // декартовые значения координат
    cout << "Decart mypoint: " << endl << endl ;
    //mypoint.convert  (mypoint);
    cout << "x=" << mypoint.get_x () << " y=" << mypoint.get_y() << endl << endl ;
    
    // пользователь задаёт координаты точки, расстояние до которой необходимо найти
    cout << "Set r & phi in polar: ";
    PolarCoordinates nextpoint ;
    cin >> nextpoint ;
    cout << endl ;
    // полярные значения координат
    cout << "Polar nextpoint: " << endl << endl ;
    cout << "r=" << nextpoint.get_r () << " phi=" << nextpoint.get_phi () << endl << endl ;
    // декартовые значения координат
    cout << "Decart nextpoint: " << endl << endl ;
    cout << "x=" << nextpoint.get_x () << " y=" << nextpoint.get_y () << endl << endl ;
 
    // на экран выводится расстояние между точками mypoint и nextpoint
    cout<< "Distance = " << mypoint.distance (nextpoint) << "\n";
 
    // перегруженная операция +
    cout << "nextpoint = nextpoint + mypoint: " << endl << endl ;
    nextpoint = nextpoint + mypoint ;
    cout << "r=" << nextpoint.get_r () << " phi=" << nextpoint.get_phi () << endl << endl ;
    // перегруженная операция +=
    cout << "nextpoint += mypoint: " << endl << endl ;
    nextpoint += mypoint ;
    cout << "r=" << nextpoint.get_r () << " phi=" << nextpoint.get_phi () << endl << endl ;
    nextpoint = nextpoint - mypoint ;
    // перегруженная операция -
    cout << "nextpoint = nextpoint - mypoint: " << endl << endl ;
    cout << "r=" << nextpoint.get_r () << " phi=" << nextpoint.get_phi () << endl << endl ;
    nextpoint -= mypoint ;
    // перегруженная операция -=
    cout << "nextpoint -= mypoint: " << endl << endl ;
    cout << "r=" << nextpoint.get_r () << " phi=" << nextpoint.get_phi () << endl << endl ;
 
   return 0 ;
}
Всем спасибо. Все свободны.
 
Текущее время: 05:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru