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

добавление к дроби целого числа

24.04.2013, 17:00. Показов 1904. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как реализовать: добавление к дроби целого числа выполняется по правилу сложения дробей (без сокращения) ¾ + 1 = 7/4.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2013, 17:00
Ответы с готовыми решениями:

Разность дроби и целого числа
Нужно перегрузить операции "-" и "=". Конструкторы класса должны преобразовывать оба операнда в...

Определить цифры целого числа (тип числа - целое без знака)
Определить цифры целого числа( тип числа-целое без знака), вычислить сумму полученных цифр....

Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -> 3153)
Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -> 3153) на DevC++....

Конструирование значения целого числа или числа с плавающей точкой по его дампу
Как сконструировать значения целого числа(char, short int, long int) или числа с плавающей...

14
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.04.2013, 17:11 2
PK91, а как у Вас реализована сама дробь?
0
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
24.04.2013, 17:24 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
#include <iostream>
#include <math.h>
 
int NOD(int x, int y);
int NOK(int x, int y);
 
int main()
{
    std::cout << "Example: " << std::endl;
    std::cout << " a    a1" << std::endl;
    std::cout << "--  + --" << std::endl;
    std::cout << " c      c1" << std::endl << std::endl;
 
    std::cout << "Enter a a1 c c1. ex[5 6 9 6]: ";
 
    int a,a1,c,c1;
    std::cin >> a >> a1 >> c >> c1;
 
    int nok = NOK(c, c1);
 
    c = nok / c;
    a *= c;
 
    c1 = nok / c1;
    a1 *= c1;
 
    /*
    [url]http://ru.onlinemschool.com/math/library/fraction/lcd/[/url]
    */
 
    int answer = a + a1;
 
    std::cout << "Answer: " << std::endl;
 
    std::cout << answer << std::endl;
    std::cout << "----" << std::endl;
    std::cout << nok << std::endl;
 
 
    return 0;
}
 
int NOD(int x, int y)
{
    if (x != 0)
        return NOD(y%x,x);
    else
        return y;
}
 
int NOK(int x, int y)
{
    return (x/NOD(x,y))*y;
}
если всё верно, то отзыв вот сюда [ссылка удалена]
0
Заблокирован
Автор FAQ
24.04.2013, 17:27 4
Цитата Сообщение от Tulosba Посмотреть сообщение
PK91, а как у Вас реализована сама дробь?
- поддержу вопрос, дробь идёт как отдельный класс или просто структура?
C++
1
2
3
4
5
struct DROB
{
     double chislitel;
     double znamenatel;
}
Ответ на вопрос повлияет на реализацию
0
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
24.04.2013, 17:31 5
Извиняюсь, была допущена ошибка в реализации.
Исправленный вариант:

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
#include <iostream>
#include <math.h>
 
int NOD(int x, int y);
int NOK(int x, int y);
 
int main()
{
    std::cout << "Example: " << std::endl;
    std::cout << " a    a1" << std::endl;
    std::cout << "--  + --" << std::endl;
    std::cout << " c      c1" << std::endl << std::endl;
 
    std::cout << "Enter a a1 c c1. ex[5 6 9 6]: ";
 
    int a,a1,c,c1;
    std::cin >> a >> c >> a1 >> c1;
 
    int nok = NOK(c, c1);
 
    c = nok / c;
    a *= c;
 
    c1 = nok / c1;
    a1 *= c1;
 
    /*
    [url]http://ru.onlinemschool.com/math/library/fraction/lcd/[/url]
    */
 
    int answer = a + a1;
 
    std::cout << "Answer: " << std::endl;
 
    std::cout << answer << std::endl;
    std::cout << "----" << std::endl;
    std::cout << nok << std::endl;
 
 
    return 0;
}
 
int NOD(int x, int y)
{
    if (x != 0)
        return NOD(y%x,x);
    else
        return y;
}
 
int NOK(int x, int y)
{
    return (x/NOD(x,y))*y;
}
1
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
24.04.2013, 17:36  [ТС] 6
Дробь идёт как отдельный класс.
0
Заблокирован
Автор FAQ
24.04.2013, 17:38 7
Цитата Сообщение от PK91 Посмотреть сообщение
Подскажите пожалуйста, как реализовать: добавление к дроби целого числа выполняется по правилу сложения дробей (без сокращения) ¾ + 1 = 7/4.
Лови
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
#include <iostream>
using namespace std;
 
class DROB
{
private:
    double chislitel;
    double znamenatel;
public :
    DROB();
    DROB(double chisl, double znam);
    DROB(const DROB &pCopy);
    DROB operator + (DROB   pAdd);
    DROB operator + (double pAdd);
    void show();
};
 
DROB::DROB()
{
    chislitel = znamenatel = 0;
}
 
DROB::DROB(double chisl, double znam)
{
    chislitel = chisl;
    znamenatel= znam;
}
 
DROB::DROB(const DROB &pCopy)
{
    chislitel = pCopy.chislitel;
    znamenatel= pCopy.znamenatel;
}
 
DROB 
DROB::operator + (DROB   pAdd)
{
    chislitel *= pAdd.znamenatel;
    znamenatel*= pAdd.chislitel;
    return (*this);
}
 
DROB 
DROB::operator + (double pAdd)
{
    chislitel += pAdd*znamenatel;
    return (*this);
}
 
void DROB::show()
{
    cout<<chislitel<<" / "<<znamenatel<<endl;
}
 
int main()
{
    DROB pDrob(3, 4);
    pDrob.show();
    pDrob = pDrob + 1;
    pDrob.show();
    cin.get();
    return 0;
}
Миниатюры
добавление к дроби целого числа  
2
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
24.04.2013, 17:38  [ТС] 8
Спасибо!!!! Объясните пожалуйста, что значит:
C++
1
2
3
4
5
6
7
int nok = NOK(c, c1);
 
    c = nok / c;
    a *= c;
 
    c1 = nok / c1;
    a1 *= c1;
0
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
24.04.2013, 17:39 9
Цитата Сообщение от PK91 Посмотреть сообщение
Спасибо!!!! Объясните пожалуйста, что значит:
C++
1
2
3
4
5
6
7
int nok = NOK(c, c1);
 
    c = nok / c;
    a *= c;
 
    c1 = nok / c1;
    a1 *= c1;
http://ru.onlinemschool.com/ma... ction/lcd/
0
Заблокирован
Автор FAQ
24.04.2013, 17:41 10
Цитата Сообщение от PK91 Посмотреть сообщение
Спасибо!!!! Объясните пожалуйста, что значит:
Код C++
int nok = NOK(c, c1);
c = nok / c;
* * a *= c;
c1 = nok / c1;
* * a1 *= c1;
- нахождение общего кратного, твоя дробь приводится в знаменателе к наименьшему общему кратному(идёт сокращение в числителе и знаменателе), так что ответ поста 3 вобщем-то не по заданию
Цитата Сообщение от PK91 Посмотреть сообщение
числа выполняется по правилу сложения дробей (без сокращения)
1
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
24.04.2013, 17:44 11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- нахождение общего кратного, твоя дробь приводится в знаменателе к наименьшему общему кратному, так что ответ поста 3 вобщем то не по заданию

Не по теме:

всё лучше, чем нечего :)

0
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
24.04.2013, 17:46  [ТС] 12
Спасибо большое!!! Объясните пожалуйста:
C++
1
2
3
4
5
DROB::DROB(const DROB &pCopy)
{
    chislitel = pCopy.chislitel;
    znamenatel= pCopy.znamenatel;
}
0
-=ЮрА=-
24.04.2013, 17:47
  #13

Не по теме:

Цитата Сообщение от GetVariable Посмотреть сообщение
всё лучше, чем нечего
- лучше делать то что просят;)

1
Заблокирован
Автор FAQ
24.04.2013, 17:50 14
Цитата Сообщение от PK91 Посмотреть сообщение
DROB:ROB(const DROB &pCopy)
{
* * chislitel = pCopy.chislitel;
* * znamenatel= pCopy.znamenatel;
}
- конструктор копирования - privat переменные из класса pCopy присваиваются privat переменным текущего экземпляра класса, дословно - чтобы можно было написать pDrob1 = pDrob2
1
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 42
24.04.2013, 17:55  [ТС] 15
Спасибо!!!
0
24.04.2013, 17:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2013, 17:55
Помогаю со студенческими работами здесь

нужен тип целого числа для числа 19!= 121 645 100 408 832 000
Нужно посчитать сумму цифр целого положительного числа. double summacifr(double chislo) {...

Вычислить значение дроби (кажется дроби)
Доброго времени суток, возникла проблема, на днях дали вот такое интересное задание, только вот...

Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа
Дана строка.Необходимо определить ,представляет ли она собой запись целого числа,записать дробного...

. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа
срочно помогите пожалуйста


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

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