Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Średnia arytmetyczna
tomsi
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


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ć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. <?php
  2. // ciag wszystkich liczb
  3. $liczby = '2,3,5,6,7,9,10,11,13,14';
  4. // podzial ciagu na tablice (jako separator przecinek)
  5. $expl = explode(',', $liczby);
  6.  
  7. // wyzerowanie zmiennych
  8. $suma = 0;
  9. $liczb = 0;
  10.  
  11. // petla przez wszystkie elementy tablicy
  12. for ($i=0, $count=count($expl); $i<$count; $i++) {
  13. // jesli aktualny element jest mniejszy od 10
  14. if ((int)$expl[$i] < 10) {
  15. // dopisz go do sumy
  16. $suma += (int)$expl[$i];
  17. // i zwieksz liczbe liczb ;) o jeden
  18. $liczb++;
  19. }
  20. }
  21.  
  22. // jesli ilosc liczb jest wieksza od 0
  23. if ($liczb > 0) {
  24. // wyswietl srednia
  25. echo 'Srednia: '.($suma/$liczb);
  26. }
  27. // w przeciwnym wypadku (czyli gdy nie ma zadnej mniejszej od 10)
  28. else {
  29. // wyswietl komunikat o dzieleniu przez 0
  30. echo 'Dzielenie przez 0';
  31. }
  32. ?>


Ten post edytował phpion.com 25.11.2007, 22:09:21
Go to the top of the page
+Quote Post
tomsi
post
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Cytat(phpion.com @ 25.11.2007, 21:58:39 ) *
  1. <?php
  2. $liczby = '2,3,5,6,7,9,10,11,13,14';
  3. $expl = explode(',', $liczby);
  4.  
  5. $suma = 0;
  6. $liczb = 0;
  7.  
  8. for ($i=0, $count=count($expl); $i<$count; $i++) {
  9. if ((int)$expl[$i] < 10) {
  10. $suma += (int)$expl[$i];
  11. $liczb++;
  12. }
  13. }
  14.  
  15. if ($liczb > 0) {
  16. echo 'Srednia: '.($suma/$liczb);
  17. }
  18. else {
  19. echo 'Dzielenie przez 0';
  20. }
  21. ?>


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?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 01:57