Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 10:26   #1
adlansuliman
 
Регистрация: 06.05.2013
Сообщений: 5
По умолчанию Переписать код на язык C#

Помогите переписать код в С++ на язык С#. Если есть ошибки, помогите исправить. Вот само задание: составить описание класса для работы с рациональными числами. Обеспечить выполнение арифметических операций над ними.
P.S. Должны быть класс, методы.
Вот сам код
Код:
#include<iostream.h>

#include<conio.h>

#include <math.h>

class rational {

private:

int chisl;

int znam;

public:

friend ostream &operator << (ostream& o,rational x);

rational (int c=1, int b=1) {chisl=c; znam=b;}

rational operator+ (rational &x);

rational operator- (rational &x);

rational operator* (rational &x);

rational operator/ (rational &x); };

//перегруженный оператор сложения рациональных дробей

rational rational::operator+(rational &x)

{ int delitel,crav,i,j; rational y;

y.chisl=chisl*x.znam+znam*x.chisl; y.znam=znam*x.znam;

if (y.chisl!=0)

{ j=0;int f=0; if (y.chisl<0) {f=1;y.chisl=abs(y.chisl);}

if ((y.chisl%y.znam)==0) j=1;

else

{ if ((abs(y.chisl))>(abs(y.znam))) crav=y.znam ;else crav=y.chisl;

delitel=1;

for(i=2;i<=crav;i++)

{ if ( (((abs(y.chisl))%i)==0)&&(((abs(y.znam))%i)==0) )

{ if (i>delitel) delitel=i;} }

if (delitel>=2) {y.znam=y.znam/delitel;y.chisl=y.chisl/delitel;

if (f==1) y.chisl*=-1;

}

} }

return y; }

// перегруженный оператор вычитания рациональных дробей

rational rational::operator-(rational &x)

{ rational y; int delitel,crav,i,j;

y.chisl=chisl*x.znam-znam*x.chisl;y.znam=znam*x.znam;

if (y.chisl!=0)

{ j=0;int f=0; if (y.chisl<0) {f=1;y.chisl=abs(y.chisl);}

if ((y.chisl%y.znam)==0) j=1;



else

{ if ((abs(y.chisl))>(abs(y.znam))) crav=y.znam ;else crav=y.chisl;

delitel=1;

for(i=2;i<=crav;i++)

{ if ( (((abs(y.chisl))%i)==0)&&(((abs(y.znam))%i)==0) )

{ if (i>delitel) delitel=i;} }

if (delitel>=2) {y.znam=y.znam/delitel;y.chisl=y.chisl/delitel;

if (f==1) y.chisl*=-1;

}

} }

return y;}

// перегруженный оператор умножения рациональных дробей

rational rational::operator*(rational &x)

{rational y; int delitel,crav,i,j

y.chisl=chisl*x.chisl; y.znam=znam*x.znam;

if (y.chisl!=0)

{ j=0;int f=0; if (y.chisl<0) {f=1;y.chisl=abs(y.chisl);}

if ((y.chisl%y.znam)==0) j=1;

else

{ if ((abs(y.chisl))>(abs(y.znam))) crav=y.znam ;else crav=y.chisl;

delitel=1;

for(i=2;i<=crav;i++)

{ if ( (((abs(y.chisl))%i)==0)&&(((abs(y.znam))%i)==0) )

{ if (i>delitel) delitel=i;} }

if (delitel>=2) {y.znam=y.znam/delitel;y.chisl=y.chisl/delitel;

if (f==1) y.chisl*=-1;

}

} }

return y;}

// перегруженный оператор деления рациональных дробей

rational rational::operator/(rational &x)

{ rational y; int delitel,crav,i,j

y.chisl=chisl*x.znam; y.znam=znam*x.chisl;

if (y.chisl!=0)

{ j=0;int f=0; if (y.chisl<0) {f=1;y.chisl=abs(y.chisl);}

if ((y.chisl%y.znam)!=0)

{ if ((abs(y.chisl))>(abs(y.znam))) crav=y.znam ;else crav=y.chisl;

delitel=1;

for(i=2;i<=crav;i++)

{ if ( (((abs(y.chisl))%i)==0)&&(((abs(y.znam))%i)==0) )

{ if (i>delitel) delitel=i;} }

if (delitel>=2) {y.znam=y.znam/delitel;y.chisl=y.chisl/delitel;

if (f==1) y.chisl*=-1;

}

} }

return y;}

// перегруженный оператор вывода рациональных дробей

ostream &operator << (ostream& o,rational x)

{

if (x.chisl!=0) { if ((x.chisl%x.znam)==0) o<<x.chisl/x.znam;

else o<<x.chisl<<'/'<<x.znam; }

else o<<x.chisl;



return o;

}

main()

{ int a,b;

for(;;)

{

cout<<"vvedite chislitel' u 3namenatel' pervou drobi: ";

cin>> a>>b;

if( b==0) cout<<"vvedite drob' s ne nylevim znamenatelem\n";

else break;

}

rational D1(a,b);

for(;;)

{

cout<<"vvedite chislitel' u 3namenatel' vtoroi drobi: ";

cin>> a>>b;

if( b==0) cout<<"vvedite drob' s ne nylevim znamenatelem\n";

else break;

}

rational D2 (a,b);

for(;;)

{

cout<<"vvedite chislitel' u 3namenatel' 3-ei drobi: ";

cin>> a>>b;

cout<<"vvedite drob' s ne nylevim znamenatelem\n";

if( b==0) cout<<"vvedite drob' s ne nylevim znamenatelem\n";

else break;

}

rational D3(a,b);

rational D5(a,b);

cout<<"slo}I{enie drobei:\n";

cout<<D1; cout<<" + "; cout<<D2; ;cout<<" + ";cout<<D3; cout<<"= ";

D5=D3+D2+D1;

cout<<D5; cout<<"\n";

cout<<"vbI4itanie drobei:\n";

cout<<D1; cout<<" - "; cout<<D2; cout<<"= ";

D5=D1-D2;

cout<<D5; cout<<"\n";

cout<<"ymno}I{enie drobei:\n ";

cout<<D1; cout<<" * "; cout<<D2;cout<<"= ";

D5=D1*D2;

cout<<D5; cout<<"\n";

cout<<"delenie drobei:\n";

cout<<D1; cout<<" / "; cout<<D2; cout<<"= ";

D5=D1/D2;

cout<<D5; cout<<"\n";

getch();

}
adlansuliman вне форума Ответить с цитированием
Старый 13.12.2013, 13:22   #2
alexusankov
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 66
По умолчанию

Эмм, так тут дел на 10 минут, этож элементарная задача.
Если очень нужно - велкам скайп, alexandr.usankov
alexusankov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переписать код Вадим12091965 Microsoft Office Excel 0 24.09.2013 19:44
Нужно переписать прогу с Фортран 77 на любой свежий язык Leon021 Фриланс 2 16.04.2012 19:24
переписать код с delphi на c++ lirikoff Помощь студентам 1 12.06.2011 17:12
Переписать код bp C++, на Delphi Айдар Общие вопросы Delphi 0 12.06.2010 20:40
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37