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
emtiej
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Próbowałem to zrobić w taki sposób:

  1.  
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  5. </head>
  6. <body alink="#000099" bgcolor="#000000" dir="ltr" link="#000099" text="#ffffff" vlink="#990099">
  7. <?php
  8.  
  9. $liczba_podana = $_GET['liczba'];
  10. $suma = 0;
  11. $koniec = 0;
  12.  
  13. for($i=1;$i>=$koniec;$i++)
  14. {
  15. echo "Wykonanie";
  16. $skl1 = 1/$i; //ostatni "skladnik"
  17. if($i!=1) // zabezpieczenie przed dzieleniem przez 0
  18. {
  19. $skl2 = 1/$i-1; //przedostatni "skladnik"
  20. }
  21. if($i==1)
  22. {
  23. $skl2 = 1;
  24. }
  25. $suma=$suma+$skl1;
  26. if(($skl2-$skl1)<$liczba_podana)
  27. {
  28. break;
  29. }
  30. }
  31.  
  32. echo "Suma wynosi $suma";
  33. ?>
  34. </body>
  35. </html>
  36.  


Coś tam zaczyna liczyć, ale przerywa na 1,5 nie wiem dlaczego, wykonuje się tylko 3 razy, dopracuj, przypatrz się może to ci pomoże, ja muszę lecieć i nie mam czasu go dokończyć (IMG:style_emoticons/default/smile.gif) Zrobiłem to na pętli nieskończonej a w środku jest instrukcja break która przerywa jej wykonanie, kiedy warunek się spełni.
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 06:29