Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]rozwiązane zadanie
Forum PHP.pl > Forum > Przedszkole
gregor87
witam!
jestem początkujący w php i mam pewien problem. miałem do zrobienia zadanie i zrobiłem je wspólnie z kolega informatykiem i wytłumaczył ale niezbyt zrozumiale.... oto to zadanie:

Kod
<?php
$x=isset($_POST['liczba_x']) ? $_POST['liczba_x'] : 1;
$y=isset($_POST['liczba_y']) ? $_POST['liczba_y'] : 0;

if($x>$y){
    echo '
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="/tabela.php" method="post">
     liczby x: <input type="text" name="liczba_x" />
     liczba y: <input type="text" name="liczba_y" />
     <input type="submit" value="Oblicz" />
    </form>
    
    </body>
    </html>    
    ';    
}else{
    $value=array();
    for($i=0; $i<$x; $i++){
    $value[]=rand(0,$y);    
    }
    sort($value);
    echo '<div>';
    
        foreach($value as $key => $row){
            echo '<div> Liczba nr:'.$key.' to '.$row.'</div>';
        }
    echo '</div>



wiem co ten kod robi (losuje 5 liczb (x) ze zbioru liczb (y)). że jest tu zastosowana pętla if... else... , ale nie zbyt ogarniam co tu sie po kolei dzieje. może ktoś logicznie wytłumaczyć co sie dzieje na poszczególnych etapach?
zordon
Zacznijmy od tego, że Twój kod losuje x liczb z przedziału <0, y> winksmiley.jpg

Na początku mamy dość ... osobliwe sprawdzenie "co robić". Założono, że liczba losowanych liczb nie może być większa niż prawa granica zakresu (liczba y), choć niepotrzebnie, bo wylosowane liczby i tak mogą się powtarzać. Tak czy inaczej dwie pierwsze linijki to tzw "operator trójkowy"(poczytaj) - jeśli nie istnieją dane z post, przypisuje zmiennym x i y wartości domyślne, odpowiednio 1 i 0. Następnie wykonywane jest sprawdzenie, czy x jest wieksze niż y(wspomniane wcześniej). To jest główny warunek decyzyjny. Jeśli jest spełniony, to albo nie ma danych z post, albo dane nie są poprawne. Wyświetlany jest wtedy formularz html, gdzie wpisujemy odpowiednie dane.

Jeśli warunek nie jest spełniony to znak, że nadeszły dane z post i są one poprawne (powiedzmy). Można więc zabrać się za losowanie. Inicjujesz tablicę $value, tak, że jeśli nie zostanie nawet wylosowana żadna liczba to zmienna istnieje(tylko jest pusta) i nie zostanie wygenerowany błąd.

Następnie $x razy wykonywana jest pętla. W pętli tej losowana jest liczba z przedziału (0, $y) i wrzucana na stos(czyli jako następny element tablicy). Następnie tablica jest sortowana i wyświetlana na ekranie w pętli.
gregor87
DZIEKI WIELKIE!
a z tym 5 to taka mała głupia pomyłka hehe bo zawsze kazałem mu losować 5 liczb nie wiem czemu;) wielkie dzieki!!!!!!
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-2025 Invision Power Services, Inc.