Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Losowe liczby, losowe liczby
michov12
post 20.05.2018, 12:29:29
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.05.2018

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Kshyhoo
post 20.05.2018, 15:23:31
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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.


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 20.05.2018, 16:02:45
Post #3





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


@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.

Ten post edytował sadistic_son 20.05.2018, 16:04:10


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Kshyhoo
post 20.05.2018, 16:12:56
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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


--------------------
Go to the top of the page
+Quote Post
sazian
post 20.05.2018, 16:23:09
Post #5





Grupa: Zarejestrowani
Postów: 1 043
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


No to faktycznie nie rozwiązujecie zadań domowych ;p

Ten post edytował sazian 20.05.2018, 16:23:22
Go to the top of the page
+Quote Post
sadistic_son
post 20.05.2018, 16:43:49
Post #6





Grupa: Zarejestrowani
Postów: 1 467
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


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

Ten post edytował sadistic_son 20.05.2018, 16:45:01


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
SmokAnalog
post 20.05.2018, 22:33:00
Post #7





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 13:21