Простой калькулятор рациональных чисел на C++
Всем доброго времени суток,
Только начал изучать C++ и задали вот такое задание: Напишите программу, которая позволяет совершать математические действия (сложение, вычитание, умножение, деление, сравнение) с рациональными числами. Создайте класс для рациональных чисел.Данные класса - рациональные числа ( числитель и знаменатель). В классе должны быть такие методы: сложение, вычитание, умножение, деление, сравнение (больше, меньше, равно), отрицательное (умножение на -1). Данные методы должны возвращать рациональные числа. Операция сложения a + b при помощи этого класса будет выглядеть так: a.sloz(b); Так же в классе обязательно должны быть методы: ввод и вывод. В общем, нужно написать программу, вида: Ввожу первое рационально число (допустим, 3/4) Ввожу второе рациональное число(допустим 16/33) Выводится результат сложения, вычитания, умножения, деления, сравнения и умножения на -1 введённых рациональных чисел. С целыми числами никаких проблем нет абсолютно, довольно быстро написал консольную программу,но нужно,чтоб было с рациональными числами. Потому очень прошу помочь. Вот то,что я написал с целыми числами: Код:
#include<iostream> |
А в чем сложность то ? Не умеете с дробями работать ?
Сложение / вычитание - приводим к общему знаменателю , и складываем/вычитаем числитель, если возможно сокращаем полученную дробь Умножение/деление - ну тут вообще просто - при умножение перемножаем отдельно числители и знаменатели , a/b*c/d = a*c/b*d деление просто переворачиваем вторую дробь a/b:c/d = a*d/b*c, если возможно сокращаем полученную дробь Сравнение то же не сложно, приводим к общему знаменателю и сравниваем числитель (только знак числа учесть надо) Изменить знак это то же самое что умножить на -1/1 (минус одну первую) Короче элементарная математика, класс 6-7 средней школы по моему ... |
Благодарю! Ваши мысли натолкнули меня на нужный лад.
Всё сделал как нужно. Благодарю за помощь :) |
Часовой пояс GMT +4, время: 23:28. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.