Untitled
unknown
plain_text
3 years ago
3.7 kB
9
Indexable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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...