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

