Spis treści

Kolekcje i algorytmy (Generics)

Collections

Przykład: Lista - losowanie Lotto

using System;
using System.Collections.Generic;
 
namespace Lotto
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> lista = new List<int>();
            for (int i = 1; i <= 49; i++) lista.Add(i);
            Console.WriteLine("Zawartośc kolekcji");
            foreach (int i in lista) Console.Write("{0} ", i);
 
            Console.WriteLine("\n\nSize={0} Capacity={1}", lista.Count, lista.Capacity);
 
            Console.Write("Losowanie Lotto: ");
            Shuffle<int>(lista);
 
            for (int i = 0; i < 6; i++) Console.Write("{0} ", lista[i]);
            Console.WriteLine();
 
            lista.Sort();
        }
 
        public static void Shuffle<T>(List<T> sequence)
        {            
            Random random = new Random();
            for (int i = 0; i < sequence.Count; i += 1)
            {
                int swapIndex = random.Next(sequence.Count);
                if (swapIndex != i)
                {
                    T tmp = sequence[i];
                    sequence[i] = sequence[swapIndex];
                    sequence[swapIndex] = tmp;
                }
            }
        }
    }
}

Przykład: Dictionary (słownik)

using System;
using System.Collections.Generic;
 
namespace Dictionary
{
    class Program
    {
        static void Main(string[] args)
        {
            string line;
            SortedDictionary<string, int> slownik = new SortedDictionary<string, int>();
 
            while ((line = Console.ReadLine()) != null)
            {
                if (!slownik.ContainsKey(line)) slownik.Add(line,1);
                else slownik[line]++;
            }
 
            foreach (KeyValuePair<string, int> kvp in slownik)
                Console.WriteLine("{0} {1}", kvp.Key, kvp.Value);
        }
    }
}

Zadanie - Figury na wykresie

Zaimplementuj klasę o nazwie Wykres realizującą dwuwymiarowy układ współrzędnych. Wykres przechowuje zbiór figur zaimplementowanych na poprzednich zajęciach. Klasa ta stanowi więc pojemnik do którego możemy dodać dowolną liczbę punktów, kół oraz trójkątów. Do przechowywania figur użyj wybranej kolekcji z przestrzeni nazw System.Collections.Generic.
Dla obiektu reprezentującego wykres zaimplementuj: