Форум программистов, компьютерный форум CyberForum.ru

ООП. нахождение суммы обыкновенных дробей с выделенной целой частью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти площадь треугольника по формуле Герона http://www.cyberforum.ru/cpp-beginners/thread1071542.html
Помогите пожалуйста с задачкой на класс. Нужно найти площадь треугольника по формуле Герона. Ошибку выдает, подчеркивает p в самой формуле. Нужно уже завтра #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; class ger { public: int a, b, c;
C++ Строки. Нужно дополнить строку нулями слева Нужно дополнить строку нулями слева. Например была строка str1="345" результат str2="0000000345" Нужно именно в С++. Спасибо! http://www.cyberforum.ru/cpp-beginners/thread1071525.html
C++ Записать функции в виде методов класса
#include <stdio.h> #include <stdlib.h> #include <locale.h> struct Stack { int data; struct Stack *next; };
Определение детерминированного конечного автомата C++
Доброго времени суток! Очень нужна ваша помощь в решении задачи( Необходимо написать программу, реализующую определение детерминированности любого конечного автомата. Если функция переходов определена однозначно и полно, то программа должна выдавать сообщение о том, что проверяемый КА является детерминированным, в противном случае – недетерминированным. Должна быть предусмотрена возможность...
C++ Вычисление определенного интеграла методом средних прямоугольников для функции http://www.cyberforum.ru/cpp-beginners/thread1071471.html
Вот само задание : Разработать программу для вычисления определенного интеграла методом средних прямоугольников для функции типа: y=a ∙ cos (b ∙ x )+ x^c . Коэффициенты a, b, c и границы интервала интегрирования считываются с экрана. Я сделал бы сам , но даже не понимаю суть задания. К примеру : надо ли считать шаг сетки , и нужно ли его вообще считать?? какой формулой пользоваться ( из 3...
 

Показать сообщение отдельно
wsa
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 202
14.01.2014, 21:59     ООП. нахождение суммы обыкновенных дробей с выделенной целой частью
Неправильно высчитывает сумму. что не так? помогите. само задание такое. написать класс, реализующий понятия обыкновенных дробей с выделенной целой частью. Найти их сумму. перегрузка суммы. конструктор, деструктор.
C++ (Qt)
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include <iostream>
#include <ostream>
#include <locale>
#include <conio.h>
using namespace std;
 
class Rational 
{
int ch;
int a;
int b;
public:
Rational(){ch=0; a = 0; b = 0;} // Конструктор по умолчанию
Rational(const int& _ch, const int& _a, const int& _b) // Конструктор с данными
{
  ch=_ch;
  if (_b<0)
     exit(1);
     a = _a;
  if (_b)
     b = _b;
  else
     exit(1);
     reduce();
}
Rational operator+( Rational T)
{
   Rational Temp;
   Temp.a=(Temp.ch*Temp.b)+Temp.a;
   if( this->b == T.b )
   {
       Temp.a = this->a + T.a;
       Temp.b = this->b;
   }
   else
   {
       Temp.b = this->b * T.b;
       Temp.a = (Temp.b / this->b * this->a ) + (Temp.b / T.b * T.a );
   }
   Temp.reduce();
   return Temp;
}
 
// Нахождение НОДа
int NOD(const int& a1,const int& b1)
{
   int a = abs(a1), b = abs(b1);
   while(a!=0 && b!=0)
   {
   if (a>=b)
      a = a%b;
   else
      b = b%a;
   }
   return a+b;
}
// Сокращение дроби
void Rational::reduce()
{
     int nod = NOD(a,b);
     a = a/nod;
     b = b/nod;
}
 
// Перегрузка оператора cin
friend istream& operator» (istream& istr, Rational& b)
{
    char* str = new char [1024];
    cin.getline(str, sizeof(str));
    int i = 0;
    unsigned int bt = 0;
    bool flag = false;
l1:
    int len = strlen(str)-1;
    while (str[len]==' ')
    {
        str[len] = NULL;
        goto l1;
    }
    if (strlen(str)==0)
        exit(1);
    while (str[i]==' ')
        ++i;
    if (str[i]=='-')
    {
        flag = true;
        ++i;
    }
    while (str[i]!='.' && str[i]!='/' && i<(int)strlen(str))
    {
        bt = (str[i] - '0') + bt*10;
        ++i;
    }
    ++i;
    switch (str[i-1]){
    case '.': {
        int j = 0;
        while (i<(int)strlen(str))
        {
            bt = (str[i] - '0') + bt*10;
            ++i, ++j;
        } 
        b.b = int(pow(10.0,j));
        break;
              }
    case '/': {
        b.b = 0;
        while (i<(int)strlen(str))
        {
            b.b = (str[i]-'0') + b.b*10;
            ++i;
        }
        break;
              }
    }
    b.a = flag ? -int(bt) : bt;
    b.reduce();
    return istr;
}
 
// Перегрузка оператора сout
friend ostream& operator << (ostream &out, Rational& drob)
{
    drob.ch=drob.a/drob.b;
    if (drob.b== 1 || drob.a == 0)
        out << drob.a+drob.ch;
    else 
        out << drob.ch << '('<< drob.a-(drob.ch*drob.b)<< '/' << drob.b <<')';
    return out;
}
};
 
 
void main()
{
    int s,d,f;
    int l,k,m;
    setlocale(LC_ALL,"Russian");
    cout <<"Введите целую часть первой дроби: ";
    cin >> s;
    cout <<"Введите числитель первой дроби: ";
    cin >> d;
    cout <<"Введите знаменатель первой дроби: ";
    cin >> f;
 
    Rational A(s,d,f);
    Rational Result;
    cout <<"Введите целую часть второй дроби: ";
    cin >> l;
    cout <<"Введите числитель второй дроби: ";
    cin >> k;
    cout <<"Введите знаменатель второй дроби: ";
    cin >> m;
    
    Rational B(l,k,m);
    cout << "A" <<" + "<< "B" <<" = " << A+B << endl;
    system ("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru