Форум программистов, компьютерный форум 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
Сообщений: 70

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

09.12.2012, 21:54. Просмотров 1513. Ответов 4
Метки (Все метки)

Прошу помощи. В интернете ничего стоящего по этой теме не нашёл. Задача собственно такова:
Написать класс PolarCoordinates, представляющий собой класс координат точки на плоскости, выраженный в виде своих полярных координат (радиуса и угла в радианах).

Конструктор класса должен принимать два целых числа (int), либо одно целое число, либо не принимать параметров (в таком случае его значение принимается равным (0,0)).
Класс должен обладать следующими методами:
int r() -- радиус;
int phi() -- угол;
int x() -- декартова координата x;
int y() -- декартова координата y;
int distance(const PolarCoordinates&) -- расстояние до заданной точки;

Для класса должны быть перегружены следующие операторы:
>>
<<
+, +=
-, -=

Семантика операторов должна быть схожей с соответствующей семантикой операторов для int, причем сложение выполняется по принципу сложения векторов, а вычитание - по принципу вычитания векторов соответственно.
Мне не совсем понятны методы класса, поэтому может показаться полным бредом то, что я написал. Мне кажется, что писал я не то, что нужно:

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
//Файл Polarization.h
// Предотвращение многократного включения данного файла
#ifndef _Polarization_h
#define _Polarization_h
 
 
    #include <iostream>  // Для ввода-вывода
    #include <stdlib.h>  // Для exit( )
    #include <math.h>
    using namespace std ;
 
    class POLARIZATION
    {
        int i ;
        int x ;         // декартова координата x
        int y ;         // декартова координата y
        int r ;         // радиус
        int phi ;       // угол
    
        // Функция преобразования
        
 
    public:
        void convert () ;
        // Конструктор по умолчанию
        POLARIZATION () ;
        // Конструктор из x
        POLARIZATION ( int koord ) ;
        // Конструктор из x и y
        POLARIZATION ( int koord1 , int koord2 ) ;
 
        // Ввод и вывод
        friend istream& operator >> ( istream& in , POLARIZATION& r ) ;
        friend ostream& operator << ( ostream& out , const POLARIZATION& 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
//Файл Polarization.cpp
#include "Polarization.h"
 
POLARIZATION::POLARIZATION ()
{
   x = 0 ;
   y = 0 ;
   i = 0 ;
}
 
POLARIZATION::POLARIZATION ( int koord )
{
   x = koord ;
   y = 0 ;
   i = 0 ;
}
 
POLARIZATION::POLARIZATION ( int koord1 , int koord2 )
{
   x = koord1 ;
   y = koord2 ;
   i = 0;
}
 
void POLARIZATION::convert()
{
    r=sqrt ( x * x + y * y );
    if ( ( x > 0 ) && ( y >= 0 ) )
    {
        phi = atan ( y / x ) ;
        i ++ ;
    }
 
    if ( ( x > 0 ) && ( y < 0 ) )
    {
        phi = atan ( y / x ) + 1 ;
        i ++ ;
 
    }
    if ( x < 0 )
    {
        phi = atan ( y / x ) + 0.5 ;
        i ++ ;
 
    }
    if ( ( x = 0 ) && ( y > 0 ) )
    {
        phi = 0.25 ;
        i ++ ;
 
    }
    if ( ( x = 0 ) && ( y < 0 ) )
    {
        phi = 1.5 ;
        i ++ ;
    }
    if ( ( x = 0 ) && ( y = 0 ) )
    {
        phi = 0 ;
        i ++ ;
 
    }
 
}
 
 
istream& operator >> ( istream& in, POLARIZATION& r )
{
   in >> r.x >> r.y ;
   return in ;
}
 
ostream& operator << ( ostream& out, const POLARIZATION& r )
{
    if ( r.i == 0 )
    {
        out << r.x << " " << r.y ;
        return out ;
    }
    else
    {
        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
//Файл main.cpp
#include "Polarization.h"
 
int main ( void )
{
    // точка создаётся при помощи 1 конструктора
    POLARIZATION point1 ;
    // значение координат до преобразования
    cout << "Before: " << point1 << endl ;
    // преобразование координат
    point1.convert () ;
    // значение координат после преобразования
    cout << "After: " << point1 << endl ;
 
    // точка создаётся при помощи 2 конструктора
    POLARIZATION point2 (5) ;
    // значение координат до преобразования
    cout << "Before: " << point2 << endl ;
    // преобразование координат
    point2.convert () ;
    // значение координат после преобразования
    cout << "After: " << point2 << endl ;
 
    // точка создаётся при помощи 3 конструктора
    POLARIZATION point3 (4,7) ;
    // значение координат до преобразования
    cout << "Before: " << point3 << endl ;
    // преобразование координат
    point3.convert () ;
    // значение координат после преобразования
    cout << "After: " << point3 << endl;
 
    // точку создаёт пользователь
    cout << "Set x & y in decart:" << endl ;
    POLARIZATION mypoint ;
    cin >> mypoint ;
    // значение координат до преобразования
    cout << "Before: " << mypoint << endl ;
    // преобразование координат
    mypoint.convert () ;
    // значение координат после преобразования
    cout << "After: " << mypoint << endl ;
    
   return 0 ;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru