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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
natasha_
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 4
#1

Шаблон класса «Комплексное число» - C++

12.04.2012, 20:01. Просмотров 1825. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста исправить ошибки в программе
Задание :Создать шаблон класса «Комплексное число» – Complex. Класс должен содержать несколько конструкторов и операции для сложения, вычитания, умножения, деления, присваивания. Создать два вектора размерности n из комплексных координат. Передать их в функцию, которая выполняет сложение комплексных векторов.
Программа:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
using namespace std;
float ve1[3],ve2[3];
//float d;
template <class T>
class complex
{T v;
public:float c,m;
       float vc[3];
       float vm[3];
       float slv1[3];
       float slv2[3];
       float vuc1,vuc2;
       complex(float d,float e)
{
    c=d;
    m=e;
};
complex()
{}
       void vector(float ve1,float ve2,float ve3,float ve4,float ve5,float ve6)
       {
           vc[0]=ve1;
           vc[1]=ve2;
           vc[2]=ve3;
           vm[0]=ve4;
           vm[1]=ve5;
           vm[2]=ve6;
           cout<<"Первый вектор"<<"("<<vc[0]<<"+"<<"("<<vm[0]<<")"<<"i"<<","<<vc[1]<<"+"<<"("<<vm[1]<<")"<<"i"<<","<<vc[2]<<"+"<<"("<<vm[2]<<")"<<"i"<<")"<<"\n";
       }
       void slogvector ( complex <float> X,complex <float>Y)
       {
           slv1[0]=x.vc[0]+Y.vc[0];
           slv1[1]=x.vc[1]+y.vc[1];
           slv1[2]=x.vc[2]+Y.vc[2];
           slv2[0]=x.vm[0]+Y.vm[0];
           slv2[1]=x.vm[1]+Y.vm[1];
           slv2[2]=x.vm[2]+Y.vm[2];
           cout<<"Полученный вектор"<<endl;
           cout<<"Первый символ"<<"("<<slv1[0]<<")"<<slv2[0]<<")"<<"i"<<","<< slv1[1]<<"+"<<slv2[1]<<")"<<"i"<<","<<slv1[2]<<"+"<<"("<<slv2[2]<<")"<<"i"<<")"<<"\n";
       }
       void slog(complex<float> x ,complex <float> Y )
       {
           vuc1=x.c+Y.c;
           vuc2=x.m+Y.m;
           cout<<"Сложение равно"<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
       }
          void vush(complex<float> x ,complex <float> Y )
          {
             
           vuc1=x.c-Y.c;
           vuc2=x.m-Y.m;
           cout<<"Вычитание равно"<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
          }
          void ymnog(complex<float> x ,complex <float> Y )
          {
             vuc1=x.c*Y.c+x.m*Y.m;
             vuc2=x.c*Y.m+x.m*Y.c;
             cout<<"Умножение равно"<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
          }
         void delenie(complex<float> x ,complex <float> Y )
         {
             vuc1=(x.c*Y.c +x.m*Y.m)/(Y.c*Y.c*Y.m*Y.m);
             vuc2=(x.m*Y.c -x.c*Y.m)/(Y.c*Y.c*Y.m*Y.m);
             cout<<"Деление равно"<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
          }
         /*T&operator +=(float i)
         {
         return c+=i;
         }*/
};
void main()
{setlocale (LC_ALL,"Russian");
float dl,mnim,dl1,mnim1; complex <float>Y; float b=0;
cout<<"Введите вещественную часть";cin>>dl;
cout<<"Введите мнимую часть";cin>>mnim;
complex<float> x(dl,mnim);
cout<<"Введите вещественную часть";cin>>dl1;
cout<<"Введите мнимую часть";cin>>mnim1;
complex<float> x1(dl1,mnim1);
x.slog(x,Y);
cout<<endl;
x.vush(x,Y);
cout<<endl;
x.ymnog(x,Y);
cout<<endl;
x.delenie(x,Y);
cout<<endl;
cout<<"Создаем 1 вектор "<<endl;
for(int i=0;i<3;i++)
{
    cout <<i+1<<"вещественную часть"<<endl;cin>>ve1[i];
    cout <<i+1<<"мнимую часть"<<endl;cin>>ve2[i];
    x.vector ( ve1[0],ve1[1],ve1[2],ve2[0],ve2[1],ve2[2]);
    cout<<"Создаем 2 вектор "<<endl;
    for(int i=0;i<3;i++)
    {cout <<i+1<<"вещественную часть"<<endl;cin>>ve1[i];
    cout <<i+1<<"мнимую часть"<<endl;cin>>ve2[i];}
    Y.vector ( ve1[0],ve1[1],ve1[2],ve2[0],ve2[1],ve2[2]);
    x.slogvector(x,Y);
    cin.get();
    cin.get();}
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2012, 20:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шаблон класса «Комплексное число» (C++):

Класс «Комплексное число». Поля класса: действительная и мнимая части - C++
Помогите, описать класс в соответствии с индивидуальным вариантом задания и реализовать все его методы. Каждый класс помимо указанных в...

Определить перегруженный бинарный и унарный оператор* для класса "Комплексное число" - C++
Как можно реализовать перегруженный бинарный и унарный оператор* для класса &quot;Комплексное число&quot;?

Определение класса, описывающего комплексное число. Перегрузка для него бинарного оператора "*" - C++
1. Определить класс, описывающий комплексное число. Для класса перегрузить бинарный оператор *. Написать программу, в которой используется...

Разработка класса "Комплексное число" - C++
помогите решить задание,вот оно: Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели...

Построить шаблон класса - некое число - C++
Построить шаблон класса - &quot;некое&quot; число. Объявить переменную типа класс. Присвоить числовое значение переменной. Help :/

Шаблоны функций, Ошибка: для использования класса шаблон требуется список аргументов шаблон - C++
Есть у меня 3 структуры Трамвай , Троллейбус , Автобус. Для автобуса определены функции (работают) Троллейбус и Трамвай одинаковые поля...

3
Sniti01
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 50
25.10.2012, 14:14 #2
У меня такое же задание .Сам не могу разобраться. Просьба участников форума, помочь исправить ошибки и если это возможно написать подробные комментарии к программе. Заранее спасибо.
0
John Prick
821 / 754 / 152
Регистрация: 27.07.2012
Сообщений: 2,147
Завершенные тесты: 3
25.10.2012, 14:30 #3
А не сказано, какую смысловую нагрузку должен нести шаблонный параметр?
Я так полагаю, у вас требуют что-то в духе:
C++
1
2
3
4
5
6
7
8
9
template <class T>
class Complex
{
    T real_, imagimary_;
public:
    Complex(void) : real_(0), imaginary(0) {}
    Complex(T real, T imaginary) : real_(real), imaginary_(imaginary) {}
    // тут реализуйте операции
};
0
Tigao
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 9
09.06.2013, 23:13 #4
Цитата Сообщение от natasha_ Посмотреть сообщение
Помогите пожалуйста исправить ошибки в программе
Задание :Создать шаблон класса «Комплексное число» – Complex. Класс должен содержать несколько конструкторов и операции для сложения, вычитания, умножения, деления, присваивания. Создать два вектора размерности n из комплексных координат. Передать их в функцию, которая выполняет сложение комплексных векторов.
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
 
using namespace std;
float ve1[3],ve2[3];
template <class T>
class complex
{T v;
public:float c,m;
       float vc[3];
       float vm[3];
       float slv1[3];
       float slv2[3];
       float vuc1,vuc2;
       complex(float d,float e)
{
    c=d;
    m=e;
};
complex()
{}
       void vector(float ve1,float ve2,float ve3,float ve4,float ve5,float ve6)
       {
           vc[0]=ve1;
           vc[1]=ve2;
           vc[2]=ve3;
           vm[0]=ve4;
           vm[1]=ve5;
           vm[2]=ve6;
           cout<<"Вектор: "<<"("<<vc[0]<<"+"<<"("<<vm[0]<<")"<<"i"<<","<<vc[1]<<"+"<<"("<<vm[1]<<")"<<"i"<<","<<vc[2]<<"+"<<"("<<vm[2]<<")"<<"i"<<")"<<"\n";
       }
       void slogvector ( complex <float> x,complex <float>Y)
       {
           slv1[0]=x.vc[0]+Y.vc[0];
           slv1[1]=x.vc[1]+Y.vc[1];
           slv1[2]=x.vc[2]+Y.vc[2];
           slv2[0]=x.vm[0]+Y.vm[0];
           slv2[1]=x.vm[1]+Y.vm[1];
           slv2[2]=x.vm[2]+Y.vm[2];
           cout<<"Полученный вектор: "<<endl;
           cout<<"Первый символ: "<<"("<<slv1[0]<<")"<<slv2[0]<<")"<<"i"<<","<< slv1[1]<<"+"<<slv2[1]<<")"<<"i"<<","<<slv1[2]<<"+"<<"("<<slv2[2]<<")"<<"i"<<")"<<"\n";
       }
       void slog(complex<float> x ,complex <float> Y )
       {
           vuc1=x.c+Y.c;
           vuc2=x.m+Y.m;
           cout<<"Сложение равно: "<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
       }
          void vush(complex<float> x ,complex <float> Y )
          {
             
           vuc1=x.c-Y.c;
           vuc2=x.m-Y.m;
           cout<<"Вычитание равно: "<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
          }
          void ymnog(complex<float> x ,complex <float> Y )
          {
             vuc1=x.c*Y.c+x.m*Y.m;
             vuc2=x.c*Y.m+x.m*Y.c;
             cout<<"Умножение равно: "<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
          }
         void delenie(complex<float> x ,complex <float> Y )
         {
             vuc1=(x.c*Y.c +x.m*Y.m)/(Y.c*Y.c*Y.m*Y.m);
             vuc2=(x.m*Y.c -x.c*Y.m)/(Y.c*Y.c*Y.m*Y.m);
             cout<<"Деление равно: "<<vuc1<<"+"<<"("<<vuc2<<")"<<"i"<<"\n";
          }
};
void main()
{setlocale (LC_ALL,"Russian");
float dl,mnim,dl1,mnim1; complex <float> Y; float b=0;
cout<<"Введите вещественную часть: ";cin>>dl;
cout<<"Введите мнимую часть: ";cin>>mnim;
cout << endl;
complex<float> x(dl,mnim);
cout<<"Введите вещественную часть: ";cin>>dl1;
cout<<"Введите мнимую часть: ";cin>>mnim1;
cout << endl;
complex<float> x1(dl1,mnim1);
x.slog(x,Y);
cout<<endl;
x.vush(x,Y);
cout<<endl;
x.ymnog(x,Y);
cout<<endl;
x.delenie(x,Y);
cout<<endl;
cout<<"Создаем 1 вектор:  "<<endl;
for(int i=0;i<3;i++)
{
    cout <<i+1<<"вещественную часть: "<<endl;cin>>ve1[i];
    cout <<i+1<<"мнимую часть: "<<endl;cin>>ve2[i];
    x.vector ( ve1[0],ve1[1],ve1[2],ve2[0],ve2[1],ve2[2]);
    cout<<"Создаем 2 вектор: "<<endl;
    for(int i=0;i<3;i++)
    {cout <<i+1<<"вещественную часть: "<<endl;cin>>ve1[i];
    cout <<i+1<<"мнимую часть: "<<endl;cin>>ve2[i];}
    Y.vector ( ve1[0],ve1[1],ve1[2],ve2[0],ve2[1],ve2[2]);
    x.slogvector(x,Y);
    cin.get();
    cin.get();}
}
Вот немного исправил ошибке в коде и все заработало.
1
09.06.2013, 23:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 23:13
Привет! Вот еще темы с ответами:

комплексное число - C++
Разработать класс комплексное число. Реализовать его методы. как это сделать на с++ Добавлено через 29 минут если даже его создам...

Комплексное число - C++
Комплексное число - Complex. Класс должен содержать несколько конструкторов. Реализовать методы для сложения, вычитания, умножения,...

Шаблон класса, параметром которого должны являться наследники определённого класса - C++
Сразу извиняюсь за нубский вопрос. Суть в том, что я хочу сделать шаблон класса, параметром которого должны являтся наследники...

Класс «Комплексное число» - C++
Разработать консольную программу на языке С++, в которой описывается и используется класс. Требования к оформлению класса те же, что и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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