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

Написать класс комплексное число; написать перегруженые функции для сравнения чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ базисные циклы в графе. остова найдены! http://www.cyberforum.ru/cpp-beginners/thread876402.html
сделал программу для подсчета остовов в графе, но как реализовать нахождение базисных циклов, я не знаю...уже все перепробывал. вот алгоритм: Сначала строится остов связного графа G=(V,E) с...
C++ Поменять в матрице 1-й столбец со 2-ым, 3-й с 4-м и т.д. Здравствуйте, великие умы!!! Прошу вас помочь мне начинающему "программисту" разобраться в задачке (С++)!!! "Программа должна запрашивать размеры матрицы и самостоятельно заполнять ее с помощью... http://www.cyberforum.ru/cpp-beginners/thread876393.html
C++ Описать процедуру или функцию, которая находит max элемент не пустого списка L
Задание: описать процедуру или функцию, которая находит max элемент не пустого списка L (инф. часть списка содержит real) P.S.: Помогите пожалуйста, заранее благодарю :bravo:
C++ Общий вид интерполированной функции двух переменных
Добрый вечер, киберфорум. Не так давно меня озадачили следующей темой: Билинейная интерполяция функции двух переменных. Сама по себе задача не сложная, если бы делал это я в каком-нибудь маткаде:...
C++ В квадратной матрице найти сумму модулей элементов в строках, содержащих хотя бы один отрицательный элемент; определить номер 1ой строки с 0-ым элем-о http://www.cyberforum.ru/cpp-beginners/thread876366.html
Дана целочисленная квадратная матрица. 1) Найти сумму модулей элементов в строках, содержащих хотя бы один отрицательный элемент. 2) Определить номер первой строки, содержащей нулевой элемент. ...
C++ Найти все вершины графа, к которым существует путь заданной длины от вершины, номер которой вводится с клавиатуры. Помоги написать программу по графам плиз Найти все вершины графа, к которым существует путь заданной длины (не обязательно кратчайший) от вершины, номер которой вводится с клавиатуры. Веса дуг... подробнее

Показать сообщение отдельно
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135

Написать класс комплексное число; написать перегруженые функции для сравнения чисел - C++

23.05.2013, 23:46. Просмотров 415. Ответов 0
Метки (Все метки)

задание такое написать класс комплексное число и и надо написать перегруженые функции для стравнения чисел, вот что вышло
Кликните здесь для просмотра всего текста
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
class Compl;
float max(Compl, Compl);
float max(Compl, int);
float max(Compl, float);
float max(int, int);
float max(int, float);
class Compl
   {
         float real;
         float image;
      public:
         friend class Int;
         Compl():real(0),image(0){};
         Compl(int r):real(r),image(0){};
         Compl(int r, int i):real(r),image(i){};
         Compl(float r):real(r),image(0){};
         Compl(float r,float i):real(r),image(i){};
         friend float max(Compl, Compl);
         friend float max(Compl, int);
         friend float max(Compl, float);
 
         bool operator > (Compl);
         bool operator == (Compl);
         bool operator != (Compl);
 
         bool operator > (int);
         bool operator == (int);
         bool operator > (float);
         bool operator == (float);
   };


Кликните здесь для просмотра всего текста
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
bool Compl::operator > (Compl c)
   {
    if (this->real>c.real || (this->real==c.real && this->image>c.image) ) return true;
    else return false;
   };
bool Compl::operator == (Compl c)
   {
   if (this->real==c.real && this->image==c.image) return true;
   else return false;
   };
bool Compl::operator != (Compl c)
   {
    if (this->real!=c.real || this->image!=c.image) return true;
    else return false;
   };
bool Compl::operator > (int i)
   {
      if (this->real>i || (this->real==i && this->image>i)) return true;
      else return false;
   };
bool Compl::operator == (int i)
   {
      if (this->real==i && this->image==i) return true;
      else return false;
   };
bool Compl::operator > (float f)
   {
      if (this->real>f || (this->real==f && this->image>f)) return true;
      else return false;
   };
bool Compl::operator == (float f)
   {
      if (this->real==f && this->image==f) return true;
      else return false;
   };
 
 
float max(Compl d, Compl d1)
   {
    if (d>d1) return d.real;
    else if (d==d1) return 0;
    else return d1.real;
   }
float max(Compl d, int d1)
   {
    if (d.real>d1) return d.real;
    else if (d==d1) return 0;
    else return d1;
   }
float max(Compl d, float d1)
   {
    if (d.real>d1) return d.real;
    else if (d==d1) return 0;
    else return d1;
   }
float max(int d, int d1)
   {
    if (d>d1) return d;
    else if (d==d1) return 0;
    else return d1;
   }
float max(int d, float d1)
   {
    if (d>d1) return d;
    else if (d==d1) return 0;
    else return d1;
   }


и вот после сравнения вывести результат на экран результат работы функции max()
вот никак не могу додуматься как лутше выводить комлексное число, думал переписать функцию max()(ща max() возвращает float) что бы она возвращала
string или char строку, но что то не получаеться перевести float или int в string или char.
может есть какие то идеи?

Добавлено через 10 минут
up !

Добавлено через 17 минут
up!

Добавлено через 1 час 15 минут
РЕШЕНИЕ НАЙДЕНО :
в с++ builder 6 можно написать так, для других компиляторов не знаю
класс:
Кликните здесь для просмотра всего текста
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
class Compl;
AnsiString max(Compl, Compl);
AnsiString max(Compl, int);
AnsiString max(Compl, float);
AnsiString max(int, int);
AnsiString max(int, float);
 
class Compl
   {
         float real;
         float image;
      public:
         friend class Int;
         Compl():real(0),image(0){};
         Compl(int r):real(r),image(0){};
         Compl(int r, int i):real(r),image(i){};
         Compl(float r):real(r),image(0){};
         Compl(float r,float i):real(r),image(i){};
         float get_r();
         friend AnsiString max(Compl,Compl);
         friend AnsiString max(Compl, int);
         friend AnsiString max(Compl, float);
         bool operator > (Compl);
         bool operator == (Compl);
         bool operator > (int);
         bool operator == (int);
         bool operator > (float);
         bool operator == (float);
   };

Кликните здесь для просмотра всего текста
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
bool Compl::operator > (Compl c)
   {
    if (this->real>c.real || (this->real==c.real && this->image>c.image) ) return true;
    else return false;
   };
bool Compl::operator == (Compl c)
   {
   if (this->real==c.real && this->image==c.image) return true;
   else return false;
   };
 
 
bool Compl::operator > (int i)
   {
      if (this->real>i || (this->real==i && this->image>i)) return true;
      else return false;
   };
bool Compl::operator == (int i)
   {
      if (this->real==i && this->image==i) return true;
      else return false;
   };
bool Compl::operator > (float f)
   {
      if (this->real>f || (this->real==f && this->image>f)) return true;
      else return false;
   };
bool Compl::operator == (float f)
   {
      if (this->real==f && this->image==f) return true;
      else return false;
   };
 
 
AnsiString max(Compl d, Compl d1)
   {
    if (d>d1 ) return FloatToStr(d.real)+"+i"+FloatToStr(d.image);
    else if (d==d1) return "==";
    else return FloatToStr(d1.real)+"+i"+FloatToStr(d1.image);
   }
AnsiString max(Compl d, int d1)
   {
    if (d.real>d1 || (d.real==d1 && d.image>d1)) return FloatToStr(d.real)+"+i"+FloatToStr(d.image);
    else if (d==d1) return "==";
    else return IntToStr(d1);
   }
AnsiString max(Compl d, float d1)
   {
    if (d.real>d1 || (d.real==d1 && d.image>d1)) return FloatToStr(d.real)+"+i"+FloatToStr(d.image);
    else if (d==d1) return "==";
    else return FloatToStr(d1);
   }
AnsiString max(int d, int d1)
   {
    if (d>d1) return FloatToStr(d);
    else if (d==d1) return "==";
    else return FloatToStr(d1);
   }
AnsiString max(int d, float d1)
   {
    if (d>d1) return FloatToStr(d) ;
    else if (d==d1) return "=";
    else return FloatToStr(d1);
   }

может пригодиться кому то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru