![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.04.2010
Сообщений: 7
|
![]()
Определить класс «дробное число» с компонентными данными: целая часть, числитель, знаменатель (проверить, не равен ли знаменатель нулю). Предусмотреть компонентные функции: получения каждого элемента дан-ных по отдельности, форматного вывода дроби на экран, если целая часть равна нулю, то не выводить ее), приведения дроби к несократимому виду. Описать дружественную функцию преобразования дроби в десятичный фор-мат и ее вывода на экран
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
могу выполнить за вознаграждение, есть готовый класс на C#, перепишу в кратчайший срок
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
#3 |
Регистрация: 17.03.2010
Сообщений: 5
|
![]()
// peregruzka.cpp : Defines the entry point for the console application.
// #include"stdafx.h" #include<iostream> using std::cout; using std::cin; class rationalNumber{ friend rationalNumber operator+ (rationalNumber&,rationalNumber&); friend rationalNumber operator- (rationalNumber&,rationalNumber&); friend rationalNumber operator* (rationalNumber&,rationalNumber&); friend rationalNumber operator/ (rationalNumber&,rationalNumber&); friend int operator== (rationalNumber&,rationalNumber&); friend int operator!= (rationalNumber&,rationalNumber&); friend int operator< (rationalNumber&,rationalNumber&); friend int operator> (rationalNumber&,rationalNumber&); public: rationalNumber(int = 1, int = 1 ); void setdr(int ,int); void sokr(); void print(); private: int ch; int zn; }; rationalNumber::rationalNumber(int x, int y ) { setdr(x,y); sokr(); } void rationalNumber::setdr(int a,int b) { if(b>0) zn=b; else { cout<<"Znachenie znamenatelya "<< b <<" bylo vvedeno nekorrektno.Znamenatel ustanovlen edinicey.\n"; zn=1; } ch=a; } void rationalNumber::sokr() { int del,i,min,osta,ostb,fl=0; if(ch<0) {fl++;ch=-ch;} if(ch<zn) min=ch; else min=zn; del=1; for(i=2;i<=min;i++) { osta=ch%i; ostb=zn%i; if((osta==0)&&(ostb==0)) del=i; } ch=ch/del; zn=zn/del; if(fl!=0) ch=-ch; } void rationalNumber: ![]() { if((ch==zn)||(ch==0)||(zn==1)) cout<<ch; else cout<<ch<<"/"<<zn; } rationalNumber operator*(rationalNumber& a, rationalNumber& b) { rationalNumber c; c.ch=a.ch*b.ch; c.zn=a.zn*b.zn; c.sokr(); return c; } rationalNumber operator/(rationalNumber& a, rationalNumber& b) { rationalNumber c; c.ch=a.ch*b.zn; c.zn=a.zn*b.ch; c.sokr(); return c; } rationalNumber operator+(rationalNumber& a, rationalNumber& b) { rationalNumber c; c.ch=a.ch*b.zn+b.ch*a.zn; c.zn=a.zn*b.zn; c.sokr(); return c; } rationalNumber operator-(rationalNumber& a, rationalNumber& b) { rationalNumber c; c.ch=a.ch*b.zn-b.ch*a.zn; c.zn=a.zn*b.zn; c.sokr(); return c; } int operator==(rationalNumber& a, rationalNumber& b) { if((a.ch==b.ch)&&(a.zn==b.zn)) return 0; else return -1; } int operator!=(rationalNumber& a, rationalNumber& b) { if((a.ch!=b.ch)||(a.zn!=b.zn)) return 0; else return -1; } int operator<(rationalNumber& a, rationalNumber& b) { float a1,b2,x,y; x=float(a.ch); y=float(a.zn); a1=(x/y); x=float(b.ch); y=float(b.zn); b2=(x/y); if(a1<b2) return 0; else return -1; } int operator>(rationalNumber& a, rationalNumber& b) { float a1,b2,x,y; x=float(a.ch); y=float(a.zn); a1=(x/y); x=float(b.ch); y=float(b.zn); b2=(x/y); if(a1>b2) return 0; else return -1; } int _tmain(int argc, _TCHAR* argv[]) { int x,y,var; cout<<"vvedite znachenie 1-oy drobi:\nchislitel="; cin>>x; cout<<"znamenatel="; cin>>y; rationalNumber a(x,y),c; cout<<"vvedite znachenie 2-oy drobi:\nchislitel="; cin>>x; cout<<"znamenatel="; cin>>y; rationalNumber b(x,y); cout<<"pervaya drob:"; a.print(); cout<<"\nvtoraya drob:"; b.print(); c=a+b; cout<<"\nSumma:"; c.print(); c=a-b; cout<<"\nraznost:"; c.print(); c=a*b; cout<<"\nproizvedenie:"; c.print(); c=a/b; cout<<"\ndelenie:"; c.print(); if((var=(a==b))==0) cout<<"\na ravno b\n"; else { if((var=(a!=b))==0) cout<<"\na ne ravno b"; if((var=(a<b))==0) cout<<"\na menshe b\n"; if((var=(a>b))==0) cout<<"\na bolshe b\n"; } return 0; } это код на задачу: 3.1) Создайте класс rationalNumber (дроби) со следующими возможностями: а) Создайте конструктор, который предотвращает равенство нулю знаменателя дроби, сокращает или упрощает дроби, если они не в сокращенной форме, и исключает отрицательные знаменатели. б) Перегрузите операции сложения, вычитания, умножения и деления для этого класса. в) Перегрузите операции отношения и проверки на равенство для этого класса. вынеси,что не требуется и кое-что добавь |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
класс «дробное число» | RodionL3 | Общие вопросы C/C++ | 5 | 24.04.2010 12:44 |
Дробное отрицательное в двоичный вид | ajaxtpm | Общие вопросы Delphi | 0 | 13.04.2010 21:49 |
Записать дробное число в форматах Single и Double, а целое в формате Integer!!!! | AlexSed | Помощь студентам | 4 | 08.01.2010 23:39 |
Как записывается дробное число. | Altera | Свободное общение | 2 | 18.12.2009 20:30 |
Ввести число N и определить делится ли оно без остатка на число M (VBA) | Ivanich | Microsoft Office Excel | 7 | 24.04.2008 19:43 |