Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 4

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

12.04.2012, 20:01. Показов 7813. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2012, 20:01
Ответы с готовыми решениями:

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

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

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

3
0 / 0 / 1
Регистрация: 25.10.2012
Сообщений: 50
25.10.2012, 14:14
У меня такое же задание .Сам не могу разобраться. Просьба участников форума, помочь исправить ошибки и если это возможно написать подробные комментарии к программе. Заранее спасибо.
0
2393 / 1913 / 763
Регистрация: 27.07.2012
Сообщений: 5,559
25.10.2012, 14:30
А не сказано, какую смысловую нагрузку должен нести шаблонный параметр?
Я так полагаю, у вас требуют что-то в духе:
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
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 9
09.06.2013, 23:13
Цитата Сообщение от 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2013, 23:13
Помогаю со студенческими работами здесь

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

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

Шаблон родительского класса и шаблон класса потомка
Запутался, как правильно пронаследоваться от шаблона класса? #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; ...

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru