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

Lekcja 21 sprawdzanie liczb

Ostatnio zmodyfikowano 2012-03-27 19:42
Autor Wiadomość
czosnek17
Temat założony przez niniejszego użytkownika
» 2012-03-20 19:14:13
C/C++
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ę ??
P-52981
jsc
» 2012-03-20 20:11:07
Dobra widzę, że jak ci nie podam na tacy to nie zrozumiesz.

Twoja I wersja funkcji:
C/C++
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:
C/C++
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 ) //Zmiana
             return false; //Zmaina
       
       
    } while( licz != lwylos );
   
    return true; //Zmiana
}

Twoja II wersja:
C/C++
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
C/C++
bool sprawdz( int zapisz[], int los, int lwylos )
{
    bool zm = true; //Zmiana
    int licz = 0;
    do {
        licz++;
        cout << "licznik" << licz << endl;
        cout << "liczby wczesniej zapisane" << zapisz[ licz ] << endl;
        if( zapisz[ licz ] == los ) //Zmiany odtąd
        {
            zm = false;
        } //dotąd
    } while( licz != lwylos );
   
    return zm;
}
Mam nadzieję, że po analizie tego ci się rozjaśni.
P-52984
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ą.
P-52989
jsc
» 2012-03-20 20:23:50
Teraz to znaczy...
P-52990
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?
P-52991
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.
C/C++
#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;
}
P-53120
piotreq
» 2012-03-24 22:07:50
Przekaż wartość funkcji do jakiejś zmiennej i wypisz zmienną a nie funkcję

C/C++
bool wynik = funkcja( liczba ); // przekazanie wartosci funkcji do zmiennej
cout << "funkcja" << endl;
cout << "podana liczba=" << liczba << endl;
cout << "------" << endl;
cout << "F== " << wynik << endl; // wypisanie zmiennej
cout << "------" << endl;

PS. dlaczego nie mogę uwydatnić kodu źródłowego?? :/ :\
P-53165
jsc
» 2012-03-24 22:35:25
P-53168
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona