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





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

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


Kurcze, próbowałem z tą pętlą for i wydaje mi się że rozumiem piszę i niestety albo zero(nie przechodzi ani raz) albo jeden(przechodzi tylko raz).

Poczytałem tamte kursy i stwierdziłem że spróbuję z pętlą while.
Jest ona wykorzystywana w sytuacjach, kiedy niezbędne jest wykonywanie jakiejś operacji dopóki nie zostanie spełniony warunek.
Czyli:
  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']; //wczytuję sobie $z z formularza
  8. $q=0; //ustawiam $q oraz $i i zeruję sumę-profilaktycznie
  9. $i=1;
  10. $suma=0;
  11. while($q<1) //pętla wykonuje się dopóki $q jest mniejsze od 1
  12. {
  13. $pam=1/$i; //zapamiętuje 1/1
  14. $suma=$suma+$pam; //sumuję wynik
  15. $pom=1/($i+1); //przewiduje następną wartość wyrażenia 1/n czyli 1/2=0,5
  16. $roz=$pam-$pom; //liczę różnicę między 1/n1 a 1/n2 czyli 1/1 i 1/2 dla pierwszego przejścia przez pętlę
  17. if ($roz<$z) //różnica wynosi 0,5 więc porównuję ją z różnicą wpisaną przez użytkownika, powiedzmy wpisałem 0,6 czyli różnica jest mniejsza więc $q=2 co powinno przerwać pętle
  18. {
  19. $q=2;
  20. };
  21. ++$i; //zwiększam $i
  22. };
  23. echo "Suma wynosi $suma"; //Tu powinna wyświetlić się suma lecz po kliknięciu ok wszystko się wiesza tak jakbym zapętlił pętlę
  24. ?>
  25. </body>
  26. </html>


Napisałem jak ja to rozumiem. Jeżeli źle bo np. w pętli trzeba zastosować inkrementację dla $q to ja nie wiem jak to zrobić. Jakbyście mogli przerobić ten kawałek kodu żeby mi działało to bym był bardzo wdzięczny i może bym zakumał. Nie wiem jakbym miał się zrewanżować (IMG:style_emoticons/default/winksmiley.jpg) Jak ktoś mieszka we Wrocławiu to mogę piwo postawić (IMG:style_emoticons/default/tongue.gif)

Ten post edytował Dym71 24.01.2010, 14:48:01
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: 15.10.2025 - 08:01