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

Калькулятор для дробей

21.03.2015, 13:58. Показов 6415. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать калькулятор, который выполняет 4 арифметичуские действия над дробями. Пользователь должен сначало ввести первый операнд, знак операции и второй аперанд. После вычислений и упрощения дробей программа должна отобразить его на экране и запросить пользователя про его желание выполнить еще одно действие.

Заранее спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2015, 13:58
Ответы с готовыми решениями:

Калькулятор для дробей
Задача: Создать класс Fraction, который будет описывать дробь (числитель и знаменатель). Методы класса следующие: Farction Add (const...

Калькулятор для дробей
Написать программу калькулятор для дробей,с помощью цикла for.Пользователь выбирает одной из действий: сумма,вычитание,умножение,деление. ...

Калькулятор для обыкновенных дробей
Не компилируется( #include <iostream> #include <math.h> using namespace std; class Calc

32
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2015, 14:00
1. И зачем здесь уточнять, что операнды дробные?
2. А что там упрощать?
3. Что конкретно не получается?
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.03.2015, 14:11
Лучший ответ Сообщение было отмечено LittleMonkey как решение

Решение

taras atavin, LittleMonkey,
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
109
110
111
112
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <conio.h>
using namespace std;
 
class fraction
{
    __int32 a, b;
public:
    fraction() : a(0), b(0)
    {}
 
    fraction(__int32 c, __int32 d) : a(c), b(d)
    {}
 
    fraction fadd(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.b + t1.b * t2.a;
        tmp.b = t1.b * t2.b;
        return tmp;
    }
 
    fraction fsub(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.b - t1.b * t2.a;
        tmp.b = t1.b * t2.b;
        return tmp;
    }
 
    fraction fmul(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.a;
        tmp.b = t1.b * t2.b;
        return tmp;
    }
 
    fraction fdiv(const fraction& t1, const fraction& t2)
    {
        fraction tmp;
        tmp.a = t1.a * t2.b;
        tmp.b = t1.b * t2.a;
        return tmp;
    }
 
    void nod(void)
    {
        __int16 A(a), B(b), C;
        while (B)
        {
            C = A % B;
            A = B;
            B = C;
        }
        a /= abs(A);
        b /= abs(A);
    }
 
    void set()
    {
        cin >> a >> b;
    }
 
    void show() const
    {
        cout << a << '/' << b << endl;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    for (char ch('z'); ch != '0'; ch = getche())
    {
        if (ch != 'z') cout << '\n' << endl;
        fraction t1, t2, t3;
        cout << "Введите первую дробь:" << endl;
        t1.set();
        cout << "Введите вторую дробь:" << endl;
        t2.set();
        cout << "Введите операцию:" << endl;
        cin >> ch;
        switch (ch)
        {
        case '+':
            t3 = t1.fadd(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        case '-':
            t3 = t1.fsub(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        case '*':
            t3 = t1.fmul(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        case '/':
            t3 = t1.fdiv(t1, t2); t3.nod();
            cout << "Результат равен:\n"; t3.show();
            break;
        default: cout << "Такой операции не существует." << endl;
        }
        cout << "Повторить? (1 - да. 0 - нет.) ";
    }
    cout << '\n' << endl;
    system("pause");
    return 0;
}
2
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
21.03.2015, 14:13
Ferrari F1, лучше nod сделать приватным и вызывать его в конструкторе с параметрами и в методе set. А все арифметические операции либо сделать с одним параметром, либо статическими, либо перегрузить арифметические операции и объявить их friend функциями в классе.
1
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.03.2015, 14:14
Kerry_Jr, прогу писал оч давно, просто скопировал)
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
21.03.2015, 14:16
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
C++
1
fraction() : a(0), b(0)
b(1).
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2015, 14:37
Ferrari F1, что то я ваще не понял.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.03.2015, 14:53
taras atavin,
а что тут понимать?
0
 Аватар для Kant
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
21.03.2015, 15:07
Цитата Сообщение от LittleMonkey Посмотреть сообщение
и запросить пользователя про его желание
2/3 + 5/7 = 1 8/21
- Загадай желание.
- Ты живая..?
- Да
- Оуу! А сколько желаний ты сможешь исполнить и какие ограничения?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2015, 16:15
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
taras atavin,
а что тут понимать?
Ну, например, при чём здесь этот класс.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.03.2015, 18:06
taras atavin, класс дробей, где его методы производят вычислительные операции с дробями)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2015, 18:20
Два целых - это дробь? Все калькуляторы работают с дробями, но почему то ввести два целых не просят.
0
 Аватар для MicM
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
21.03.2015, 18:33
Если нужны действия с дробями, то можно посмотреть в сторону boost.rational
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
21.03.2015, 18:36
Зачем? Обычный double уже не кошерен?
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
21.03.2015, 21:38
taras atavin, 2 целых - это числитель и знаменатель)
0
 Аватар для Nishen
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
21.03.2015, 22:10
taras atavin, да вот Лафоре решил на это примере (сквозь всю книгу) разобрать некоторые нюансы языка. Сначала простая реализация с помощью арифметических операций, следом оформляли это задание с помощью функций, потом в структуру сделали, потом в класс и т.д. Числитель и знаменатель представлялись отдельно по заданию.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.03.2015, 05:44
А откуда там числитель и знаменатель?
0
 Аватар для Nishen
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
22.03.2015, 07:38
taras atavin, в смысле, откуда? Лафоре задумал так этот пример, чтобы числитель и знаменательно были отдельными числами.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
22.03.2015, 07:51
Цитата Сообщение от taras atavin Посмотреть сообщение
Два целых - это дробь?
представляешь, да
числитель и знаменатель
Цитата Сообщение от taras atavin Посмотреть сообщение
Все калькуляторы работают с дробями, но почему то ввести два целых не просят.
с десятичными дробями, у коих знаменатель 10

и попробуй на обычном калькуляторе 1 разделить на 3, а потом умножить тоже на 3, и возрадуйся результату
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.03.2015, 10:35
Цитата Сообщение от Nishen Посмотреть сообщение
taras atavin, в смысле, откуда? Лафоре задумал так этот пример, чтобы числитель и знаменательно были отдельными числами.
Откуда в калькуляторе вообще числитель и знаменатель? Куда здесь их здесь вообще всунуть?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2015, 10:35
Помогаю со студенческими работами здесь

Калькулятор дробей
Здравствуйте! Изучаю С++ по книге Лафоре, там нужно было создать калькулятор дробей в одном из упражнений. Калькулятор работает как надо,...

Калькулятор дробей
Учусь программировать на C++, в данное время на мобильном компиляторе &quot;Cxx IDE for android&quot;. С утра хотел написать свой калькулятор...

Калькулятор рациональных дробей
Первая программа принимает от пользователя три строки, (первая и третья строки – это правильные рациональные или десятичные дроби вида ...

Усовершенствованный калькулятор рациональных дробей
Добавил операторы сравнения и равно, всё скомпилировалось, ровно работает, при добавлении &lt;=,&gt;=,!= в отдельных case, всё...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru