Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]rozwiązane zadanie, zadanie rozwiązane ale...
gregor87
post
Post #1





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

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


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?
Go to the top of the page
+Quote Post
zordon
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


Zacznijmy od tego, że Twój kod losuje x liczb z przedziału <0, y> (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
gregor87
post
Post #3





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

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


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!!!!!!
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: 14.09.2025 - 16:14