Advertisement
gguuppyy

лаба1н3

Sep 30th, 2023 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.35 KB | Source Code | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.     int Numerator1, Denominator1, Numerator2, Denominator2, NumeratorEnd,   DenominatorEnd, Temp;
  7.     bool isIncorrect;
  8.  
  9.     cout << "Эта программа предназначена для того, чтобы складывать 2 рациональные дроби." << endl;
  10.     cout << "Введите числитель и знаменатель первой дроби:" << endl;
  11.  
  12.     do
  13.     {
  14.         isIncorrect = false;
  15.         cout << "Числитель 1: ";
  16.         cin >> Numerator1;
  17.         if (cin.get() != '\n')
  18.         {
  19.             cin.clear();
  20.             while (cin.get() != '\n');
  21.             isIncorrect = true;
  22.             cout << "Введите верные данные!" << endl;
  23.         }
  24.         if (!isIncorrect && Numerator1 == 0)
  25.         {
  26.             isIncorrect = true;
  27.             cout << "Введите верные данные!" << endl;
  28.         }
  29.     }
  30.     while (isIncorrect);
  31.     do
  32.     {
  33.         isIncorrect = false;
  34.         cout << "Знаменатель 1: ";
  35.         cin >> Denominator1;
  36.         if (cin.get() != '\n')
  37.         {
  38.             cin.clear();
  39.             while (cin.get() != '\n');
  40.             isIncorrect = true;
  41.             cout << "Введите верные данные!" << endl;
  42.         }
  43.         if (!isIncorrect && Denominator1 == 0)
  44.         {
  45.             isIncorrect = true;
  46.             cout << "Введите верные данные!" << endl;
  47.         }
  48.     }
  49.     while (isIncorrect);
  50.  
  51.           do
  52.     {
  53.         isIncorrect = false;
  54.         cout << "Числитель 2: ";
  55.         cin >> Numerator2;
  56.         if (cin.get() != '\n')
  57.         {
  58.             cin.clear();
  59.             while (cin.get() != '\n');
  60.             isIncorrect = true;
  61.             cout << "Введите верные данные!" << endl;
  62.         }
  63.         if (!isIncorrect && Numerator2 == 0)
  64.         {
  65.             isIncorrect = true;
  66.             cout << "Введите верные данные!" << endl;
  67.         }
  68.     }
  69.     while (isIncorrect);
  70.     do
  71.     {
  72.         isIncorrect = false;
  73.         cout << "Знаменатель 2: ";
  74.         cin >> Denominator2;
  75.         if (cin.get() != '\n')
  76.         {
  77.             cin.clear();
  78.             while (cin.get() != '\n');
  79.             isIncorrect = true;
  80.             cout << "Введите верные данные!" << endl;
  81.         }
  82.         if (!isIncorrect && Denominator2 == 0)
  83.         {
  84.             isIncorrect = true;
  85.             cout << "Введите верные данные!" << endl;
  86.         }
  87.     }
  88.     while (isIncorrect);
  89.  
  90.     cout << "Дробь 1: " << Numerator1 << '/' << Denominator1 << endl;
  91.     cout << "Дробь 2: " << Numerator2 << '/' << Denominator2 << endl;
  92.  
  93.     DenominatorEnd = Denominator1 * Denominator2;
  94.     NumeratorEnd = Numerator1 * Denominator2 + Numerator2 * Denominator1;
  95.  
  96.     if (NumeratorEnd > DenominatorEnd)
  97.         Temp = DenominatorEnd;
  98.     else
  99.         Temp = NumeratorEnd;
  100.  
  101.     while (Temp > 0)
  102.     {
  103.         if (DenominatorEnd % Temp == 0 && NumeratorEnd % Temp == 0)
  104.         {
  105.             DenominatorEnd /= Temp;
  106.             NumeratorEnd /= Temp;
  107.         }
  108.         Temp--;
  109.     }
  110.  
  111.     cout << "Искомая дробь: " << NumeratorEnd << '/' << DenominatorEnd << endl;
  112.    
  113.     return 0;
  114. }
  115.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement