Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z petla "do... while"
Wojtek_W
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 26.08.2006

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


Witam!
Probuje w sposow iteracyjny napisac program wypisujacy wszystkie podzbiory zbioru liczb naturalnych zawartych w pewnym przedziale. Tak oto wpadlem na pomysl zastosowania petli do...while. Schemat wyglada nastepujaco:

if {...
} elseif {
....}
else {

do { //I petla do...while
for {
....}
} while
do { //II petla do...while
for {
....}
} while
}

Problem w tym, ze II petla do...while wogole mi nie dziala. Pomocy!!!
Go to the top of the page
+Quote Post
gszesiek
post
Post #2





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 17.09.2006

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


tak powycinałeś, że ciężko cokolwiek stwierdzić (przynajmniej mi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Go to the top of the page
+Quote Post
Kas
post
Post #3





Grupa: Zarejestrowani
Postów: 425
Pomógł: 0
Dołączył: 28.05.2005
Skąd: Warszawa

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


W takim razie warunek potrzebny do wykonania for:

  1. <?php
  2. do {
  3. for () {
  4. ...
  5. }
  6. } while ()
  7. ?>


jest od razu spełniony.

Ten post edytował Kas 25.10.2006, 16:50:44
Go to the top of the page
+Quote Post
Wojtek_W
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 26.08.2006

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


Dzieki chlopaki ,ale pytanie chodzi mi o to, ze druga petla do...while mi nie dziala, i nie wiem dlaczego (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Oto skrypt tego programu:

[php]
function zbior ($p , $k) {
if ($p > $k) {
print ('brak') ;
} elseif ($p == $k) {
print ("$p<br>");
print ("_") ;
}
else {
do {
for ($i=$p+1 ; $i<=$k ; $i++) {
print ("$i");
}
$d = $p ;
$p = $d +1 ; //nadpisuje zmienna $p - otrzymuje w pierwszym kroku wartosc 6.
print ("<br>") ;
} while ($p<=$k) ;
do {
for ($i=$k-1 ; $i>=$p ; $i--) {
print ("$i") ;
}
$e = $k ;
$k = $e -1 ;
print ("<br>") ;
} while ($k>=$p) ;
}
}
zbior (3,9) ;
Go to the top of the page
+Quote Post
jarrod
post
Post #5





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

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


  1. <?php
  2. function zbior ($p , $k) 
  3. {
  4. for($i=$p;$i<=$k;$i++)
  5. {
  6. for($e=$i;$e<=$k;$e++)
  7. {
  8. if($e==$k)
  9. echo $e.'<br/> ';
  10. else
  11. echo $e.' ';
  12. }
  13. }
  14. }
  15.  
  16. zbior (3,9) ;
  17. ?>
Go to the top of the page
+Quote Post
gszesiek
post
Post #6





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 17.09.2006

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


Cytat
} while ($p<=$k) ;


czyli dążysz do wyrównania $p i $k

więc później
Cytat
} while ($k>=$p) ;
chyba nie będzie śmigać
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: 5.10.2025 - 13:20