Reuniunea a doua multimi

Configurare noua (How To)

Situatie

Se dau doua multimi de numere intregi memorate cu ajutorul vectorilor. Să se calculeze reuniunea celor două multimi. Reuniunea a doua multimi, A si B,(A U B), reprezinta multimea tuturor elementelor care sunt membri fie ai lui A, fie ai lui B.

Solutie

using System;

namespace _38
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, m;
            //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+m];
            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 pos = n;
            bool find;

            //iteram prin elementele celei de-a doua multimi
            for (int j = 0; j < m; j++)
            {
                find = false;

                //iteram prin elemente primei multimi
                for (int i = 0; i < m; i++)
                {
                    //daca elementul se afla in prima multime, il sarim
                    if (b[j] == a[i])
                    {
                        find = true;
                        break;
                    }
                }
                    //daca elementul nu se repeta, il vom adauga langa elementele din prima multime
                    //si vom incrementa pozitia vectorului final pentru elementul urmator
                    if (!find)
                    {
                        a[pos] = b[j];
                        pos++;
                    }
            }

            Console.WriteLine("Rezultatul reuniunii:");

            n = pos;
            for (int i = 0; i < n; i++)
                Console.WriteLine("{0}", a[i]);

            Console.Read();
        }
    }
}

Tip solutie

Permanent

Voteaza

(9 din 23 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?