bogdanNiculeasa

Suma a doua fractii

Jan 18th, 2023
915
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.78 KB | None | 0 0
  1. #include <iostream>
  2. #include<string.h>
  3. #include <ctype.h>
  4. using namespace std;
  5.  
  6. int calculareNumitorComun(int numitor1, int numitor2);
  7. int cmmdc(int a, int b);
  8. int minimum(int a, int b);
  9.  
  10. struct fractie {
  11.     int numarator;
  12.     int numitor;
  13. } f1, f2;
  14.  
  15. int main()
  16. {
  17.     int numarator1, numarator2, numitor1, numitor2;
  18.     cout << "Introdu numarator1:";
  19.     cin >> numarator1;
  20.     cout << "Introdu numitor1:";
  21.     cin >> numitor1;
  22.     cout << "Introdu numarator2:";
  23.     cin >> numarator2;
  24.     cout << "Introdu numitor2:";
  25.     cin >> numitor2;
  26.  
  27.     //struct fractie f1, f2;
  28.     f1.numarator = numarator1;
  29.     f1.numitor = numitor1;
  30.     f2.numarator = numarator2;
  31.     f2.numitor = numitor2;
  32.  
  33.     struct fractie rezultat;
  34.     int numitorComun = calculareNumitorComun(numitor1, numitor2);
  35.  
  36.    
  37.     rezultat.numarator = (numitorComun / numitor1) * numarator1 + (numitorComun / numitor2) * numarator2;
  38.     rezultat.numitor = numitorComun;
  39.  
  40.     cout << "Rezultat: " << rezultat.numarator << " / " << rezultat.numitor;
  41.     return 0;
  42. }
  43.  
  44. int cmmdc(int a, int b) {
  45.     int rest;
  46.     while (b != 0) {
  47.         rest = a % b;
  48.         a = b;
  49.         b = rest;
  50.     }
  51.     return a;
  52. }
  53.  
  54. int calculareNumitorComun(int numitor1, int numitor2) {
  55.     int rezultat;
  56.     if (numitor1 % numitor2 == 0) {
  57.         rezultat = numitor1;
  58.     }
  59.     else if (numitor2 % numitor1 == 0) {
  60.         rezultat = numitor2;
  61.     }
  62.     else {
  63.         int min = minimum(numitor1, numitor2);
  64.         for (int i = min;;i++) {
  65.             if (i % numitor1 == 0 && i % numitor2 == 0) {
  66.                 rezultat = i;
  67.                 break;
  68.             }
  69.         }
  70.     }
  71.     return rezultat;
  72. }
  73.  
  74. int minimum(int a, int b) {
  75.     if (a > b) {
  76.         return b;
  77.     }
  78.     else {
  79.         return a;
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment