Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Słowo kluczowe return

Ostatnio zmodyfikowano 2013-10-01 12:14
Autor Wiadomość
Midas
Temat założony przez niniejszego użytkownika
» 2013-09-30 22:45:25
a dokładniej ?
mógłby ktoś mi to po kolei wytłumaczyć ?

dane z tablicy są porównywane operatorem
==
z iLiczbą

w jakim sensie ma to sprawdzić czy liczby się powtórzą ?

jeżeli później jest coś takiego
if( czyBylaWylosowana( a, wylosowane, wylosowanych ) == false )
P-92948
Wiesiek
» 2013-10-01 08:24:22
Ad.1
Spróbuj zrozumieć ideę funkcjiczyBylaWylosowana:
funkcja ma sprawdzić, czy w tablicy "tab[]" zawierającej "ile" liczb występuje liczba "iLiczba". Pierwsza instrukcja warunkowa sprawdza, czy w tablicy są jakiekolwiek liczby - jeśli nie ma, to funkcja kończy działanie zwracając wynik "false" (instrukcja warunkowa). Jeśli funkcja nie zakończyła działania, to znaczy, że tablica zawiera jakieś dane ("ile>0"). Należy zatem przejść przez elementy tablicy (pętla "do while" z indeksem "i" do przemieszczania się po tablicy) - jeśli w trakcie działania pętli napotkamy element równy liczbie "iLiczba", to kończymy działanie funkcji i zwracamy wynik true. Jeśli pętla nie została przerwana (z powrotem z funkcji), to oznacza, że wszystkie liczby w tablicy "tab" są różne od "iLiczba" - trzeba więc po pętli zwrócić wynik false.

Ad.2
if( czyBylaWylosowana( a, wylosowane, wylosowanych ) == false ) 
W języku potocznym:
Jeśli jest fałszem, że w tablicy "wylosowane" zawierającej "wylosowanych" liczb jest liczba "a"
Inaczej
jeśli wynik funkcji czyBylaWylosowana na argumentach a, wylosowane, wylosowanych ma wartość false
P-92962
skovv
» 2013-10-01 12:14:24
Nie rozumiesz jak działają funkcje. Postaram się pomóc:

C/C++
typ_zwracanej Nazwa( typy_argumentow ich_nazwy ) {
    return do_zwrocenia;
}
Prawda? ;)

W twoim przypadku wygląda to tak:
C/C++
bool czyBylaWylosowana( int iLiczba, int tab[], int ile )
{
    if( ile <= 0 )
         return false;
   
    int i = 0;
    do
    {
        if( tab[ i ] == iLiczba )
             return true;
       
        i++;
    } while( i < ile );
   
    return false;
}

Jeśli dałbyś
C/C++
// ...
if( ile <= 0 )
     return true;
else
     return false;
// ...
to funkcja zwróciłaby true lub false po pierwszym wywołaniu for i nie działałaby poprawnie. Czemu? Funkcje
return
 przerywa dzialanie funkcji i zwraca jakąś wartość. W Twojej funkcji program porównuje i jeśli się zgadza to zwraca true, jeśli żadna liczba się nie zgadza to pętla przemija i domyślnie zwraca false. Rozumiesz?
P-92964
1 « 2 »
Poprzednia strona Strona 2 z 2