Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Sublimee
7 / 7 / 1
Регистрация: 14.11.2012
Сообщений: 73
15.12.2012, 22:35  [ТС]

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

15.12.2012, 22:35. Просмотров 2007. Ответов 4
Метки (Все метки)

Задание было понято мной неправильно. Задаются полярные координаты, а по ним находятся декартовые. В связи с чем программа была немного переписана.


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
// Файл Polarization.h
// Предотвращение многократного включения данного файла
#ifndef _Polarization_h
#define _Polarization_h
 
 
    #include <iostream>  // Для ввода-вывода
    #include <stdlib.h>  // Для exit( )
    #include <math.h>
    using namespace std ;
 
    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 () ;
        // Конструктор из r
        PolarCoordinates ( double radius ) ;
        // Конструктор из r и phi
        PolarCoordinates ( double radius , double ygol ) ;
 
        int get_x ();
        int get_r ();
        int get_phi ();
        int get_y ();
        
        // Ввод и вывод
        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
 // Файл 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 << "Polar mypoint: " << endl << endl ;
    cout << "r=" << mypoint.get_r () << " phi=" << mypoint.get_phi () << endl << endl ;
    // декартовые значения координат
    cout << "Decart mypoint: " << endl << endl ;
    cout << "x=" << mypoint.get_x () << " y=" << mypoint.get_y() << endl << endl ;
    
   return 0 ;
}
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
 //Файл Polarization.cpp
#include "Polarization.h"
 
PolarCoordinates::PolarCoordinates ()
{
    r = 0 ;
    phi = 0 ;
    set_x ();
    set_y ();
}
 
PolarCoordinates::PolarCoordinates ( double radius )
{
    r = radius ;
    phi = 0 ;
    set_x () ;
    set_y () ;
}
 
PolarCoordinates::PolarCoordinates ( double radius , double ygol )
{
    r = radius ;
    phi = ygol ;
    set_x () ;
    set_y () ;
}
 
int PolarCoordinates::get_x () 
{
    return x ;
}
int PolarCoordinates::get_y ()
{
    return y ;
}
int PolarCoordinates::get_r ()
{
    return r ;
}
int PolarCoordinates::get_phi () 
{
    return phi ;
}
 
istream& operator >> ( istream& cin, PolarCoordinates& r )
{
   cin >> r.r >> r.phi ;
   r=r.r;
 
   return cin ;
}
 
ostream& operator << ( ostream& out, const PolarCoordinates& r )
{
    
        out << r.x << " " << r.y ;
        return out ;
    
}
Перегруженная оперция >> принимает значения r и phi, но как их перевести к x и y?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 22:35
Готовые ответы и решения для C++ Полярные координаты:

Определить полярные координаты точки
Определить полярные координаты точки,заданной координатами x,y в прямоугольных...

Определить полярные координаты точки, заданной координатами х, у в прямоугольных координатах по формулам: 
Здравствуйте, помогите пожалуйста решить задачку. Определить полярные...

Класс "Полярные координаты"
Нужно создать класс Polar , который можно использовать для хранения полярных...

Даны координаты вершин треугольника и координаты некоторой точки внутри него
Даны координаты вершин треугольника и координаты некоторой точки внутри него....

Заданы координаты трех вершин прямоугольника, необходимо определить координаты четвертой вершины
Заданы координаты трех вершин прямоугольника. Необходимо определить координаты...

Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты
Лабораторная работа 5. Одномерные массивы * * Для задач этого раздела...

4
Полярные координаты C++   Следующее сообщение темы 
Другие темы раздела
C++ Найти количество фигур в матрице http://www.cyberforum.ru/cpp-beginners/thread725424.html
Нужно найти количество фигур в матрице 6х8 фигуры. Фигуры состоят из 1, остальные ячейки 0. Вот пример как выглядит матрица сдесь 5 фигуры. 110011 ...
C++ Сумма максимальных массивов Помогите написать программу, которая бы находила сумму двух максимальных массивов и объясните каждую строчку, был бы очень благодарен. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread725418.html
C++ Ошибка: Левый операнд должен быть левосторонним значением
Здравствуйте, не могу понять, в чем суть ошибки. Ругается на это и подобные выражения best.fio.f=mas.fio.f; Слышал, можно избежать ошибки, используя strcpy... #include<iostream>...
как в файл с динамическим массивом вставить 2 старших байта первого элемента в конец файла,а 2 младших байта в середину файла C++
нужно в файл с динамическим массивом вставить 2 старших байта первого элемента в конец файла,а 2 младших байта в середину файла, но почему то все 4 байта он записывает в конец файла, не могу понять в...
C++ Сформировать файл, в котором хранится информация о... http://www.cyberforum.ru/cpp-beginners/thread725414.html
Люди помогите как написать эту программу в c++?: Сформировать файл, в котором хранится информация о заболеваниях сотрудников: ФИО., Год рождения, заболевания, продолжительность болезни. На его...
C++ определить количество слов в которых одинакова первая и последняя буквы мне нкжно определить количество слов в которых одинакова первая и последняя буквы я попыталась но ничего не получается((( #include <iostream> #include <conio.h> #include <string.h> using... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru