Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2012, 21:12   #1
rapman85
 
Регистрация: 25.05.2012
Сообщений: 4
Вопрос Комплексные числа, задача на создание класса и операций для работы с ним

Здравствуйте, вообщем поставлена задача: Реализовать классы и операции для работы с обьектами классов
(Комплексное число задано своим модулем и аргументом). Реализовать:
1)сложение(вычитание)
2)деление
3)умножение
4)возведение в целую степень
5)извлечение корня
Пожалуйста помогите! доработать (проверить на ошибки) имеющиеся наработки по первым трем пунктам, а также разобраться в 4 и 5, что то они вообще никак не получаются...
rapman85 вне форума Ответить с цитированием
Старый 30.05.2012, 21:17   #2
rapman85
 
Регистрация: 25.05.2012
Сообщений: 4
По умолчанию

Собственно вот моя реализация сложения:
#include<stdio.h>
#include<math.h>
#include <time.h>
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<locale.h>
using namespace std;

class complex
{
private:
double r;
double m;
public:
void set (double a, double b);
void print();
complex operator + (complex b);
complex operator - (complex b);
double getr();
double getm();
};
void complex:: print ()

{
cout«"("«r«","«m«")"«endl;
}
void complex::set(double a, double b){

r=a; //r - аргумент
m=b; //m - модуль
}
double complex::getr(){
return r;
}
double complex::getm(){
return m;
}
complex complex:: operator +(complex b){

complex c;
double g,k;
g=cos(r)/m+cos(b.getr())/(b.getm());
g=cos(r)/m+cos(b.getr())/(b.getm());
k=sin(r)/m+sin(b.getr())/(b.getm());
c.set(g,k);
return c;
int main()
{
complex a,b,c;
a.set(1,6);
b.set(0,7);

c=a+b;

c.print ();
}
rapman85 вне форума Ответить с цитированием
Старый 30.05.2012, 21:20   #3
rapman85
 
Регистрация: 25.05.2012
Сообщений: 4
По умолчанию

На вычитание соответсв. вот
complex complex:: operator -(complex b){

complex c;
double g,k;
g=cos(r)*m-cos(b.getr())*(b.getm());
k=sin(r)*m-sin(b.getr())*(b.getm());
c.set(g,k);
return c;
}
.
.
.
.
.
.
c=a-b;
c.print();
rapman85 вне форума Ответить с цитированием
Старый 30.05.2012, 21:26   #4
rapman85
 
Регистрация: 25.05.2012
Сообщений: 4
По умолчанию

Ну и деление:
complex complex:: operator /(complex b){

complex c;
double g,k;
g=(cos(r-b.getr())*(m/b.getm()));
k=(sin(r-b.getr())*(m/b.getm()));
c.set(g,k);
return c;
}
.
.
.
.
.
.
.
c=a/b;
c.print();

Последний раз редактировалось rapman85; 30.05.2012 в 21:29.
rapman85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание класса для работы с дробными числами.Язык Си++. Salatiq Помощь студентам 0 17.05.2012 16:52
переопределение операций (комплексные числа) collider Общие вопросы C/C++ 2 11.04.2012 11:44
С++. Создание класса для работы с реестром Windows Dead Romantic Помощь студентам 0 17.05.2011 16:37
Перегрузка операций для класса дробей Fataller Общие вопросы C/C++ 4 29.05.2010 18:08
С++ перегрузка операций для шаблонного класса TIN Помощь студентам 7 29.03.2009 15:24