Lekcja 21 sprawdzanie liczb
Ostatnio zmodyfikowano 2012-03-27 19:42
czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-03-20 19:14:13 if( zapisz[ licz ] != los ) return true;
Jeżeli warunek zostanie spełniony, funkcja kończy się i zwraca prawdę. Jeżeli nie zostanie spełniony to funkcja NIE kończy się ?? |
|
jsc |
» 2012-03-20 20:11:07 Dobra widzę, że jak ci nie podam na tacy to nie zrozumiesz. Twoja I wersja funkcji: bool sprawdz( int zapisz[], int los, int lwylos ) { int licz = 0; do { licz++; cout << "licznik" << licz << endl; cout << "liczby wczesniej zapisane" << zapisz[ licz ] << endl; if( zapisz[ licz ] != los ) return true; } while( licz != lwylos ); return false; } wersja poprawna: bool sprawdz( int zapisz[], int los, int lwylos ) { int licz = 0; do { licz++; cout << "licznik" << licz << endl; cout << "liczby wczesniej zapisane" << zapisz[ licz ] << endl; if( zapisz[ licz ] == los ) return false; } while( licz != lwylos ); return true; } Twoja II wersja: bool sprawdz( int zapisz[], int los, int lwylos ) { bool zm; int licz = 0; do { licz++; cout << "licznik" << licz << endl; cout << "liczby wczesniej zapisane" << zapisz[ licz ] << endl; if( zapisz[ licz ] != los ) { zm = 1; } else zm = 0; } while( licz != lwylos ); return zm; }
wersja poprawna bool sprawdz( int zapisz[], int los, int lwylos ) { bool zm = true; int licz = 0; do { licz++; cout << "licznik" << licz << endl; cout << "liczby wczesniej zapisane" << zapisz[ licz ] << endl; if( zapisz[ licz ] == los ) { zm = false; } } while( licz != lwylos ); return zm; } Mam nadzieję, że po analizie tego ci się rozjaśni. |
|
czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-03-20 20:22:52 Teraz program zapętla się w nieskończoność. Robię 3 wersję funkcji. Będę porównywał każdą liczbę z każdą. |
|
jsc |
» 2012-03-20 20:23:50 Teraz to znaczy... |
|
czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-03-20 20:26:21 Tzn gdy używam podanych wersji funkcji.
Odpowie mi ktoś na 1. wiadomość na tej stronie tematu? |
|
czosnek17 Temat założony przez niniejszego użytkownika |
» 2012-03-23 19:59:01 Czegoś chyba nie rozumiem... Dlaczego w tym programie funkcja zwraca wartość 1 gdy podam liczbę różną od zera? Prawda powinna być tylko po wpisaniu 5. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
bool funkcja( int liczba ) { cout << "funkcja" << endl; cout << "podana liczba=" << liczba << endl; if( liczba == 5 ) { return true; } return false; }
int main()
{ int liczba; cout << "main" << endl; cin >> liczba; cout << "___" << endl; bool funkcja( liczba ); cout << "------" << endl; cout << "F== " << funkcja << endl; cout << "------" << endl; return 0; }
|
|
piotreq |
» 2012-03-24 22:07:50 Przekaż wartość funkcji do jakiejś zmiennej i wypisz zmienną a nie funkcję bool wynik = funkcja( liczba ); cout << "funkcja" << endl; cout << "podana liczba=" << liczba << endl; cout << "------" << endl; cout << "F== " << wynik << endl; cout << "------" << endl;
PS. dlaczego nie mogę uwydatnić kodu źródłowego?? :/ :\ |
|
jsc |
» 2012-03-24 22:35:25 |
|
1 « 2 » 3 |