Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] sumowanie
czaro123
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 20.01.2014

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


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





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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. }
Go to the top of the page
+Quote Post
Daimos
post
Post #3





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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!
(IMG:style_emoticons/default/wink.gif)
Powód edycji: Nie kłam, bo zabiję Ci robaka :)
Go to the top of the page
+Quote Post
czaro123
post
Post #4





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 20.01.2014

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


wielkie dzięki za pomoc. $b to wynik który służy do dalszych obliczeń. już rozumiem swój błąd
Go to the top of the page
+Quote Post

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: 17.09.2025 - 16:42