Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] sumowanie
Forum PHP.pl > Forum > Przedszkole
czaro123
Witam, mam problem natury "logicznej", którego nie mogę przeskoczyć. kod poniżej:
  1. $a = 200;
  2. $c = 220;
  3. $e = array(5,4,2,6,8,4,7,7,7,2,4,3,5,7,6,9,6,8,1,1,1,5,4,4);
  4. $f = count($e);
  5.  
  6. for ($i=0; $i<$f; $i++){
  7. if ($a>$c){
  8. $b = $a;
  9. }
  10. else{
  11. $b = $a + $e[$i];
  12. }
  13. }
  14.  
  15. print_r($b);


idea jest następująca: FOR ma sprawdzać czy $a jest większe od $c. jeśli jest większe to nic nie robimy. jeśli jest mniejsze to do $a należy dodawać kolejne argumenty z tablicy $e, aż $a będzie większe. czyli powinno być 200 + 5+4+2+6+8. i tutaj powinna się pętla zatrzymać i podać wynik $b = 225. powyższy kod sprawdza czy $a jest większe od $c i dodaje kolejną wartość do $a - wynik to $b=200 + 4 (ostatnia $i z tablicy $e) - to jest dla mnie w zupełności logiczne ale nie potrafie dojść gdzie i jak powinienem w ten kod wstawić warunek mówiący aby dodawać kolejny argument z $e, biorąc pod uwagę dodawanie poprzedniego argumentu. prośba o podpowiedź.
ważne założenia: 1. ilość agrumentów w $e nie jest znana - stąd $f - 2. zsumowanie wszystkich argumentów z $e i dodanie ich do $a może być mniejsza niż zakładana wartość $c. z góry dziękuję za pomoc.
nospor
Mowisz o a, zwiekszasz b..... gdzie tu logika?

  1. $b = $a;
  2. for ($i=0; $i<$f; $i++){
  3.  
  4. if ($b>$c){
  5.  
  6. break;
  7.  
  8. }
  9.  
  10. else{
  11.  
  12. $b += $e[$i];
  13.  
  14. }
  15.  
  16. }
Daimos
cały czas porównujesz tylko $a, a działasz na zmiennej $b
if ($a>$c) -> ten warunek nigdy nie będzie spełniony. Przecież musisz faktycznie w else, dodać coś do tego $a, albo porównywać zmienną $b

byłem szybszy, ale nospor pewnie przeniósł swój post wyżej!
wink.gif
czaro123
wielkie dzięki za pomoc. $b to wynik który służy do dalszych obliczeń. już rozumiem swój błąd
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.