rozdzial 20 losowanie roznych liczb
Ostatnio zmodyfikowano 2015-07-19 01:56
progx100 Temat założony przez niniejszego użytkownika |
rozdzial 20 losowanie roznych liczb » 2015-07-18 23:32:24 Witam Chodzi o ten dzial i ten program:
#include <iostream> #include <cstdlib> #include <ctime>
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; }
int wylosuj() { return( rand() % 10 ) + 1; }
int main() { srand( time( 0 ) ); int wylosowane[ 5 ]; int wylosowanych = 0; do { int liczba = wylosuj(); if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } //if } while( wylosowanych < 5 ); wylosowanych = 0; do { std::cout << wylosowane[ wylosowanych ] << std::endl; wylosowanych++; } while( wylosowanych < 5 ); return 0; }
Nie bardzo potrafie zinterpretowac funkcje tej linijki if(czyBylaWylosowana(liczba, wylosowane, wylosowanych)==false)
a mianowicie dlaczego jest to false a nie true, jaką funkcje w programie pelni ta cala instrukcja?, Czy mógłbym prosic aby ktos mi to objasnił? Opanowalem dwa poziomy (jesli chodzi o zrozumienie)tylko z tym rozdzialem mam problem. Z gory dziekuje. |
|
MinusPL |
» 2015-07-18 23:37:10 Funkcja ta sprawdza czy dana liczba już się pojawiła. 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; }
w main pojawia się czyBylaWylosowana(argumenty) == false w if, ponieważ funkcja sprawdza czy dana liczba już jest. Dokładniej kod: if( tab[ i ] == iLiczba ) return true;
Oznacza on tyle, że jeśli w tablicy (w funkcji tab), istnieje już taka liczba ma zwrócić true, jeśli nie false. Stąd w mainie "== false", gdyż kod ma się wykonać tylko wtedy, gdy nowo wylosowana liczba nie znajduje się już w tablicy. |
|
progx100 Temat założony przez niniejszego użytkownika |
rozdzial 21 » 2015-07-19 01:30:49 Dzieki za odpowiedz ale mam jeszcae jedno pytanko, mianowicie co się najpierw wykonuje: funkcja czyBylWyl lub czy instrukcja if (czyBylWyl(argumenty)==false) ? |
|
carlosmay |
» 2015-07-19 01:48:37 W ifach zawsze sprawdzane jest wnętrze nawiasu. A kolejność we w nawiasie już zależy od priorytetów elementów warunku. i jesli cały warunek jest prawdziwy wykonuje się instrukcja if. |
|
progx100 Temat założony przez niniejszego użytkownika |
odpowiedz » 2015-07-19 01:56:13 Dzieki zamykam |
|
« 1 » |