Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 10:51   #1
lodos
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 39
По умолчанию программа на borland C++.

Всем привет. Нужна ваша помощь. У меня должна получиться программа, которая находит НОК знаменателей, складывает, отнимает, умножает, делит, сраниват дроби, а получается вот это. Я накатал часть программы (сложение дробей), а дальше проблема. Если кто знает скажите, как дальше быть.

Код:
#include "stdafx.h"
#include <conio.h>
using namespace std;
class Fraction{
private:
        int num,den;
public:
        void  Fraction::set(int n, int d){
                num = n;
                den = d;
                normalize();
        }
        int Fraction::get_num(){
                return num;
        }
        int Fraction::get_den(){
                return den;
        }
        int Fraction::lcm(int a, int b){
                return(a/gcf(a,b))*b;
        }
        Fraction Fraction::add(Fraction other){
                Fraction fract;
                int lcd=lcm(den, other.den);
                cout << "den = " << den << endl; // Почему  здесь 2
                cout << "other den = " << other.den << endl; 
                int quot1=lcd/den;
                int quot2=lcd/other.den;
                fract.set(num*quot1+other.num*quot2,lcd);
                fract.normalize();
                return fract;
        }
        Fraction Fraction::mult(Fraction other){
                Fraction fract;
                fract.set(num*other.num,den*other.den);
                fract.normalize();
                return fract;
        }
 
private:
        void Fraction::normalize(){
                if (den==0 || num==0){
                        num = 0;
                        den = 1;
                }
                if (den < 0){
                        num *= -1;
            den *= -1;
                }
                int n = gcf(num, den);
                num = num/n;
                den = den /n;
        }
 
        int Fraction::gcf(int a, int b){
                if (a%b==0)
                        return abs(b);
                else
                        return gcf(b, a%b);
        }
};
int main(){
        Fraction fract1,fract2,fract3;
        int a,a1,b,b1;
        cout << "Vvedite chislitel pervoy drobi: ";
        cin >> a;
        cout << "Vvedite znamenatel pervoy drobi: ";
        cin >> b;
        cout << "Vvedite chislitel vtoroy drobi: ";
        cin >>a1;
        cout << "Vvedite znamenatel vtoroy drobi: ";
        cin >>b1;
 
                fract1.set(a,b);
                fract2.set(a1,b1);
                fract3=fract1.add(fract2);
                cout << a << "/" << b << " plus " << a1 << "/" << b1 << " = ";
                cout << fract3.get_num() << "/" << fract3.get_den();
                cout << endl;
}

Последний раз редактировалось Stilet; 06.05.2011 в 11:12.
lodos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
unable to rename 'C:\ProgramFiles\Borland\Delphi7\Bi n\Delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\ KazBoy Помощь студентам 1 12.04.2011 18:07
не могу запустить ехешник ,Borland 5 и Borland 6 error_13 Общие вопросы C/C++ 0 31.01.2010 14:04
Программа в Borland Delphi 7 NavaR Помощь студентам 1 08.07.2009 13:24
Borland C++ help! Deis Помощь студентам 1 27.03.2009 11:20
Программа в среде "Borland Turbo C++ 3.0" Cubar Помощь студентам 2 10.01.2009 03:24