Słowo kluczowe return
Ostatnio zmodyfikowano 2013-10-01 12:14
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 ) |
|
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 |
|
skovv |
» 2013-10-01 12:14:24 Nie rozumiesz jak działają funkcje. Postaram się pomóc: typ_zwracanej Nazwa( typy_argumentow ich_nazwy ) { return do_zwrocenia; }
Prawda? ;) W twoim przypadku wygląda to tak: 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ś 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? |
|
1 « 2 » |