Ocena użytkownikóww: ***** / 1
Nadesłany przez Dominik Goździuk, 21 lutego 2012 21:24
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.dominanta_1_php.php:
<!--
// Wyznaczanie dominanty – mody
//(c) Dominik Gozdziuk
// www.algorytm.org
-->
<html>
<?php
$tab = Array(5,7,9,5,3,7,5,3,9,5,6,8,5);
$liczby = Array();
$ilosc = Array();
//wypisz zawartosc tablicy
echo "Tablica: ";
for ($i = 0; $i < count($tab); $i++) {
echo "$tab[$i], ";
}
//dla kazdej wartosci w tablicy:
for ($i = 0; $i < count($tab); $i++) {
$temp = $tab[$i];
$found = false;
//szukaj liczby w tablicy 'liczby'
for ($j = 0; $j < count($liczby); $j++) {
//jezeli znaleziono liczbe to zwieksz o jeden ilosc jej wystapien
if ($liczby[$j] == $temp) {
$ilosc[$j] ++;
$found = true;
break;
}
}
//jezeli liczby nie znaleziono w tablicy liczby dodaj ja do niej
if ($found == false) {
$liczby[count($liczby)] = $temp;
$ilosc[count($ilosc)] = 1;
}
}
//szukaj liczby ktora wystapila najwieksza ilosc razy
$dominanta = 0;
$licznik = 1;
for ($i = 1; $i < count($liczby); $i++) {
if ($ilosc[$i] > $ilosc[$dominanta]) {
$dominanta = $i;
$licznik = 1;
}
else if ($ilosc[$i] == $ilosc[$dominanta]) {
++$licznik;
}
}
echo "<br /><br />";
if ($licznik == 1)
echo "Dominanta jest liczba $liczby[$dominanta]. Wystapila $ilosc[$dominanta] razy";
else
echo "Nie ma dominanty";
?>
</html>