Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Losowe liczby
Forum PHP.pl > Forum > Przedszkole
michov12
Cześć, dostałem takie o to zadania do zrobienia:

Zadanie 1

Przy pomocy pętli while, wyświetl losowe liczby. Warunkiem zakończenia działania pętli jest wylosowanie liczby 23. Za którym razem udało się wylosować tą liczbę?

Zadanie 2

Przy pomocy pętli do while, zsumuj losowe liczby z zakresu od 1 do 30. Pętla ma być wykonywana do czasu przekroczenia przez zmienną $suma wartości 100. Wypisz poszczególne wartości liczb oraz wynik sumy.


Zaznaczam, że w z PHP jestem zielony. Próbowałem używać funkcji rand, ale ciągle to nie działa.

Tu kod z pierwszego zadania, który sam pisałem(oczywiście nie działa)
<?php
$losowa;
while($losowa=23 ){

rand(20,25);
echo rand
}

?>

Z góry dziękuję za pomoc.
Kshyhoo
Nie rozwiązujemy zadań domowych/szkolnych nawet tych zielonych PHP.
Do kodu PHP użyj właściwego bb-code.

Funkcja rand powinna zawierać zakres liczb (w Twoim przypadku 1-30).
Do sprawdzenia służy instrukcja IF.

Ad 1:
1. otwierasz do {
2. inicjujesz funkcję w stylu $liczba_losowa = rand(1, 30);
3. inicjujesz zliczanie pętli ++$ile_razy;
4. wyświetlasz $liczba_losowa
5. teraz w pętli if sprawdzasz czy wygenerowana liczba to !== 23
6. wyświetlasz separator, np: echo "<br>\n";
7. zamykasz do
8. odpalasz while z warunkiem !== 23
9. wyświetlasz za którym razem wygenerował wybraną liczbę, np: echo "<br>Za którym razem: ".$ile_razy;

Ad. 2:
1. deklarujesz $suma = 0;
2. odpalasz do {
3. do zmiennej przypisujesz generowane liczby $liczba_losowa = rand(1, 30);
4. wyświetlasz generowaną liczbę
5. sumujesz liczby, np: $suma += $liczba_losowa;
6. sprawdzasz, czy osiągnąłeś już limit i wyświetlasz znak +, np: if ($suma < 100) echo " + ";
7. koniec do
8. teraz czas na while ($suma < 100);
9. wyświetlasz wynik, np: echo " = ".$suma;

Wystarczy wklepać... Mam nadzieję, że pomogłem.
sadistic_son
@Kshyhoo - tak prościej:
  1. $i=0;
  2. while($los!==23){
  3. $los=rand(1,30);
  4. $i++;
  5. echo $i.') '.$los.'<br />';
  6. }
  7. echo "<br />$i wykonań pętli";


@michov12 - jak już pisał mój przedmówca tutaj nie rozwiązujemy zadań domowych, tylko pomagamy wpaść na rozwiązanie. Ale poznaj moje dobre serce.... zadanie 1 masz na tacy.
Kshyhoo
Moja wersja taka:
  1. <?php
  2. do {
  3. $liczba_losowa = rand(1, 30);
  4. ++$ile_razy;
  5. echo $liczba_losowa;
  6. if ($liczba_losowa !== 23 )
  7. echo "<br>\n";
  8. }
  9. while ($liczba_losowa !== 23);
  10. echo "<br>Za którym razem: ".$ile_razy;
  11. ?>


Twoja wersja nie zawiera do... while a takie jest założenie zadania wink.gif
sazian
No to faktycznie nie rozwiązujecie zadań domowych ;p
sadistic_son
Krzychu, ale w zadaniu 1 nie ma być do while tongue.gif
Sazian, tylko połowę wink.gif Poza tym wyjątek potwierdza regułę wink.gif
SmokAnalog
Powiedziałbym, że pętla do...while też należy do rodziny while. Wersja Krzysia jest lepsza, bo głupio wygląda warunek ze zmienną, której jeszcze nawet nie ma.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.