madalinaradu

Algebra tema1 operatii cu multimi

Oct 14th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //operatii cu multimi reuniune....diferenta simetrica
  4. void citiremultime (int n,float a[])
  5. {
  6.  
  7.  
  8.     int i;
  9.     for(i=0;i<n;i++)
  10.     {
  11.         printf("citeste elementul %d = ",i);
  12.         scanf("%f",&a[i]);
  13.     }
  14. }
  15.  
  16.  
  17. void afisaremultime (int n,float a[])
  18. {
  19.     int i;
  20.     printf("{");
  21.     for (i=0;i<n;i++)
  22.     {
  23.         printf("%.2f, ",a[i]);
  24.     }
  25.     printf("}\n");
  26. }
  27.  
  28. /*testeaza x din A*/
  29. int apartine(int n, float a[], float x)
  30. {
  31.    int i;
  32.    for(i=0;i<n;i++)
  33.    {
  34.        if(x == a[i])
  35.        {
  36.          return 1;
  37.        }
  38.  
  39.    }
  40.    return 0;
  41. }
  42.  
  43. int main()
  44. {
  45.  
  46.     int i,n,m,p;
  47.     float a[20];
  48.     float b[20];
  49.     float c[40];
  50.  
  51.  
  52.     printf("citim numarul de elemente din multime al multimii A: ");
  53.     scanf("%d",&n);
  54.  
  55.     citiremultime(n,a);
  56.  
  57.     afisaremultime(n,a);
  58.  
  59.     printf("citim numarul de elemente din multime al multimii B: ");
  60.     scanf("%d",&m);
  61.  
  62.     citiremultime(m,b);
  63.  
  64.     afisaremultime(m,b);
  65.  
  66.     //copiem toate elementele din A si le punem in multimea C reuniune
  67.  
  68.     for(i=0;i<n;i++)
  69.     {
  70.         c[i]= a[i];
  71.     }
  72.     p=n; //p retine numarul de elemente din C
  73.  
  74.     //verificam toate elementele din B, daca nu apartin lui A, le adaugam la C.
  75.  
  76.     for(i=0;i<m;i++)
  77.     {
  78.         if(!apartine(n,a,b[i]))
  79.         {
  80.            c[p]=b[i];
  81.            p++;
  82.         }
  83.     }
  84.     printf("reuniunea este: ");
  85.     afisaremultime(p,c);
  86.  
  87.  
  88. //calculam intersectia
  89.     p=0;
  90.     for(i=0;i<n;i++)
  91.     {
  92.         if(apartine(n,b,a[i]))
  93.         {
  94.             c[p]=a[i];
  95.             p++;
  96.         }
  97.     }
  98.  
  99.     printf("intersectia este: ");
  100.     afisaremultime(p,c);
  101.  
  102.     //calculam diferenta A/B
  103.     p=0;
  104.     for(i=0;i<n;i++)
  105.     {
  106.         if(!apartine (n,b,a[i]))
  107.         {
  108.             c[p]=a[i];
  109.             p++;
  110.         }
  111.     }
  112.  
  113.     printf("diferenta A/B este: ");
  114.     afisaremultime(p,c);
  115.  
  116.     //calculam diferenta B/A
  117.     p=0;
  118.     for(i=0;i<n;i++)
  119.     {
  120.         if(!apartine (n,a,b[i]))
  121.         {
  122.             c[p]=b[i];
  123.             p++;
  124.         }
  125.     }
  126.  
  127.     printf("diferenta B/A este: ");
  128.     afisaremultime(p,c);
  129.  
  130.     //calculam diferenta simetrica A/\B
  131.     p=0;
  132.     for(i=0;i<n;i++)
  133.     {
  134.         if(!apartine (n,b,a[i]))
  135.         {
  136.             c[p]=a[i];
  137.             p++;
  138.         }
  139.     }
  140.  
  141.     for(i=0;i<n;i++)
  142.     {
  143.         if(!apartine (n,a,b[i]))
  144.         {
  145.             c[p]=b[i];
  146.             p++;
  147.         }
  148.     }
  149.  
  150.     printf("diferenta A/\B este: ");
  151.     afisaremultime(p,c);
  152.     return 0;
  153. }
Advertisement
Add Comment
Please, Sign In to add comment