Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Średnia arytmetyczna
tomsi
post 25.11.2007, 21:55:12
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ć.


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
phpion
post 25.11.2007, 21:58:39
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
Jarod
post 25.11.2007, 21:58:51
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


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ł winksmiley.jpg

Ten post edytował Jarod 25.11.2007, 21:59:25


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
phpion
post 25.11.2007, 22:00:12
Post #4





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




Cytat(Jarod @ 25.11.2007, 23:58:51 ) *
edit: phpion.com mnie uprzedził winksmiley.jpg

cool.gif
Go to the top of the page
+Quote Post
tomsi
post 25.11.2007, 22:04:44
Post #5





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?


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
phpion
post 25.11.2007, 22:06:10
Post #6





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




W sumie koncepcja Jaroda jest praktycznie identyczna ale niechaj Ci będzie - wyedytuje swój post z kodem i dodam komentarze.
Go to the top of the page
+Quote Post
tomsi
post 25.11.2007, 22:15:32
Post #7





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

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


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


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
dafy
post 12.01.2010, 17:45:08
Post #8





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.10.2007

Ostrzeżenie: (0%)
-----


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

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 04:37