Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/163: Рейтинг темы: голосов - 163, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 08.01.2015
Сообщений: 67
1

Реализовать класс для работы с дробями

16.09.2015, 14:23. Показов 33253. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Реализуйте класс Дробь. Необходимо хранить числитель и знаменатель в качестве переменных-членов. Реализуйте функции-члены для ввода данных в переменные-члены, для выполнения арифметических операций (сложение, вычитание, умножение, деление, и т.д.) и для вывода данных.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2015, 14:23
Ответы с готовыми решениями:

Создать класс для работы с дробями
МОЖНО ТОЛЬКО НЕ КИТАЙСКИМ КОДОМ(хочу разобраться,не понимаю).заранее благодарен! Реализуйте...

Создать класс для работы с обыкновенными дробями
ЗАДАНИЕ : Создать класс для работы с обыкновенными дробями. Все операции, которые должны...

Создать класс для работы с рациональными дробями
1. Создать класс для работы с рациональными дробями (вида m/n). Закрытые данные класса: числитель,...

Создать класс Rational для работы с ра-циональными дробями
Рациональная (несократимая) дробь представляется парой целых чисел (а, 6), где а — числитель, Ь —...

4
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
16.09.2015, 14:28 2
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
68
69
70
71
72
73
#include <iostream>
 
class Ratio {
private:
  int a,b;
public:
  explicit Ratio(int na=0, int nb=0) : a(na), b(nb) 
  { cout << "Hi: (" << a << "/" << b << ")" << endl << flush; }
  Ratio(const Ratio& src) : a(src.a), b(src.b) 
  { cout << "Hi: (" << a << "/" << b << ")" << endl << flush; }
 
  ~Ratio() { cout << "RIP: (" << a << "/" << b << ")" << endl << flush; }
 
  Ratio& operator=( const Ratio& src ) { a=src.a; b=src.b; return *this; }
 
  Ratio& operator+=( const Ratio& src ) 
  { a  = a * src.b + b * src.a;
    b *= src.b;
    return *this; 
  }
  int chislitel()  const { return a; }
  int znamenatel() const { return b; }
 
  Ratio& reverse() { int tmp=a; a=b; b=tmp; return *this; }
 
  operator int() const { return a/b; }
 
  Ratio operator+( const Ratio& src2 ) const
  { Ratio res(*this);
    res += src2;
    return res;
  }
};
 
ostream& operator<<(ostream& os, const Ratio& src)
{ cout << "(" << src.chislitel() << "/";
  cout << src.znamenatel() << ")" << flush;
}
 
istream& operator>> (istream& is,Ratio& r)
{
  int na, nb=1; is >> na;
  char c;       is >> c;
 
  if (c=='/') is>> nb;
 
  r = Ratio(na,nb);
  return is;
}
 
void main( )
{
  Ratio r1,r2,r3;
  char op;
  cout<<"enter r1"<<flush;
  cin>>r1;
  cout<<"enter op"<<flush;
  cin>>op;
  cout<<"enter r2"<<flush;
  cin>>r2;
 
  switch (op){
    case'+': r3=r1+r2;break;
    case'-': r3=r1-r2;break;
    case'*': r3=r1*r2;break;
    case'/': r3=r1/r2;break;
    default:
        cout<<"Error!"<<flush;
        return ;
  }
 
  cout<<r1<<' '<<op<<' '<<r2<<" = "<<r3<<flush;
}
Это пример из методички
http://cmp.phys.msu.ru/sites/d... inar21.pdf
1
1 / 1 / 0
Регистрация: 27.04.2016
Сообщений: 1
27.04.2016, 20:11 3
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <string>
using namespace std;
 
class Drob{
private:
    int chisl;
    int znamen;
    int NOD(int x, int y)
    {
        if (y == 0) return x;
        return NOD(y, x % y);
    }
public:
    void input(int c, int z)
    {
        chisl = c;
        znamen = z;
    }
    void mult(int x)
    {
        chisl *= x;
        cout << "drob:  " << chisl << '/' << znamen << endl;
    }
    void div(int x)
    {
        znamen *= x;
        cout << "drob:  " << chisl << '/' << znamen << endl;
 
    }
 
    void sum(int x)
    {
        chisl += (x*znamen);
        cout << "drob:  " << chisl << '/' << znamen << endl;
    }
    void sub(int x)
    {
        chisl -= (x*znamen);
        cout << "drob:  " << chisl << '/' << znamen << endl;
 
    }
    void show()
    {
        cout << "tekushaya drob:  " << chisl << '/' << znamen << endl;
    }
    int peredacha()
    {
        return NOD(chisl, znamen);
    }
    void reduct(int x)
    {
        chisl /= x;
        znamen /= x;
    }
 
};
 
 
 
int main(){
    int a, b, m;
    char c = 'y';
    cout << "vvedite cheslitel:" << endl;
    cin >> a;
    cout << "vvedite znamenatel:" << endl;
    cin >> b;
    Drob obj;
    obj.input(a, b);
    do{
        obj.reduct(obj.peredacha());
        obj.show();
        cout << "1:Pribavit k drobi chislo" << endl;
        cout << "2:Otniatb ot drobi chislo" << endl;
        cout << "3:Ymnojitb  drobna  chislo" << endl;
        cout << "4:Razdelitb  drob na chislo" << endl;
        cout << "Viberite deystvie" << '\n';
        cin >> m;
        switch (m)
        {
        case 1:
            cout << "Vvedite slagaemoe" << endl;
            cin >> a;
            obj.sum(a);
            break;
        case 2:
            cout << "Vvedite vichitaemoe" << endl;
            cin >> a;
            obj.sub(a);
            break;
        case 3: 
            cout << "Vvedite mnojitel" << endl;
            cin >> a;
            obj.mult(a);
            break;
        case 4:  
            cout << "Vvedite delitel" << endl;
            cin >> a;
            obj.div(a);
            break;
        default: 
            cout << "Viberite pravilno" << endl;
        }
        cout << "prodoljit raboty?(y/n)" << endl;
        cin >> c;
    } while (c != 'n');
    return 0;
}
1
0 / 0 / 1
Регистрация: 08.07.2017
Сообщений: 31
08.07.2017, 11:09 4
зачем заводим функцию NOD ,input ,mult,div,peredacha,reduct и что эти функции делают (я новичок и мне сложно пока что это понимается)
0
Заклинатель змей
700 / 555 / 219
Регистрация: 30.04.2016
Сообщений: 2,591
08.07.2017, 11:25 5
cmetanka, лучше используйте решение zss -- там перегружены операторы вместо создания функций
0
08.07.2017, 11:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2017, 11:25
Помогаю со студенческими работами здесь

Создать класс Rational для работы с рациональными дробями
Рациональная (несократимая) дробь представляется парой целых чисел (а, b), где а — числитель, b —...

Создать класс для представления и работы с обыкновенными дробями
Помогите пожалуйста решить задачу, буду очень благодарна Создать класс для представления и...

Разработать класс, содержащий методы для работы с рациональными дробями
Здравствуйте, помогите пожалуйста. Разработать класс, содержащий методы для работы с рациональными...

Реализовать класс для работы со строками
Пожалуйста помогите с заданием Необходимо реализовать класс TString. В процессе выполнения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru