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

Составить программу для сложения дробей - C++

Восстановить пароль Регистрация
 
Ириш
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 15
20.12.2012, 14:59     Составить программу для сложения дробей #1
Даны две дроби А/В и С/Д (А,В,С,Д - натуральные числа). Составить программу для сложения этих дробей. Результат должен быть несократимой дробью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 14:59     Составить программу для сложения дробей
Посмотрите здесь:

C++ Перегрузить операцию сложения для класса дробей
C++ Написать функции вычисления сложения, вычитания, умножения и деления дробей
Составить программу,которая печатает таблицу умножения и сложения натуральных чисел в десятичной системе счисления на пять C++
C++ Составить программу,которая печатает таблицу умножения и сложения натуральных чисел в шестнадцатеричной системе счисления
Организовать производный класс, содержащий функции вычисления сложения и вычитания дробей, исходники есть C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
20.12.2012, 17:28     Составить программу для сложения дробей #2
Нажми
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
24.12.2012, 01:10     Составить программу для сложения дробей #3
C++
1
2
3
{
  rez=(a*d+c*b)/b*d;
}
вроди так
ну или вот так
C++
1
2
3
4
5
6
{
  rez1=(a*d+c*b);
  rez2=b*d;
  cout<<rez1<<"/"<<rez2;
 
}
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
26.12.2012, 00:49     Составить программу для сложения дробей #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stdafx.h"
#include <clocale>
#include <iostream>
#include <cmath>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
 
    double a,b,c,d,f;
 
    cout<<"Введите a: "<<"\n";
    cin>>a;
    cout<<"Введите b: "<<"\n";
    cin>>b;
    cout<<"Введите c: "<<"\n";
    cin>>c;
    cout<<"Введите d: "<<"\n";
    cin>>d;
 
    cout<<"Результат дроби: "<<a/b + c/d<<"\n";
    
        system("pause");
        return 0;
}
Добавлено через 14 секунд
Плохо такое не знать)))
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
26.12.2012, 01:53     Составить программу для сложения дробей #5
Цитата Сообщение от faLek Посмотреть сообщение
[CPP]#include "stdafx.h"

Добавлено через 14 секунд
Плохо такое не знать)))
Результат должен быть несократимой дробью, плохо на такое не обращать внимание

Добавлено через 14 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cmath>
#include <cstdlib>
#include <iostream>
int nod (int a, int b)
{
    return b ? nod (b, a % b) : a;
    //while ((a %= b) && (b %= a));
    //return a | b;
}
using namespace std;
int main ()
{
    int a, b, c, d;
    cout << "a, b, c,d? "<<endl;
           cin >>a>>b>>c>>d;
    chisl=a*d+b*c;
    int znam=c*d;
    //cout << chisl<<endl<<znam<<endl<<nod(chisl, znam)<<endl; // для понимания можно расскоментировать
    cout << "Rez="<<chisl/nod(chisl, znam)<<"/"<<znam/nod(chisl, znam);
    return 0;;
}

и нужно
C++
1
2
3
do {
    cin >>a>>b>>c>>d;
    }while (a==0||b==0||c==0||d==0);
в качестве проверки корректности ввода
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
26.12.2012, 02:36     Составить программу для сложения дробей #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;
int nod(int a, int b) {
    int r;
    if(a<b) {r=a; a=b; b=r;}
    while (r=a%b) {a=b; b=r;}
    return b;
}
int main() {
    int a,b,c,d,f,g,h;
 
    cout << "Input a: ";
    cin >> a;
    cout << "Input b: ";
    cin >> b;
    cout << "Input c: ";
    cin >> c;
    cout << "Input d: ";
    cin >> d;
 
    if(b<0) {a=-a; b=-b;}
    if(d<0) {c=-c; d=-d;}
    f = nod(b,d);
    g = d/f*a+b/f*c;
    h = b/f*d;
    f = nod(g,h);
    g /= f;
    h /= f;
    if(h==1)
        cout << "Result: " << g << endl;
    else
        cout << "Result: " << g << " / " << h << endl;
    return 0;
}
Добавлено через 24 минуты
Без переполнения проходит следующий тест:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{123456}{2315671}-\frac{12345}{513517}=\frac{3592713}{122730563}
Yandex
Объявления
26.12.2012, 02:36     Составить программу для сложения дробей
Ответ Создать тему
Опции темы

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