
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.11.2006, 22:07
|
|||
|---|---|---|---|
|
|||
Помогите, пожалуйста, реализовать класс |
|||
|
#18+
Милые, добрые люди, помогите пожалуйста бедной девушке решить такую задачу! Определите класс дробей - рациональных чисел, являющихся отношением двух целых чисел. Напишите методы для сложения, вычитания, умножения и деления дробей. Как вы приводите дробь к наименьшему знаменателю.Алгоритм Эвклида. Класс реализован на языке C++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.11.2006, 23:28
|
|||
|---|---|---|---|
Помогите, пожалуйста, реализовать класс |
|||
|
#18+
Вам сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.11.2006, 09:51
|
|||
|---|---|---|---|
Помогите, пожалуйста, реализовать класс |
|||
|
#18+
В чем возникли трудности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.11.2006, 10:19
|
|||
|---|---|---|---|
Помогите, пожалуйста, реализовать класс |
|||
|
#18+
Да. Зачет надо сдавать! Зачем приводить к общему знаменателю? Делаешь сложение или вычитание, а потом выполняешь сокращение. Примерную реализацию нарисовал. Недостающее допишешь сама. mathematics.h //--------------------------------------------------------------------------- #ifndef mathematicsH #define mathematicsH //--------------------------------------------------------------------------- int max(int x, int y); int min( int x, int y) ; class fraction { public: int numerator; //числитель int denominator; //знаменатель public: fraction( int iWhole, int iNumerator, int iDenominator); fraction( int iNumerator, int iDenominator); fraction( int iNumerator); fraction( ); fraction( const fraction& ss); ~fraction( ){}; fraction operator +( fraction& rhs); fraction operator -( fraction& rhs); void operator +=( fraction& rhs); void operator *=( fraction& rhs); void operator *=( int *i); void cancellation();//сокращает дробь. можно перенести в private }; #endif mathematics.cpp //--------------------------------------------------------------------------- #pragma hdrstop #include <math.h> #include "mathematics.h" //--------------------------------------------------------------------------- #pragma package(smart_init) int max(int x, int y) { return (x > y) ? x : y; } int min( int x, int y) { return (x < y) ? x : y; } fraction::fraction( int iWhole, int iNumerator, int iDenominator) { numerator = iNumerator + iWhole * iDenominator; denominator = iDenominator; } fraction::fraction( int iNumerator, int iDenominator) { numerator = iNumerator; denominator = iDenominator; } fraction::fraction( int iNumerator) { numerator = iNumerator; denominator = 1; } fraction::fraction( ) { numerator = 1; denominator = 1; } fraction::fraction( const fraction&ss) { numerator = ss.numerator; denominator = ss.denominator; } fraction fraction::operator +( fraction& rhs) { fraction dd; dd.numerator = numerator * rhs.denominator + denominator * rhs.numerator; dd.denominator = denominator * rhs.denominator; return dd; } fraction fraction::operator -( fraction& rhs) { fraction dd; dd.numerator = numerator * rhs.denominator - denominator * rhs.numerator; dd.denominator = denominator * rhs.denominator; return dd; } void fraction::operator +=( fraction& rhs) { numerator = numerator * rhs.denominator + denominator * rhs.numerator; denominator = denominator * rhs.denominator; return ; } void fraction::operator *=( fraction& rhs) { numerator *= rhs.numerator; denominator *= rhs.denominator; return ; } void fraction::operator *=( int *i) { numerator *= *i; denominator *= *(i+1); return ; } void fraction::cancellation( ) { int N; bool bReturn; do { N = min( abs( numerator), abs( denominator)); int num = numerator; int den = denominator; bReturn = false; for( int i = N; i>1; i--) { num = (numerator / i) * i; den = (denominator / i) * i; if( ( (numerator / i) * i == numerator) && ( (denominator / i) * i == denominator)) { numerator /= i; denominator /= i; bReturn = true; break; } } } while( bReturn); return ; } //примеры вызова //--------------------------------------------------------------------------- void __fastcall TfrmMain::FormCreate(TObject *Sender) { fraction aa (12,18); fraction ae (3,2,3); fraction *ab = new fraction(5,6); fraction cc = aa + ae; int ar[2] = {2,3}; cc *= ar; aa.cancellation(); fraction dd(aa); fraction ww = *ab; } //--------------------------------------------------------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2030100]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 527ms |

| 0 / 0 |
