Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace OOOPLab8
- {
- public class Set
- {
- public int[] elements;
- private int count;
- public Set()
- {
- Console.Write("Введите кол-во элементов в множестве: ");
- this.count = Int32.Parse(Console.ReadLine());
- Fill();
- }
- public Set(int[] arr)
- {
- this.elements = new int[0];
- int i = 0;
- while (i < arr.Length)
- {
- Add(arr[i]);
- i++;
- }
- //this.count = elements.Length;
- }
- public void Fill()
- {
- this.elements = new int[0];
- int i = 0;
- while(i < this.count)
- {
- Console.Write($"Введите {i + 1} значение элемента множества: ");
- int n = Convert.ToInt32(Console.ReadLine());
- Add(n);
- i++;
- }
- //this.count = elements.Length;
- }
- public int IndexOf(int x)
- {
- int index = -1;
- for(int j = 0; j < elements.Length; j++)
- {
- if (elements[j] == x) { index = j; };
- }
- return index;
- }
- public void Add(int x)
- {
- Array.Resize(ref elements, elements.Length + 1);
- if (IndexOf(x) != -1)
- {
- Array.Resize(ref elements, elements.Length - 1);
- }
- else { elements[elements.Length - 1] = x; }
- this.count = elements.Length;
- //Array.Resize(ref elements, elements.Length - 1);
- }
- public void ShowSet()
- {
- foreach(int x in elements)
- {
- Console.WriteLine(x);
- }
- }
- public static Set operator ++(Set set1)
- {
- for (int i = 0; i < set1.elements.Length; i++)
- {
- set1.elements[i]++;
- }
- return set1;
- }
- public static Set operator +(Set set1, Set set2)
- {
- int[] setarray = { };
- var set3 = new Set(setarray);
- foreach(int i in set1.elements)
- {
- set3.Add(i);
- }
- foreach (int i in set2.elements)
- {
- set3.Add(i);
- }
- set3.elements = set3.elements.Distinct().ToArray();
- return set3;
- }
- public static Set operator *(Set set1, Set set2)
- {
- int[] match = new int[0];
- var set3 = new Set(match);
- foreach(var i in set1.elements)
- {
- foreach (var j in set2.elements)
- {
- if (i == j)
- {
- set3.Add(i);
- }
- }
- }
- return set3;
- }
- public static Set operator /(Set set1, Set set2)
- {
- int[] match = new int[0];
- var set3 = new Set(match);
- foreach(var i in set1.elements)
- {
- if (!set2.elements.Contains(i))
- {
- set3.Add(i);
- }
- }
- return set3;
- }
- public static bool operator <(Set set1, Set set2)
- {
- if (set1.elements.Length < set2.elements.Length) return true;
- else return false;
- }
- public static bool operator >(Set set1, Set set2)
- {
- if (set1.elements.Length > set2.elements.Length) return true;
- else return false;
- }
- public int this[int i]
- {
- get
- {
- return elements[i];
- }
- set
- {
- elements[i] = value;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement