algorytm.org

Implementacja w Perl



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 Perl
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Dominik Goździuk, 06 marca 2012 11:31
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

dominanta.pl:
#Dominik Gozdziuk
#Dominanta
#www.algorytm.org

#! /usr/bin/perl

@tab = (); #Tablica zawierajaca wszystkie wprowadzone liczby
@liczby = (); #Tablica wystepujacych liczb (kazda liczba wystepuje tylko raz)
@ilosc = (); #Tablica zawieraca ilosc wystapien kazdej z liczb

#Pobieramy rozmiar tablicy
print "Podaj rozmiar tablicy: ";
$n = <STDIN>;
chomp($n);

#Pobieramy liczby
for ($i = 0; $i < $n; $i++) {
        print "Podaj liczbe: ";
        $tab[$i] = <STDIN>;
        chomp($tab[$i]);
}

$indeks = 0;
$ileLiczb = 0;

for ($i = 0; $i < $n; $i++) {
        $temp = $tab[$i];
        for ($j = 0; $j < $n; $j++) {
                #Jesli liczba znajduje sie w tablicy 'liczby'
                if ($liczby[$j] == $temp) {
                        ++$ilosc[$j]; #Zwiekszamy ilosc jej wystapienia
                        last; #Przerywamy petle
                }
                #Jesli 'j' doszlo do konca tablicy tzn. jesli liczby nie ma w tablicy 'liczby'
                elsif ($j == $n-1) {
                        $liczby[$indeks] = $temp; #Dodajemy ja do tablicy
                        $ilosc[$indeks] = 1; #Ustawiamy ilosc jej wystapien
                        ++$indeks;
                        ++$ileLiczb;
                }
        }
}

$dominanta = 0;
$licznik = 1;

for ($i = 1; $i < $ileLiczb; $i++) {
        if ($ilosc[$i] > $ilosc[$dominanta]) {
                $dominanta = $i;
                $licznik = 1;
        }
        elsif ($ilosc[$i] == $ilosc[$dominanta]) {
                ++$licznik;
        }
}

if ($licznik == 1) {
        print "Dominanta jest liczba $liczby[$dominanta]. Wystapila $ilosc[$dominanta] razy\n";
}
else {
        print "Nie ma dominanty\n";
}
Dodaj komentarz