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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
#1

Определение классов - C++

13.11.2012, 21:04. Просмотров 914. Ответов 17
Метки нет (Все метки)

Определить классы, описывающие точку в полярной и декартовой системах координат. Составить и протестировать функции для:
а) получения декартовых координат точки, если заданы ее полярные координаты;
б) вычисления расстояния между двумя точками, заданными в декартовой системе координат;
в) получения полярных координат точки, если заданы ее декартовы координаты;
г) вычисления расстояния между двумя точками, заданными в полярной системе координат.
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
#include "math.h"
#include <iostream>
 
 
using namespace System;
using namespace Math;
 
double polindec(double *r,double *f)
{
  return r*math::()
}
 
class Decart
{
public:
    double x,y;
};
 
class Polar
{
public:
    double r,f;
};
int main()
{
    Decart *ptr=new Decart();
    return 0;
}
Вот я начал а незнаю правильно ли это и как продолжить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 21:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определение классов (C++):

Объявление и определение классов - C++
Всем здрасти! Имеем простецкий код: class Node; class HeadNode; class TailNode; class Node { public: Node() {}

Определение классов и методов - C++
Доброго времени суток! Изучаю язык не долго, самостоятельно и есть проблемка - не могу понять, как определяются методы классов( в VB,...

Определение классов ссылающихся друг на друга - C++
есть два таких класса(в классе tnode - есть поле node_list children, а node_list - это связанный список tnode) class tnode{ tnode*...

Определение классов, их реализацию, демонстрационную программу поместить в отдельные файлы. - C++
Работаю в консольном приложении CLR в vs 2010, в задании сказано: &quot;Определение классов, их реализацию, демонстрационную программу поместить...

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов - C++
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение, демонстрирующее работу с коллекцией объектов...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) - C++
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как вынести методы из классов Panel и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
13.11.2012, 21:36 #2
C++
1
return r*math::()
Что это??

Предположим, классы точек у вас уже есть.

Цитата Сообщение от L.Lawliet Посмотреть сообщение
а) получения декартовых координат точки, если заданы ее полярные координаты;
C++
1
2
3
4
5
6
Polar GetPolar(const Decart & Point)
{
    Polar polarPolint;
    // тут пересчитать координаты
    return polarPoint;
}
Цитата Сообщение от L.Lawliet Посмотреть сообщение
б) вычисления расстояния между двумя точками, заданными в декартовой системе координат;
C++
1
2
3
4
double Distance(const Decart & Point1, const Decart & Point2)
{
    return sqrt( (Point1.x - Point2.x) * (Point1.x - Point2.x) + (Point1.y - Point2.y) * (Point1.y - Point2.y) )
}
0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
13.11.2012, 22:53  [ТС] #3
Цитата Сообщение от John Prick Посмотреть сообщение
1
return r*math:)
Что это??
это я хотел функцию перевода из полярной в декартовую сделать

Добавлено через 3 минуты
Цитата Сообщение от John Prick Посмотреть сообщение
2
3
4
5
6
Polar GetPolar(const Decart & Point)
{
* * Polar polarPolint;
* * // тут пересчитать координаты
* * return
в смысле пересчитать?
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
13.11.2012, 22:56 #4
Ну как там координаты из одной систему в другую пересчитываются? Это математика уже, не программирование.
0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
13.11.2012, 23:07  [ТС] #5
Цитата Сообщение от John Prick Посмотреть сообщение
Polar GetPolar(const Decart & Point)
{
* * Polar polarPolint;
* * // тут пересчитать координаты
* * return polarPoint;
}
ну просто я в ооп не разбираюсь
как там их пересчитать допустим формула такая r=2x и f=2y
и куда его в мой код пихать?
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
13.11.2012, 23:13 #6
Цитата Сообщение от L.Lawliet Посмотреть сообщение
допустим формула такая r=2x и f=2y
Ну что-то я сомневаюсь, что она такая, ну да ладно.
C++
1
2
3
4
5
6
7
Polar GetPolar(const Decart & Point)
{
    Polar polarPolint;
    polarPoint.r = 2 * Point.x;
    polarPoint.f = 2 * Point.y;
    return polarPoint;
}
Добавлено через 37 секунд

Не по теме:

Цитата Сообщение от L.Lawliet Посмотреть сообщение
ну просто я в ооп не разбираюсь
Если честно, до ооп тут ещё как до луны.

0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
13.11.2012, 23:17  [ТС] #7
а обратное ?
получения декартовых координат точки, если заданы ее полярные координаты;
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
13.11.2012, 23:33 #8
Ну попробуй сам сообразить. По-моему, всё очевидно уже.
0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
13.11.2012, 23:38  [ТС] #9
а так правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Polar
{
private:
    double r,f;
public:
    void setpoint(double cr,double cf)
    {
        r=cr;
        f=cf;
    }
    double xpolindec()
    {
        return r*cos(f);
    }
    double ypolindec()
    {
        return r*sin(f);
    }
};
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
13.11.2012, 23:43 #10
Ну уже гораздо лучше. Сам написал?
Я бы перегрузил оператор= для этих классов, т.е.
C++
1
2
3
4
5
6
7
8
class Polar
{
    Polar & operator=(const Decart & Point)
    {
          // тут преобразовали координаты
          return *this;
    }
};
И тогда в коде было что-то типа:
C++
1
2
3
4
Decart point_1;
point_1.setpoint(20,20);
Polar point_2;
point_2 = point_1;
Простенько и хорошо читаемо.
0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
14.11.2012, 00:00  [ТС] #11
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
#include <iostream>
 
using std::cin;
using std::cout;
 
class Decart
{
private:
    double x1,y1,x2,y2;
public:
    void setpoint(double cx1,double cy1,double cx2=0,double cy2=0)
    {
        x1=cx1;
        y1=cy1;
        x2=cx2;
        y2=cy2;
    }
    double Distance()
    {
      return sqrt( (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) );
    }
};
 
class Polar
{
private:
    double r,f,r1,r2;
public:
    void setpoint(double cr,double cf)
    {
        r=cr;
        f=cf;
    }
    double xpolindec()
    {
        return r*cos(f);
    }
    double ypolindec()
    {
        return r*sin(f);
    }
};
 
int main()
{
    double pointx1,pointx2,pointy1,pointy2;
    Decart Dec;
    cout<<"Введите координаты x и y : ";
    cin>>pointx1>>pointy1;
    cout<<"Перевести в полярную систему координат ? 1-да 0-нет";
    int s;
    cin>>s;
    if (s=1)
    {
        Dec.setpoint(pointx1,pointy1);
    }
    cout<<"\nВведите координаты x2 и y2 : ";
    cin>>pointx2>>pointy2;
 
    return 0;
}
вот весь код. который я написал
Я не пойму что от меня хотят в задании?
Нужно ведь как то определить что хочет пользователь 1-перевести координаты из одной сист коорд 2-определить расстояние между точками
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
14.11.2012, 00:06 #12
Хотят от тебя, чтобы ты реализовал функции. Пользователя пока нет никакого.
Не пихай в класс координаты второй точки. Чтобы определить расстояние, используй функцию, которую я тебе раньше писал. Только теперь не забудь определить функции доступа к Х и Y, раз уж спрятал их в private.
0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
14.11.2012, 00:12  [ТС] #13
Я вас непонял

C++
1
2
3
4
double Distance(const Decart & Point1, const Decart & Point2)
{
    return sqrt( (Point1.x - Point2.x) * (Point1.x - Point2.x) + (Point1.y - Point2.y) * (Point1.y - Point2.y) )
}
здесь ведь функция обращается к одному и тому же х и у

Добавлено через 28 секунд
Как я обойдусь без координат второй точки?
0
John Prick
801 / 734 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
14.11.2012, 00:16 #14
Ну как к одному и тому же??
Point1.x - х первой точки
Point2.x - х второй точки

Не по теме:

Если бы это был один и тот же Х, функция всегда возвращала бы 0, а я бы такую чушь никогда бы не написал.

0
L.Lawliet
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
14.11.2012, 00:20  [ТС] #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Decart
{
private:
    double x1,y1,x2,y2;
public:
    void setpoint(double cx1,double cy1,double cx2=0,double cy2=0)
    {
        x1=cx1;
        y1=cy1;
        x2=cx2;
        y2=cy2;
    }
    double Distance(const Decart & Point1, const Decart & Point2)
{
    return sqrt( (Point1.x - Point2.x) * (Point1.x - Point2.x) + (Point1.y - Point2.y) * (Point1.y - Point2.y) )
}
};
вот так ?

Добавлено через 1 минуту
Просто когда я навожу курсор на point1.x и на point2.x показывает типа Decart;;x в обоих случаях
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 00:20
Привет! Вот еще темы с ответами:

Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс - C++
Доброго времени суток! Осваивая UML, решил реализовать отношение двунаправленной ассоциации по диаграмме: У одного владельца...

Преобразования объектов классов в объекты других классов - C++
Задача типа обмен валют. Нужно конвертировать старый фунт стерлинг(фунт, шиллинг и пенсы) в доллары и обратно, по курсу 1 фунт = 50...

Наследование классов. Копирование производных классов - C++
Здравствуйте всем, у меня такой вопрос: написал код #include &quot;stdafx.h&quot; class A //Создаем класс А { int mA; ...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.11.2012, 00:20
Ответ Создать тему
Опции темы

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