Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
#1

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

14.05.2010, 19:04. Просмотров 724. Ответов 0
Метки нет (Все метки)

Допустим ввели :
Числитель первой дроби 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 19:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу разобраться как работает программа(сложение дробей) (C++):

Не могу разобраться, как работает программа? - C++
Исходники программы, которая решает пятнашки. Пока были функции, было просто, но потом пошли классы, и непонятно, что выполняется, какой...

Не могу разобраться, как работает программа - C++
Препод сегодня рассказывал но я очень спать хотел и не понял помогите как это роботает #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Не могу разобраться как работает данная программа - C++
Помогите пожалуйста разобраться как работает данная программа ниже дано задание и готовый листинг. Я запутался тут с этими указателями. ...

Не работает программа. не могу разобраться что в ней не так - C++
Не работает программа. Не могу разобраться что в ней не так. Программа на вызов функций Н, а, б, с в соответствии с заданием. Заранее...

Не могу разобраться как работает код - C++
#define HUGE 10000 char st; int dyn; int min(int a, int b) { if (a &gt; b) return a; else

Не могу понять, как работает программа - C++
Здравствуйте, непонятны некоторые функции программы. Спасибо. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2010, 19:04
Привет! Вот еще темы с ответами:

Не могу понять как работает программа - C++
Здравствуйте люди.Помогите понять как работают фнкции в программе(см. ниже). Учусь по книге Стефана Девидса С++ для чайников 4-е и 5-е...

Сложение дробей. - C++
Я хочу сложить массив дробей. Числитель у меня один массив а знаменательль другой массив. Если бы у меня небыло дробей можно было бы...

сложение дробей - C++
Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить функцию сложения этих дробей. Ответ должен быть несократимой дробью.

Сложение дробей - C++
Как сложить две дроби? #include&lt;iostream&gt; using namespace std; class Drob { private: float chislet, znamenat;


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru