Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Błędny wynik skryptu php
Dym71
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.01.2010

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


Witam Was wszystkich (IMG:style_emoticons/default/smile.gif)
Jestem tu nowy, przed chwilą się zarejestrowałem ponieważ mam problem z PHP.

Mam za zadanie zsumować kolejne wyrażenia postaci 1/n (gdzie n=1,2,3,…). Sumowanie należy zakończyć gdy różnica dwóch ostatnio dodanych składników będzie mniejsza od podanej z formularza liczby (np. 0,0001).

Napisałem kod ale gdzieś jest błąd (możliwe że wszędzie dopiero zaczynam pisać w php (IMG:style_emoticons/default/wstydnis.gif) ) ponieważ jakiej liczby (różnicy) bym nie podał suma wychodzi mi zero.

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  4. </head>
  5. <body alink="#000099" bgcolor="#000000" dir="ltr" link="#000099" text="#ffffff" vlink="#990099">
  6. <?php
  7. $z=$_GET['z'];
  8. $p=-1;
  9. $suma=0;
  10. for($i=1;$i==$p;++$i)
  11. {
  12. $pam=1/i;
  13. $suma=$suma+$pam;
  14. $pom=1/(i+1);
  15. $roz=$pam-$pom;
  16. if ($roz<$z)
  17. {
  18. $i=-1;
  19. };
  20. };
  21. echo "Suma wynosi $suma";
  22. ?>
  23. </body>
  24. </html>


Z góry dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Volume
post
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


Cytat
No niestety, chyba źle rozumiem składnię pętli.
Skoro $i=1 a $p=1000 to bez modyfikacji $i w środku pętli pętla powinna wykonać się 999 razy (albo 1000 już nie pamiętam ) czy tak?
Jeżeli tak to skoro mam umieścić $i=-1 lub $i=1000 zależnie od wersji poza pętlą to jak mam ją kontrolować/przerwać (tzn. chodzi mi o przerwanie jej działania w odpowiednim momencie)?

Nie bradzo o to chodzi
  1. $p=1000;
  2. $suma=0;
  3. for($i=1;$i==$p;++$i)
  4. {...

pierwsze wyrazenie w petli for mowi od jakiej wartosci ma zaczac pozniejsze pokazwyanie wyniku w petli, drugie wyrazenie ile ma byc wykonanych powtorzen ale w tej postaci co Ty napisales to jest w ogole tu bez sensu gdyz ten opertor == jest to operator porownania (np. $a==$b znaczy ze prawda jeśli $a jest równe $b). W przypadku gdy np bys to zapisal w psotaci $i=$p byloby juz bardziej sensownie - ale wtedy petla by sie wykonala nieskonczona ilosc razy - dlatego trzeba jej dac do zrozumienia zeby w koncu sie zatrzymala dlatego nalezy dac zapis np. $i<$p czyli dla Twojego przykladu petla wykona sie 1000 razy jesli $p bedzi erowne 10 to 10 razy (oczywiscie wzgledem pierwszego wyrazenia jesli byloby rowne 0 ($i=0)) itd. Natomiast 3 wyrazenie mowi o ile ma sie zwiekszac wynik w petli. Takze kombinuj.

Obadaj podstawy: http://phpkurs.pl/operatory/ i http://phpkurs.pl/struktury/#struktury.for

Ten post edytował Volume 24.01.2010, 14:05:12
Go to the top of the page
+Quote Post

Posty w temacie
- Dym71   [PHP] Błędny wynik skryptu php   24.01.2010, 13:21:27
- - qrzysztof   Dzieje się tak bo nie wygląda na to żebyś do tej p...   24.01.2010, 13:27:07
|- - Dym71   Cytat(qrzysztof @ 24.01.2010, 13:25:2...   24.01.2010, 13:30:10
- - Volume   Poza tym co napisal qrzysztof to w petli przy ...   24.01.2010, 13:29:05
- - qrzysztof   To przypisanie $i=-1 musiałbyś gdzieś poza pę...   24.01.2010, 13:32:28
|- - Dym71   Cytat(qrzysztof @ 24.01.2010, 13:32:2...   24.01.2010, 13:45:29
- - qrzysztof   Jeśli chciałbyś żeby wykonała się 999 razy to musi...   24.01.2010, 13:49:13
- - Volume   CytatNo niestety, chyba źle rozumiem składnię pętl...   24.01.2010, 13:57:36
- - Dym71   Kurcze, próbowałem z tą pętlą for i wydaje mi się ...   24.01.2010, 14:46:19
- - emtiej   Próbowałem to zrobić w taki sposób: [PHP] pobierz...   24.01.2010, 14:51:56
- - Szeszek1992   [PHP] pobierz, plaintext <?php$dokladnosc=0.2;$...   24.01.2010, 15:03:39
|- - Dym71   Cytat(Szeszek1992 @ 24.01.2010, 15:03...   24.01.2010, 15:28:23
- - Szeszek1992   [PHP] pobierz, plaintext <?phpecho '<form ac...   24.01.2010, 15:38:31
|- - Dym71   Cytat(Szeszek1992 @ 24.01.2010, 15:38...   24.01.2010, 16:10:11
- - emtiej   Skrypt śmiga, register_globals dla bezpieczeństwa ...   24.01.2010, 16:59:47
- - Szeszek1992   Tak dla pewności: Nazwa pliku skryptu musi być tak...   24.01.2010, 17:05:40
- - Dym71   Niestety nawet dając tylko echo $_POST['z...   24.01.2010, 17:54:26
- - Szeszek1992   W zad7.php popraw to, co masz w <form>(zmień...   24.01.2010, 18:06:44
- - Dym71   Dziękuję Wam wszystkim za pomoc, wszystko śmiga. N...   24.01.2010, 19:27:40


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: 15.10.2025 - 08:02