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"; }