Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- int Numerator1, Denominator1, Numerator2, Denominator2, NumeratorEnd, DenominatorEnd, Temp;
- bool isIncorrect;
- cout << "Эта программа предназначена для того, чтобы складывать 2 рациональные дроби." << endl;
- cout << "Введите числитель и знаменатель первой дроби:" << endl;
- do
- {
- isIncorrect = false;
- cout << "Числитель 1: ";
- cin >> Numerator1;
- if (cin.get() != '\n')
- {
- cin.clear();
- while (cin.get() != '\n');
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- if (!isIncorrect && Numerator1 == 0)
- {
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- }
- while (isIncorrect);
- do
- {
- isIncorrect = false;
- cout << "Знаменатель 1: ";
- cin >> Denominator1;
- if (cin.get() != '\n')
- {
- cin.clear();
- while (cin.get() != '\n');
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- if (!isIncorrect && Denominator1 == 0)
- {
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- }
- while (isIncorrect);
- do
- {
- isIncorrect = false;
- cout << "Числитель 2: ";
- cin >> Numerator2;
- if (cin.get() != '\n')
- {
- cin.clear();
- while (cin.get() != '\n');
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- if (!isIncorrect && Numerator2 == 0)
- {
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- }
- while (isIncorrect);
- do
- {
- isIncorrect = false;
- cout << "Знаменатель 2: ";
- cin >> Denominator2;
- if (cin.get() != '\n')
- {
- cin.clear();
- while (cin.get() != '\n');
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- if (!isIncorrect && Denominator2 == 0)
- {
- isIncorrect = true;
- cout << "Введите верные данные!" << endl;
- }
- }
- while (isIncorrect);
- cout << "Дробь 1: " << Numerator1 << '/' << Denominator1 << endl;
- cout << "Дробь 2: " << Numerator2 << '/' << Denominator2 << endl;
- DenominatorEnd = Denominator1 * Denominator2;
- NumeratorEnd = Numerator1 * Denominator2 + Numerator2 * Denominator1;
- if (NumeratorEnd > DenominatorEnd)
- Temp = DenominatorEnd;
- else
- Temp = NumeratorEnd;
- while (Temp > 0)
- {
- if (DenominatorEnd % Temp == 0 && NumeratorEnd % Temp == 0)
- {
- DenominatorEnd /= Temp;
- NumeratorEnd /= Temp;
- }
- Temp--;
- }
- cout << "Искомая дробь: " << NumeratorEnd << '/' << DenominatorEnd << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement