Advertisement
kasper_k

Set

Dec 14th, 2022
867
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.11 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace OOOPLab8
  8. {
  9.     public class Set
  10.     {
  11.         public int[] elements;
  12.         private int count;
  13.         public Set()
  14.         {
  15.             Console.Write("Введите кол-во элементов в множестве: ");
  16.             this.count = Int32.Parse(Console.ReadLine());
  17.             Fill();
  18.         }
  19.         public Set(int[] arr)
  20.         {
  21.             this.elements = new int[0];
  22.             int i = 0;
  23.             while (i < arr.Length)
  24.             {
  25.                 Add(arr[i]);
  26.                 i++;
  27.             }
  28.             //this.count = elements.Length;
  29.         }
  30.  
  31.         public void Fill()
  32.         {
  33.             this.elements = new int[0];
  34.             int i = 0;
  35.             while(i < this.count)
  36.             {
  37.                 Console.Write($"Введите {i + 1} значение элемента множества: ");
  38.                 int n = Convert.ToInt32(Console.ReadLine());
  39.                 Add(n);
  40.                 i++;
  41.             }
  42.             //this.count = elements.Length;
  43.         }
  44.         public int IndexOf(int x)
  45.         {
  46.             int index = -1;            
  47.             for(int j = 0; j < elements.Length; j++)
  48.             {
  49.                 if (elements[j] == x) { index = j; };
  50.             }
  51.             return index;
  52.         }
  53.         public void Add(int x)
  54.         {
  55.             Array.Resize(ref elements, elements.Length + 1);
  56.             if (IndexOf(x) != -1)
  57.             {
  58.                 Array.Resize(ref elements, elements.Length - 1);              
  59.             }
  60.             else { elements[elements.Length - 1] = x; }
  61.             this.count = elements.Length;
  62.             //Array.Resize(ref elements, elements.Length - 1);
  63.         }
  64.         public void ShowSet()
  65.         {
  66.             foreach(int x in elements)
  67.             {
  68.                 Console.WriteLine(x);
  69.             }            
  70.         }
  71.         public static Set operator ++(Set set1)
  72.         {
  73.             for (int i = 0; i < set1.elements.Length; i++)
  74.             {
  75.                 set1.elements[i]++;
  76.             }
  77.             return set1;
  78.         }
  79.         public static Set operator +(Set set1, Set set2)
  80.         {            
  81.             int[] setarray = { };
  82.             var set3 = new Set(setarray);
  83.             foreach(int i in set1.elements)
  84.             {
  85.                 set3.Add(i);
  86.             }
  87.             foreach (int i in set2.elements)
  88.             {
  89.                 set3.Add(i);
  90.             }
  91.             set3.elements = set3.elements.Distinct().ToArray();
  92.             return set3;
  93.         }
  94.         public static Set operator *(Set set1, Set set2)
  95.         {
  96.             int[] match = new int[0];
  97.             var set3 = new Set(match);
  98.             foreach(var i in set1.elements)
  99.             {
  100.                 foreach (var j in set2.elements)
  101.                 {
  102.                     if (i == j)
  103.                     {
  104.                         set3.Add(i);
  105.                     }
  106.                 }
  107.             }
  108.             return set3;
  109.         }
  110.         public static Set operator /(Set set1, Set set2)
  111.         {
  112.             int[] match = new int[0];
  113.             var set3 = new Set(match);
  114.             foreach(var i in set1.elements)
  115.             {
  116.                 if (!set2.elements.Contains(i))
  117.                 {
  118.                     set3.Add(i);
  119.                 }
  120.             }
  121.             return set3;
  122.         }
  123.         public static bool operator <(Set set1, Set set2)
  124.         {
  125.             if (set1.elements.Length < set2.elements.Length) return true;
  126.             else return false;
  127.         }
  128.         public static bool operator >(Set set1, Set set2)
  129.         {
  130.             if (set1.elements.Length > set2.elements.Length) return true;
  131.             else return false;
  132.         }
  133.         public int this[int i]
  134.         {
  135.             get
  136.             {
  137.                 return elements[i];
  138.             }
  139.             set
  140.             {
  141.                 elements[i] = value;
  142.             }
  143.         }
  144.     }
  145. }
  146.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement