algorytm.org

Implementacja w C#

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Wyznaczanie dominanty – mody - Implementacja w C#
Ocena użytkownikóww: *****  / 3
SłabyŚwietny
Nadesłany przez Kasia Pastwa, 29 listopada 2013 20:27
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

dominanta.cs:
//Szukanie dominanty - elementu wystepujacego najczesciej
//www.algorytm.org

using System;
using System.Linq;
//biblioteki potrzebne do obsługi zastosowanych funkcji

namespace Dominanta
{
    class Program
    {
        //metoda do pokazywania każdej tablicy
        static public void ShowTable(int[] tab)
        {
            Console.Write("\t{");
            foreach (int i in tab)
            {
                Console.Write(i + " , ");
            }
            Console.Write("}");
            Console.WriteLine();
        }

        //program
        static void Main(string[] args)
        {
            //tablica w ktorej szukamy dominanty
            int[] tab = { 2, 2, 4, 4, 1, 3, 4, 2, 5, 1, 3, 1, 4, 4 }; 
            //tablica wartosci
            int[] L = { };
            //tablica liczby wystapien
            int[] W = { };

            //zlicz wystepowanie poszczegolnych liczb w tablicy tab
            for (int i = 0; i < tab.Length; i++)
            {
                //zapytanie czy zawiera - można też zrobić w pętli
                if (L.Contains(tab[i]))
                {
                    int index = Array.IndexOf(L, tab[i]);
                    W[index] += 1;
                }
                else
                {
                    int l = L.Length + 1;
                    int w = W.Length + 1;
                    Array.Resize(ref L, l); //zmiana wielkości tablicy
                    Array.Resize(ref W, w);
                    L[l - 1] = tab[i];      //dodanie nowej wartości
                    W[w - 1] = 1;
                }
            }

            //poszukaj liczbe najczesciej wystepujaca
            int max = 0;
            int indexmax = 0;
            for (int i = 0; i < W.Length; i++)
            {
                if (W[i] > max)
                {
                    max = W[i];
                    indexmax = i;
                }
            }

            //wypisz wynik
            Console.WriteLine("Dany jest zbiór liczb: ");
            ShowTable(tab);
            Console.WriteLine("Lista liczb występujących w zbiorze: ");
            ShowTable(L);
            Console.WriteLine("Występowanie liczb w zbiorze: ");
            ShowTable(W);
            Console.WriteLine("Dominantą jest liczba " + L[indexmax] + ", pojawia się {0} razy.", max);// różne metody zapisu danych 

            Console.ReadLine();

        }
    }
}
Dodaj komentarz