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





Grupa: Zarejestrowani
Postów: 117
Pomógł: 29
Dołączył: 20.05.2009

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


  1. <?php
  2. echo '<form action="index.php" method="post"><input type="text" name="z"><input type="submit" value="Wyślij"></form><br>';
  3. if(isset($_POST['z']))
  4. {
  5. if($_POST['z']>0)
  6. {
  7. $dokladnosc=$_POST['z'];
  8. $s2=1;
  9. $suma=0;
  10. $i=1;
  11. $roznica=1.00000000001;//Tak na wszelki wypadek, jakby ktoś dał dokładność >1;)
  12. while($roznica>$dokladnosc)
  13. {
  14. $suma=$suma+$s2;
  15. $s1=$s2;
  16. $i++;
  17. $s2=1/$i;
  18.  
  19. $roznica=$s1-$s2;
  20. }
  21. echo $suma;
  22. }else echo 'Nieprawidłowe dane';//Zapętliłoby się, jeśli ktoś dałby 0
  23. }
  24. ?>

Dorobiłem formularz do swego kodu;) Działa na pewno, testowałem. Nie zapomnij, że w PHP część ułamkową oddzielamy kropką, a nie przecinkiem.

PS $dokladnosc możesz zamienić na $z

Ten post edytował Szeszek1992 24.01.2010, 15:41:03
Go to the top of the page
+Quote Post
Dym71
post
Post #3





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

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


Cytat(Szeszek1992 @ 24.01.2010, 15:38:31 ) *
  1. <?php
  2. echo '<form action="index.php" method="post"><input type="text" name="z"><input type="submit" value="Wyślij"></form><br>';
  3. if(isset($_POST['z']))
  4. {
  5. if($_POST['z']>0)
  6. {
  7. $dokladnosc=$_POST['z'];
  8. $s2=1;
  9. $suma=0;
  10. $i=1;
  11. $roznica=1.00000000001;//Tak na wszelki wypadek, jakby ktoś dał dokładność >1;)
  12. while($roznica>$dokladnosc)
  13. {
  14. $suma=$suma+$s2;
  15. $s1=$s2;
  16. $i++;
  17. $s2=1/$i;
  18.  
  19. $roznica=$s1-$s2;
  20. }
  21. echo $suma;
  22. }else echo 'Nieprawidłowe dane';//Zapętliłoby się, jeśli ktoś dałby 0
  23. }
  24. ?>

Dorobiłem formularz do swego kodu;) Działa na pewno, testowałem. Nie zapomnij, że w PHP część ułamkową oddzielamy kropką, a nie przecinkiem.

PS $dokladnosc możesz zamienić na $z



Dzięki za wszystko, niestety u mnie nie działa a próbowałem na krasnalu, webserw i easyphp. W identycznej formie po wpisaniu liczby i kliknięciu ok pojawia mi się nowy formularz i nic więcej a gdy do niego wpiszę i kliknę wyślij to jest pusto - nie ma nic.

po usunięciu 2 linijki kodu:
  1. echo '<form action="index.php" method="post"><input type="text" name="z"><input type="submit" value="Wyślij"></form><br>';

i wpisaniu liczby w mój formularz i kliknięciu ok wszystko znika (to samo tylko że nie ma 2 formularzu).

Nie wiem w czym rzecz. Może jakieś złe ustawienie PHP, opcja register_globals ma być aktywna?
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: 11.10.2025 - 02:37