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

Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
lna
7 / 1 / 1
Регистрация: 01.10.2012
Сообщений: 86
13.03.2014, 19:18     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #1
Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами. Напишите программу драйвера для проверки вашего класса. Комплексные числа имеют форму realPart + imaginaryPart * j , где j – квадратный корень из (-1).
Используйте переменные с плавающей запятой для представления закрытых данных этого класса. Создайте функцию конструктор, которая позволяет объекту этого класса принимать начальные значения при его объявлении. Создайте открытые функции-элементы для каждого из следующих пунктов:
a) сложения двух комплексных чисел: отдельно складываются действительные и мнимые части;
б) вычитания двух комплексных чисел: действительная часть правого операнда вычитается из действительной части левого операнда, а мнимая часть правого операнда вычитается из мнимой части левого операнда;
в) печати комплексных чисел в форме (a, b), где a – действительная часть,
b –мнимая часть.
В Общем программу написал, складывает-вычитает, но преподаватель требует в нее добавить класс комплексных чисел, не знаю как

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>
#include <conio.h>
#include <locale>
 
class Complex
{ float realPart, imaginaryPart, realPart2, imaginaryPart2, a, b, a2, b2; // описание класса Complex
int j;
public:
Complex(); // конструктор
void show();
void input();
void summ();
void minus();
};
Complex :: Complex() // определение конструктора
{ std::cout « "В конструкторе \n";
realPart = 0;
imaginaryPart = 0;
realPart2 = 0;
imaginaryPart2 = 0;
}
void Complex :: input() // описание функции input
{
std::cout « "Введите действительную часть 1го комплекстного числа\n";
std::cin » realPart;
std::cout « "Введите мнимую часть 1го комплексного числа \n";
std::cin » imaginaryPart;
std::cout « "Введите действительную часть 1го комплекстного числа\n";
std::cin » realPart2;
std::cout « "Введите мнимую часть 2го комплексного числа \n";
std::cin » imaginaryPart2;
}
void Complex :: summ()
{
a=realPart + realPart2;
b=imaginaryPart + imaginaryPart2;
 
}
void Complex :: minus()
{
a2=realPart - realPart2;
b2=imaginaryPart - imaginaryPart2;
}
void Complex :: show()
{
printf_s("(%.3f+%.3f*j)+(%.3f+%.3f*j)=%.3f + (%.3f*j)\n", realPart, imaginaryPart, realPart2, imaginaryPart2, a, b);
printf_s("(%.3f+%.3f*j)-(%.3f+%.3f*j)=%.3f + (%.3f*j)\n", realPart, imaginaryPart, realPart2, imaginaryPart2, a2, b2);
printf_s("\n");
printf_s("ответ при сложении:( %.3f , (%.3f*j) )\n",a, b);
printf_s("ответ при вычитании:( %.3f , (%.3f*j) )\n",a2, b2);
}
void main()
{
setlocale(LC_ALL, "Russian");
Complex ob;
ob.input();
ob.summ();
ob.minus();
ob.show();
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 19:18     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами
Посмотрите здесь:

C++ Программа выполнения арифметических действий с очень большим целыми числами
Создать класс с именем Rational для выполнения арифметических действий с дробями C++
C++ Класс Complex для работы с комплексными числами
C++ Реализовать класс Complex для работы с комплексными числами
C++ С++ класс (создайте класс с именем Complex для выполнения в арифмитических операий с комплексными числами))
C++ Создайте класс с именем Rational для выполнения действий с дробями
C++ c++ создать класс complex для работы с комплексными числами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
13.03.2014, 19:49     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #2
Интересно,
Цитата Сообщение от lna Посмотреть сообщение
class Complex
а это что?

Добавлено через 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
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
#include <iostream>
#include <conio.h>
#include <locale>
 
class Complex
{ 
private:
    float realPart, imaginaryPart; // описание класса Complex
    int j;
public:
Complex(); // конструктор
Complex(float real_part,float im_part); // конструктор
Complex operator + (Complex) const;
Complex operator - (Complex ) const;
 
float getReal(){return realPart;};
float getIm(){return imaginaryPart;};
void show();
void input();
 
};
Complex Complex::operator+ (Complex d) const
{
    return Complex(realPart+d.getReal(), imaginaryPart+d.getIm()); 
}
Complex Complex::operator- (Complex d) const
{
    return Complex(realPart-d.getReal(), imaginaryPart-d.getIm()); 
}
Complex :: Complex() // определение конструктора
{ 
    realPart = 0;
    imaginaryPart = 0;
}
 
Complex :: Complex(float real_part,float im_part) // определение конструктора
{ 
    realPart =  real_part;
    imaginaryPart = im_part;
}
 
void Complex :: input() // описание функции input
{
std::cout <<"Введите действительную часть комплекстного числа\n";
std::cin>> realPart;
std::cout <<"Введите мнимую часть комплексного числа \n";
std::cin>> imaginaryPart;
}
 
void Complex :: show()
{
printf_s("(%.3f+%.3f*j)\n", realPart, imaginaryPart);
}
int main()
{
setlocale(LC_ALL, "Russian");
Complex a,b,c,d;
a.input();
b.input();
c=a+b;
d=a-b;
c.show();
d.show();
getch();
return 0;
}
lna
7 / 1 / 1
Регистрация: 01.10.2012
Сообщений: 86
27.03.2014, 18:06  [ТС]     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #3
Цитата Сообщение от mustimur Посмотреть сообщение
Complex(); // конструктор Complex(float real_part,float im_part); // конструктор
для чего два класса? возможно обойтись одним?
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
27.03.2014, 18:19     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #4
Цитата Сообщение от lna Посмотреть сообщение
для чего два класса? возможно обойтись одним?
Это не 2 класса, а два конструктора 1го класса:
1. конструктор по-умолчанию...
2. конструктор с параметрами..
lna
7 / 1 / 1
Регистрация: 01.10.2012
Сообщений: 86
27.03.2014, 19:06  [ТС]     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #5
Цитата Сообщение от mustimur Посмотреть сообщение
Это не 2 класса, а два конструктора 1го класса:
1. конструктор по-умолчанию...
2. конструктор с параметрами.
да. с формулировкой ошибся.

а возможно использовать один конструктор?
или же не получится и придется всю программу переписывать
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
27.03.2014, 19:20     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #6
Цитата Сообщение от lna Посмотреть сообщение
а возможно использовать один конструктор?
В том коде он один используется, второй про запас (это так называемая перегрузка), чтобы переменные можно было объявлять так:
C++
1
Complex a(5,6);///a=5+6*i
Как-то так... А вот это
Цитата Сообщение от lna Посмотреть сообщение
или же не получится и придется всю программу переписывать
ЗАЧЕМ???!!!
lna
7 / 1 / 1
Регистрация: 01.10.2012
Сообщений: 86
27.03.2014, 20:26  [ТС]     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #7
Цитата Сообщение от mustimur Посмотреть сообщение
ЗАЧЕМ???!!!
просто был такой вопрос от преподавателя..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 20:31     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами
Еще ссылки по теме:

C++ Реализовать класс Complex для работы с комплексными числами.
Класс для выполнения арифметических операций над числами с учётом абсолютной и относительной погрешностей C++
Разработать класс Complex для работы с комплексными числами C++
Написать программу для выполнения простейших арифметических действий C++
Как заполнить массив комплексными числами, не используя стандартный класс std::complex<double>? C++

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

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
27.03.2014, 20:31     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами #8
Цитата Сообщение от lna Посмотреть сообщение
просто был такой вопрос от преподавателя..
На ГОП-СТОП Вас поймали похоже
Yandex
Объявления
27.03.2014, 20:31     Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами
Ответ Создать тему
Опции темы

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