Intersectia a doua multimi

Configurare noua (How To)

Situatie

Sa se calculeze intersectia a două multimi de numere reale reprezentate cu ajutorul vectorilor.

Intersectia a doua multimi, A si B,(A ∩ B), reprezinta multimea tuturor elementelor care sunt membri comuni

Solutie

using System;

namespace _40
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, m, pos = 0;
            bool empty = true;
            //numarul maxim de elemente pentru prima multime
            Console.WriteLine("Introduceti cardinalitatea primei multimi:");
            n = int.Parse(Console.ReadLine());
            //numarul maxim de elemente pentru a doua multime
            Console.WriteLine("Introduceti cardinalitatea celei de a doua multimi:");
            m = int.Parse(Console.ReadLine());
            //declararea celor doua vectori
            float[] a = new float[n];
            float[] b = new float[m];
            //elementele din prima multime
            Console.WriteLine("Introduceti elementele primei multimi:");
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("A[{0}]=", i);
                a[i] = float.Parse(Console.ReadLine());
            }
            //elementele din a doua multime
            Console.WriteLine("Introduceti elementele celei de a doua multimi:");
            for (int i = 0; i < m; i++)
            {
                Console.WriteLine("B[{0}]=", i);
                b[i] = float.Parse(Console.ReadLine());
            }
            int p = Math.Min(n,m);
            //vectorul care va contine elementele comune va avea 
            //ca numar maxim de elemente minimul de elemente dintre cele doua multimi
            float[] intersection = new float[p];
            
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (a[i] == b[j])
                    {
                        intersection[pos] = a[i];
                        pos++;
                        empty = false;
                    }
                }
            }
            Console.WriteLine("Rezultatul intersectiei:");
            if (empty)
                Console.WriteLine("Multimea vida");
            else
            {
                for (int i = 0; i < pos; i++)
                    Console.WriteLine("{0}", intersection[i]);
            }

            Console.Read();
        }
    }
}

Tip solutie

Permanent

Voteaza

(13 din 27 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?