Untitled

 avatar
unknown
plain_text
2 years ago
3.6 kB
6
Indexable
using System;

namespace Cwiczenie1
{
    class Zbior
    {
        public int[] liczby = new int[] { };       // pole klasy - z polem liczby będącym tablicą int

        public Zbior(int[] z)
        {
            liczby = z;
        }

        public Zbior()
        {
            // uwzględnij zbiór pusty ma to być tablica pusta { } a nie null
            liczby = new int[] { };
        }

        // usuwanie wskazanej wartosci z tablicy
        private static int[] RemoveValFromTab(int[] inTab, int valToRemove)
        {
            int lengthOfOutTable = 0;
            for(int i = 0; i < inTab.Length; i++)
            {
                if (inTab[i] != valToRemove)
                    lengthOfOutTable++;
            }
            int[] outTab = new int[lengthOfOutTable];
            int outTabIndex = 0;
            for(int i = 0; i < inTab.Length; i++)
            {
                if (inTab[i] != valToRemove)
                {
                    outTab[outTabIndex] = inTab[i];
                    outTabIndex++;
                }
            }
            /*Console.WriteLine("Usuwanie elementu: " + valToRemove);
            for (int i = 0; i < outTab.Length; i++)
            {
                Console.Write(outTab[i] + " ");
            }
            Console.WriteLine();*/
            return outTab;
        }

        // ze zbioru liczb z1 usuwa liczby znajdujące się w drugim zbiorze z2
        public static Zbior Metoda4(Zbior z1, Zbior z2)
        {
            bool flagToRemove = false;
            int valueToRemove = 0;

            for(int i = 0; i < z1.liczby.Length; i++)
            {
                flagToRemove = false;
                for (int j = 0; j < z2.liczby.Length; j++)
                {
                    if (z1.liczby[i] == z2.liczby[j])
                    {
                        flagToRemove = true;
                        valueToRemove = z2.liczby[j];
                    }
                }
                if (flagToRemove)
                {
                    Console.WriteLine("Usuwam: " + valueToRemove);
                    z1.liczby = RemoveValFromTab(z1.liczby, valueToRemove);
                }
            }
            return z1;
        }
    }

    class Program
    {
        static void Main(string[] args)
        { /* Zdefiniuj klasę Zbiór - zbiór liczb całkowitych – z polem liczby będącym tablicą int (uwzględnij zbiór
             pusty ma to być tablica pusta { } a nie null). Napisz metodę Zbior Metoda4(Zbior z1, Zbior z2), która ze
             zbioru liczb z1 usuwa liczby znajdujące się w drugim zbiorze z2 np. {1, 1, 2, 3, 4, 5 } oraz {4, 1, 33 } daje
             wynik {2 ,3 ,5}.*/
            Zbior z1 = new Zbior(new int[] { 1, 1, 2, 3, 4, 5 });
            Zbior z2 = new Zbior(new int[] { 4, 1, 33 });

            //wyswietlamy tablice z liczbami przed usuwaniem elementow
            for (int i = 0; i < z1.liczby.Length; i++)
            {
                Console.Write(z1.liczby[i] + " ");
            }
            Console.WriteLine();
            for (int i = 0; i < z2.liczby.Length; i++)
            {
                Console.Write(z2.liczby[i] + " ");
            }
            Console.WriteLine();
            Console.WriteLine();

            z1 = Zbior.Metoda4(z1, z2);
            for (int i = 0; i < z1.liczby.Length; i++)
            {
                Console.Write(z1.liczby[i] + " ");
            }

            Console.ReadKey();
        }
    }
}
Editor is loading...