Informatică, întrebare adresată de Palmabil, 9 ani în urmă

David a învățat de curând la școală ce înseamnă o mulțime de numere naturale și ce operații se pot face pe mulțimi. Printre operațiile învățate, lui David i s-au părut interesante operația de reuniune a două mulțimi și operația de intersecție a două mulțimi, așa că el, fiind pasionat de informatică, s-a gândit să implementeze cele două operații pentru două mulțimi. Mulțimile sunt formate din numere consecutive. Prima mulțime este formată din N numere naturale consecutive și începe cu P1, respectiv a doua mulțime este formată din M numere naturale și începe cu P2.
Cunoscând N, P1, M și P2 se cere:
a) Să se afișeze reuniunea celor două mulțimi.
b) Să se afișeze intersecția celor două mulțimi.

Răspunsuri la întrebare

Răspuns de uleiaalex
1
using System;
namespace Operatii_Multimi
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int p1 = int.Parse(Console.ReadLine());
            int[] v1 = new int[n];
            v1[0] = p1;
            for (int i = 1; i < n; i++)
            {
                v1[i] = v1[i - 1] + 1;
            }
            int m = int.Parse(Console.ReadLine());
            int p2 = int.Parse(Console.ReadLine());
            int[] v2 = new int[m];
            v2[0] = p2;
            for (int i = 1; i < m; i++)
            {
                v2[i] = v2[i - 1] + 1;
            }
            ////////////////////////////////////////////////////////
            Console.WriteLine("Multime 1:");
            for (int i = 0; i < n; i++)
            {
                Console.Write(v1[i]+" ");
            }
            ///////////////////////////////////////////////////////
            Console.WriteLine();
            ///////////////////////////////////////////////////////
            Console.WriteLine("Multime 2:");
            for (int i = 0; i < m; i++)
            {
                Console.Write(v2[i] + " ");
            }
            Console.WriteLine();
            ///////////////////////////////////////////////////////////////
            Console.WriteLine("Intersectie:");
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (v1[i]==v2[j])
                        Console.Write(v1[i] + " ");
                }
            }
            Console.WriteLine();
            /////////////////////////////////////////////////////////
            Console.WriteLine("Reuniune:");
            int x = 0;
            int y = 0;

            while (y < m && x < n)
            {
                 if (v1[x] < v2[y])
                 {
                      Console.Write(v1[x] + " ");
                      x++;
                 }
                 else if (v1[x] == v2[y])
                 {
                      Console.Write(v1[x] + " ");
                      x++;
                      y++;
                 }
                 else if (v1[x] > v2[y])
                 {
                      Console.Write(v2[y] + " ");
                      y++;
                 }
               } 
               if (v1[n-1] > v2[m-1]) 
               {
                    for (int i = x; i < n; i++)
                    {
                        Console.Write(v1[i] + " ");
                    }
                }
                else
                {
                    for (int i = y; i < m; i++)
                    {
                        Console.Write(v2[i] + " ");
                    }
                }
           ////////////////////////////////////////////////////////// 
           Console.ReadKey();
        }
    }
}


Palmabil: Ce limbaj e? de asemenea intrarea si iesirea trebuie sa arate asa Exemplul 1:
multimi2.in
1
3 4 3 5
multimi2.out
4 5 6 7
Explicație
p = 1
Prima mulțime este {4,5,6}, iar a doua {5,6,7}.
Reuniunea celor două mulțimi reprezintă elementele care aparțin cel puțin unei mulțimi.
Atenție! Pentru acest test se rezolvă doar cerința a).
Exemplul 2:
multimi2.in
2
3 4 3 5
multimi2.out
5 6
uleiaalex: este in c#, nu e cu fisiere ci cu introducere de la tastatura
uleiaalex: daca dotesti ii pun si in si out dar poti face tu in c++, eu am facut algoritmul, scuze
Alte întrebări interesante