Форум программистов, компьютерный форум CyberForum.ru

Не могу разобраться как работает программа(сложение дробей) - C++

Восстановить пароль Регистрация
 
Lotles
 Аватар для Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
14.05.2010, 19:04     Не могу разобраться как работает программа(сложение дробей) #1
Допустим ввели :
Числитель первой дроби 1
Знаменатель первой дроби 2
Числитель второй дроби 3
Знаменатель второй дроби 4
Код
#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;
}

Тут вроде
fract1.set(a,b);// den=2
fract2.set(a1,b1);// Здесь вроде должна затираться den и равняться 4
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 19:04     Не могу разобраться как работает программа(сложение дробей)
Посмотрите здесь:

Не могу разобраться как работает данная программа C++
Сложение дробей. C++
Не могу понять как работает программа C++
C++ Не работает программа. не могу разобраться что в ней не так
Сложение дробей C++
C++ Не могу понять, как работает программа
Как работает эта функция? Не могу никак разобраться! C++
Не могу разобраться, как работает программа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru