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

Работа с функциями в классе комплексных чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Builder C++ Builder реестр и DLL http://www.cyberforum.ru/cpp-beginners/thread1311052.html
Задание такое: Дополнить программу из лабораторной работы с динамическим подключением DLL следующими действиями: при первом запуске программа регистрирует в реестре свою DLL, создавая параметр, содержащий с путь к библиотеке. При последующих запусках она ищет в реестре этот параметр, и считывает оттуда путь к библиотеке. Таким образом, EXE-файл можно запускать из любого каталога. #include <vcl.h>...
C++ Builder Растягивающаяся Panel на форме Подскажите, как можно раздвигать панель с помощью захвата, не меняя положение формы? Есть идеи, что нужно отследить зажатие кнопок, но вот как, догадаться не могу :( Пример ниже http://www.cyberforum.ru/cpp-beginners/thread1310988.html
Умное сравнение списков C++ Builder
Доброго времени суток. Задача у меня такова - сравнить два списка и заменить файл на диске имеем списки "Не рабочие" 1_0_1_399_9_FFFF_1682E68_0_0_0.png 1_0_1_39A_9_FFFF_1682E68_0_0_0.png 1_0_1_3AFD_F_70_1680000_0_0_0.png 1_0_1_3AFE_F_70_1680000_0_0_0.png
С++ md5 хеш из signed char * C++ Builder
Как получить MD5 хеш из signed char * Подскажите пожалуйста :)
C++ Builder Не работает критическая секция http://www.cyberforum.ru/cpp-beginners/thread1310899.html
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
C++ Builder Нереальное зависание формы во время отправки email При нажатии на кнопку, форма начинает висеть и спустя минут 5 так же ничего не происходит: IdSMTP1->Host = "smtp.yandex.ru"; IdSMTP1->Port = 465; IdSMTP1->Username = "*****"; IdSMTP1->Password = "****";; IdSMTP1->UseTLS = utUseExplicitTLS; IdSMTP1->ReadTimeout = 15000; IdSMTP1->Connect(); if(IdSMTP1->Connected()) подробнее

Показать сообщение отдельно
Raisa17
0 / 0 / 0
Регистрация: 25.11.2014
Сообщений: 20
02.01.2015, 12:20  [ТС]     Работа с функциями в классе комплексных чисел
Помогите пожалуйста в написании функции умножения (mul) и деления (div) для комплексных чисел. они Прописаны, но все равно работают не правильно.
В программе для комплексного числа х1=а1+b1i : a1- this->C.a, b2- this->C.b или C.a и C.b;
а для х2=а2+b2i : a1- ob1.C.a, b2- ob1.C.b

Тип данных задается классом. Член-данные класса - одна частная переменная структурного типа, члены-функции класса - открытые неоператорные функции init(), input(), output(), toPChar() и функции доступа setStruct(), getStruct() или setVar(), getVar().

5. Комплексное число задается парой действительных чисел (a, b), где a - действительная часть, b - мнимая часть. Реализовать тип TComplex для работы с комплексными числами. Обязательно наличие функций:
сложение add(), (a, b) + (c, d);
вычитание sub(), (a, b) - (c, d);
умножение mul(), (a, b) * (c, d);
деление div(), (a, b) / (c, d);
сравнение equ(), (a, b) = (c, d);
сопряженное число conj(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
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include "stdafx.h"
#include <iostream>
using namespace std;
 
struct TComplex
{
  float a,b;
};
class TTComplex
{
protected:
    TComplex C;
public:
    TTComplex add(const TTComplex&);
    TTComplex sub(const TTComplex&);
    TTComplex mul(const TTComplex&);
    TTComplex div(const TTComplex&);
    bool equ(const TTComplex&);
    TTComplex conj();
    void init(float,float);
    void input();
    void output();
    char* toPChar();
    friend ostream& operator<<(ostream& os,TTComplex& ob);
    void setStruct(TComplex _c);
    TComplex getStruct();
    };
void TTComplex::setStruct(TComplex _c)
{ C=_c;
}
TComplex TTComplex::getStruct()
{ return C;
 }
 
void TTComplex::init(float _a,float _b)
{
    C.a=_a;
    C.b=_b;
}
void TTComplex::input()
{
    float _a,_b;
    cout<<"Введите целую часть (a):"<<endl;
    cin>>_a;
    cout<<"Введите вещественную часть (b):"<<endl;
    cin>>_b;
    this->init(_a,_b);
}
void TTComplex::output()
{
    cout<<""<<C.a<<"+"<<C.b<<"i"<<endl;
}
TTComplex TTComplex::add(const TTComplex& ob1)
{
    TTComplex res;
    float _a,_b;
    _a=ob1.C.a+C.a;
    _b=ob1.C.b+C.b;
    res.init(_a,_b);
    return res;
}
TTComplex TTComplex::sub(const TTComplex& ob1)
{
    TTComplex res;
    float _a,_b;
    _a=ob1.C.a-C.a;
    _b=ob1.C.b-C.b;
    res.init(_a,_b);
    return res;
}
TTComplex TTComplex::mul(const TTComplex& ob1)
{
    TTComplex res;
    float _a,_b;
    _a=(this->C.a*ob1.C.a-this->C.b*ob1.C.b);
    _b=(this->C.a*ob1.C.b+this->C.a*ob1.C.a);
    res.init(_a,_b);
    return res;
}
TTComplex TTComplex::div(const TTComplex& ob)
{
    TTComplex res;
    float _a,_b;
    _a=((this->C.a*ob1.C.a+this->C.b*ob1.C.b)/(ob1.C.a*ob1.C.a+ob1.C.b*ob1.C.b));
    _b=((this->C.b*ob1.C.a-this->C.a*ob1.C.b)/(ob1.C.a*ob1.C.a+ob1.C.b*ob1.C.b));
    res.init(_a,_b);
    return res;
}
bool TTComplex::equ(const TTComplex& ob1)
{
    if((C.a==ob1.C.a)&&(C.b=ob1.C.b)) return 1;
    return 0;
}
TTComplex TTComplex::conj()
{
    TTComplex res;
    float _b=-C.b;
    float _a=C.a;
    res.init(_a,_b);
    return res;
}
 
int main()
{  setlocale(LC_ALL, "Russian"); 
    TTComplex ob1,ob2,res;
    ob1.input();
    ob2.input();
    cout<<"Сложение: "<<endl;
    res=ob1.add(ob2);
    res.output();
    cout<<"-----------------"<<endl;
    cout<<"Вычитание "<<endl;
    res=ob1.sub(ob2);
    res.output();
    cout<<"-----------------"<<endl;
    cout<<"Умножение: "<<endl;
    res=ob1.mul(ob2);
    res.output();
    cout<<"-----------------"<<endl;
    cout<<"Деление: "<<endl;
    res=ob1.div(ob2);
    res.output();
    cout<<"-----------------"<<endl;
    cout<<"Сравнение: "<<ob1.equ(ob2)<<endl;
    cout<<"-----------------"<<endl;
    cout<<"Сопряженная:"<<endl;
    res=ob1.conj();
    res.output();
    cout<<"-----------------"<<endl;
    
    TComplex d;
    cout<<"setStruct"<<endl;
    cout<<"a";
    cin>>d.a;
    cout<<"b";
    cin>>d.b;
    ob1.setStruct(d);
    cout<<"getStruct"<<endl;
    
    d=ob1.getStruct();
    cout<<d.a<<" +"<<d.b<<"i"<<endl;
 
system("pause");
return 0;
}
 
Текущее время: 15:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru