Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой калькулятор рациональных чисел на C++, Нужна помощь в написании данного кальк 
:(
    Опции темы
Oxidous
Дата 24.9.2015, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 24.9.2015

Репутация: нет
Всего: нет



сем доброго времени суток,
Только начал изучать C++ и задали вот такое задание:

Напишите программу, которая позволяет совершать математические действия (сложение, вычитание, умножение, деление, сравнение) с рациональными числами.
Создайте класс для рациональных чисел.Данные класса - рациональные числа ( числитель и знаменатель). В классе должны быть такие методы: сложение, вычитание, умножение, деление, сравнение (больше, меньше, равно), отрицательное (умножение на -1). Данные методы должны возвращать рациональные числа.
Операция сложения a + b при помощи этого класса будет выглядеть так: a.sloz(b);
Так же в классе обязательно должны быть методы: ввод и вывод.

В общем, нужно написать программу, вида:
Ввожу первое рационально число (допустим, 3/4)
Ввожу второе рациональное число(допустим 16/33)
Выводится результат сложения, вычитания, умножения, деления, сравнения и умножения на -1 введённых рациональных чисел.

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

Вот то,что я написал с целыми числами:

Код

#include<iostream>
using namespace std;

class MyCalc
{
    private: 
    int a;
    int b;
    
    public: 
    
    void vvod_vivod() 
    {
        cout << "Введите первое число: ";
        cin >> a;
        cout << " " << endl; 
        cout << "Введите второе число: ";
        cin >> b;
        cout << " " << endl;
    }
    void sloz()
    {
        cout << "Сложение " << "(" << a << " + " << b << ")" << " = " << a + b << endl;
    }
    void vicit()
    {
        cout << "Вычитание " << "(" << a << " - " << b << ")" << " = " << a - b << endl;
    }
    void umnoz()
    {
        cout << "Умножение " << "(" << a << " * " << b << ")" << " = " << a * b << endl;
    }
    void delen()
    {
        cout << "Деление " << "(" << a << " / " << b << ")" << " = " << a / b << endl;
    }
    void sravn()
    {
        if (a==b) cout << a << " равно "<< b << endl;  
                if (a<b)   cout << a << " меньше "<< b << endl;  
                if (a>b)   cout << a << " больше "<< b << endl; 
    }
    void otric()
    {
        cout << "Отрицательно: " << "((" << a << " * " << b << ")" << " * -1)"<< " = " << (a * b) * -1 << endl;
    }
};

int main()
{
    setlocale(0, ""); 
    
    cout << "Калькулятор целых чисел.\n" << endl;
    
    MyCalc c1; 
    
    c1.vvod_vivod();
    c1.sloz();
    c1.vicit();
    c1.umnoz();
    c1.delen();
    c1.sravn();
    c1.otric();
    cout << " " << endl;
  
    system("pause"); 
    return 0; 
}



[/code]
[/code]
PM MAIL   Вверх
rudolfninja
Дата 24.9.2015, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Сначала стоит написать класс, который представляет собой рациональное число.  То есть там будет минимум два поля - числитель и знаменатель. Затем реализовываете нужные методы.
Если что то будет не получаться - пишите сюда. Пока что не видно попыток создать класс для работы с рациональными числами.
PM MAIL Skype   Вверх
Iosif1
Дата 25.9.2015, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 23.3.2009
Где: г. Донецк, Украин а

Репутация: нет
Всего: нет



Я без особой надежды.
Мною разработана "Методика определения делимости чисел натурального числового ряда и её практическое применение".
Она основана на детерминированных, не вероятностных методах математики,  не на пересчёте, подобно решету Эростофена, а на закономерностях, выявленных на основании использования мод 6 и мод 4, позволяющих значительно сокращать количество просчётов, например, за счёт того, что анализируется только интересующий нас диапазон, а значить, и временные затраты значительно снижаются.
И не только за счёт этого. Методика обеспечивает разводку чисел по вариантам. Всего 16 вариантов. Для каждого из вариантов обеспечивается сопоставимость координат чисел, расположенных в системах координат по мод 6, и мод 4.
Уверяю, что такого подхода при  решении данного вопроса в источниках нет.
Уже это, по моему мнению, должно представлять интерес.
Но без программы, ничего не доказать.
Куда я только не обращался!
И на сайты программистов и в МИАМ им. Стеклова и, и, и....
На сайте "Профессионалы", около полутора лет назад, мне удалось найти
программиста алгоритмика Белых Сергея Алексеевича, который написал программу по разработанной методике, которая доказывает её эффективность.
Однако у меня это только болванка.
Но она не  адаптирована  для чисел со значительным количеством разрядов.
Методика,  при завершении программы, по моему убеждению, значительно снижает временные затраты на факторизацию чисел.
Если у Вас, или вашей команды есть интерес по данному вопросу,  могу
переслать  методику файлом для ознакомления..
Если сотрудничество окажется возможным, с удовольствием поделюсь всем багажом, автором которого является и Белых С.А.
Конечно, этим надо болеть, в хорошем смысле - возможны корректировки, добавления.
Ответить можно и на :[email protected]

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Oxidous
Дата 12.10.2015, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 24.9.2015

Репутация: нет
Всего: нет



Боагодарю за ответ и помощь. Уже во всём разобрался и всё сделал. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.