![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Любаша |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Определить класс “комплексное число”, предусмотрев в нем функции “получения мнимой части”, “получение действительной части”, “вывод всего комплексного числа”. Определить дружественную операцию-функцию, перегружающую операцию “-” (вычитание) для объектов класса “комплекс-ное число”. Предусмотреть возможность вычитания действительное и комплексное, комплексное и комплексное, комплексное и действительное числа.
|
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
а вопрос собственно в чём? в изучении C++ ?
да, для решения задачи C++ изучать надо. совсем немного, но надо. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Любаша |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Предусмотреть возможность вычитания действительное и комплексное, комплексное и действительное числа. Не могу сделать две эти операции.
|
|||
|
||||
| Любаша |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Помогите пожалуйста описать опирации вычитания действительное и комплексное, комплексное и действительное числа
|
|||
|
||||
| SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Держи, Любаша:
Если хочешь, чтобы к твоему коду полностью подходило, то выкладывай его. Я ж не вижу, как у тебя класс complex определен. -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
| Любаша |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Вот код программы:
#include <iostream.h> #include <conio.h> #include <stdlib.h> #include <stdio.h> class komplex { public: float komp[4]; komplex operator-(komplex); komplex operator=(komplex); void otvet(int); int menu(void); void vvod(void); void isx(int); }; void komplex::vvod() { clrscr(); cout <<"Vvedite A i B dly vyrageniy A+Bi\n"; cin >> komp[1]>>komp[2]; } komplex komplex::operator=(komplex t) { komp[1]=t.komp[1]; komp[2]=t.komp[2]; return *this; } void komplex::otvet(int i) { char *str; switch(i) { case 1: str="Resultat vychitaniy"; break; case 2: str="Resultat vychitaniy"; break; case 3: str="Resultat vychitaniy"; break; Default: break; } if (komp[2]>=0) printf("%s: (%3.2f+%3.2fi)\n",str,komp[1],komp[2]); else printf("%s: (%3.2f%3.2fi)\n",str,komp[1],komp[2]); cout<<"\n\n\nPress any key..."; getch(); clrscr(); } komplex komplex::operator-(komplex t) { komplex temp; temp.komp[1]=komp[1]-t.komp[1]; temp.komp[2]=komp[2]-t.komp[2]; return temp; } int komplex::menu(void) { int vy; clrscr(); cout<<"Glavnoe menu\n"; cout<<"=====================\n"; cout<<"1 - Ra3noct dectvit-compl\n"; cout<<"2 - Vychitanie cobpl 4icel\n"; cout<<"3 - Ra3noct compl-dectvit\n"; cout<<"4 - Vvod dannyx\n"; cout<<"0 - Exit\n"; cout<<"\nVash vybor: ";cin>>vy; return vy; } void komplex::isx(int i) { if (i==1) clrscr(); if (komp[2]>=0) printf("%d chislo: (%3.2f+%3.2fi)\n",i,komp[1],komp[2]); else printf("%d chislo: (%3.2f%3.2fi)\n",i,komp[1],komp[2]); } main() { komplex a,b,c; int vyb; clrscr(); a.vvod(); b.vvod(); do { vyb=a.menu(); switch(vyb) { case 2: c=a-b;a.isx(1);b.isx(2);c.otvet(2);break; case 4: a.vvod();b.vvod();break; Default: break; } } while (vyb!=0); } |
|||
|
||||
| Любаша |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Подскажите пожалуйста как теперь в мой код добавить две операции.
|
|||
|
||||
| SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Любаша,
Очень уж у тебя код неправильный. Каждый класс должен отражать одно конкретное понятие и решать одну конкретную задачу. Ничего лишнего в нем быть не должно. Если описываешь класс комплексного числа, то в нем должны быть: конструкторы, два внутренних поля для действительной и мнимой части, описания операций с комплексными числами. И все. Обработка ввода пользователя явно не относится к комплексному числу. Она относится к конкретной программе. Вот как примерно должен выглядеть класс для комплексного числа:
Делай так. Твой вариант преподу вряд ли понравится. Найди книжку какую-нибудь. Во многих из них как раз с комплексного числа начинают. Это сообщение отредактировал(а) SaDFromSpb - 10.12.2006, 11:54 -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
| zabivator |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Любаша, ты извини, но меня чуть кондрашка не хватила, когда я твой код увидел. Не вздумай такое преподу показывать - прибьет на месте.
SaDFromSpb, правильно написал, ога. Чуть-чуть поправлю:
лучше так:
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
||||
|
|||||
| SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
-------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |