tomsi
25.11.2007, 21:55:12
Mam plik plik.txt w którym mam zapisane liczzby (2,3,5,6,7,9,10,11,13,14) i teraz jak policzyć z nich średnią arytmetyczną, ale tylko tych liczb, które są mniejsze od 10?
Kombinowałem coś z tablicami, że liczby te wpisałem do tablicy i przy pomocy:
$srednia = array_sum($tablica) / count($tablica);
chciałem obliczyć.
phpion
25.11.2007, 21:58:39
<?php
// ciag wszystkich liczb
$liczby = '2,3,5,6,7,9,10,11,13,14';
// podzial ciagu na tablice (jako separator przecinek)
// wyzerowanie zmiennych
$suma = 0;
$liczb = 0;
// petla przez wszystkie elementy tablicy
for ($i=0
, $count=count($expl); $i<$count; $i++) { // jesli aktualny element jest mniejszy od 10
if ((int)$expl[$i] < 10) {
// dopisz go do sumy
$suma += (int)$expl[$i];
// i zwieksz liczbe liczb ;) o jeden
$liczb++;
}
}
// jesli ilosc liczb jest wieksza od 0
if ($liczb > 0) {
// wyswietl srednia
echo 'Srednia: '.($suma/$liczb); }
// w przeciwnym wypadku (czyli gdy nie ma zadnej mniejszej od 10)
else {
// wyswietl komunikat o dzieleniu przez 0
echo 'Dzielenie przez 0'; }
?>
Jarod
25.11.2007, 21:58:51
W jaki sposób podane są te liczby w pliku?
Jeśli w takim jak podałeś łącznie z nawiasami to wczytaj zawartość pliku, obetnij nawiasy - funckja substr(), zastosuje funkcję explode() i pętlą foreach dodawaj do siebie tylko te, które są mniejsze od 10. A później podziel przez ich ilość.
edit: phpion.com mnie uprzedził
tomsi
25.11.2007, 22:04:44
Cytat(phpion.com @ 25.11.2007, 21:58:39 )

<?php
$liczby = '2,3,5,6,7,9,10,11,13,14';
$suma = 0;
$liczb = 0;
for ($i=0
, $count=count($expl); $i<$count; $i++) { if ((int)$expl[$i] < 10) {
$suma += (int)$expl[$i];
$liczb++;
}
}
if ($liczb > 0) {
echo 'Srednia: '.($suma/$liczb); }
else {
echo 'Dzielenie przez 0'; }
?>
Czy mógłbyś mi opisowo wytłumaczyć FOR'a? A po co jest jeszcze potem IF? Czy po to jakby nie było liczb w pliku?
phpion
25.11.2007, 22:06:10
W sumie koncepcja Jaroda jest praktycznie identyczna ale niechaj Ci będzie - wyedytuje swój post z kodem i dodam komentarze.
tomsi
25.11.2007, 22:15:32
Cytat(phpion.com @ 25.11.2007, 22:06:10 )

W sumie koncepcja Jaroda jest praktycznie identyczna ale niechaj Ci będzie - wyedytuje swój post z kodem i dodam komentarze.
Super bardzo mi pomogłeś i bardzo czytelnie napisałeś komentarze, że wiem już teraz wszystko :-)
Dzięki i pozdrawiam
dafy
12.01.2010, 17:45:08
Szukam prostego skryptu, ktory obliczy srednia liczb, ktore uzytkownik wybierze na formularzu (pola radio), wysle do skryptu a on obliczy ich srednia. Liczby w zakresie od 1 do 6.