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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
natasha_
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 4
12.04.2012, 20:01     Шаблон класса «Комплексное число» #1
Помогите пожалуйста исправить ошибки в программе
Задание :Создать шаблон класса «Комплексное число» – 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();}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2012, 20:01     Шаблон класса «Комплексное число»
Посмотрите здесь:

Структура 'Комплексное число' C++
Класс «Комплексное число» C++
комплексное число C++
Комплексное число C++
Разработка класса "Комплексное число" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sniti01
0 / 0 / 0
Регистрация: 25.10.2012
Сообщений: 50
25.10.2012, 14:14     Шаблон класса «Комплексное число» #2
У меня такое же задание .Сам не могу разобраться. Просьба участников форума, помочь исправить ошибки и если это возможно написать подробные комментарии к программе. Заранее спасибо.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 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) {}
    // тут реализуйте операции
};
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();}
}
Вот немного исправил ошибке в коде и все заработало.
Yandex
Объявления
09.06.2013, 23:13     Шаблон класса «Комплексное число»
Ответ Создать тему
Опции темы

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