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

[Lekcja 9] Sprawdzenie zadania.

Ostatnio zmodyfikowano 2011-10-12 20:10
Autor Wiadomość
kamilr
Temat założony przez niniejszego użytkownika
[Lekcja 9] Sprawdzenie zadania.
» 2011-10-12 18:47:33
Witam. Wczoraj zacząłem kurs i wszystko rozumiałem i wszystkie zadania wykonywałem poprawnie, aż do tego.

C/C++
#include <iostream>
using namespace std;

int main()
{
    float a;
    float b;
    float c;
   
    cout << "Podaj liczbe rzeczywista: ";
    cin >> a;
    cin.clear();
    cin.sync();
   
    cout << "Podaj druga liczbe rzeczywista: ";
    cin >> b;
    cin.clear();
    cin.sync();
   
    cout << "Podaj trzecia liczbe rzeczywista: ";
    cin >> c;
    cin.clear();
    cin.sync();
   
    cout << "A teraz przypomnijmy:" << endl;
    cout << "Liczba pierwsza to: " << a << "  Wczytano? " << cin.good() << endl;
    cout << "Liczba druga to: " << b << "  Wczytano? " << cin.good() << endl;
    cout << "Liczba trzecoa to: " << c << "  Wczytano? " << cin.good() << endl;
   
    return 0;
}
Wydaje mi się, że jest dobrze tylko nie rozumiem tej funkcji bool? Jak ją zastosować?
P-41994
doman89
» 2011-10-12 19:35:43
Nie jestem profesjonalnym programistą ale spróbuję pomóc.
Funkcja BOOL przechowuje wartości TRUE i FALSE.
Więc jeżeli zdefiniujesz zmienna BOOL to możesz zrobić coś takiego:
 
int main()
{
bool CzySukces;
// cały kod programu.
CzySukces = cin.good(); // przed czyszczeniem strumienia;
// reszta kodu programu
}

Wtedy zmienna BOOL jeżeli strumień podany do zmiennej int jest np. napisem to zmienna BOOL przybierze wartość FALSE, jeżeli do zmiennej int wpiszesz liczbę całkowitą wtedy zostanie przypiasne TRUE.
 
// edit
 
Dlatego w Twoim programie przy opcji czy wczytano pokazuje Ci błędne dane. Zrób sobie trzy zmienne BOOL i każdej przypisz konkretny strumień od odpowiedniej zmiennej. Wtedy będziesz miał właściwą odpowiedź. Ty masz 3x tylko cin.good() - kompilator nie wie o który strumień Ci chodzi więc wypisuje ostatni który ma w pamięci.
P-41998
DejaVu
» 2011-10-12 20:01:16
1. Strumień jest jeden, a nie kilka.
2. BOOL nie jest funkcją.
3. O ile mnie pamięć nie myli to zadanie jest gdzieś na forum rozwiązane, więc jeżeli już masz potrzebę weryfikacji to warto skorzystać z tego co już jest.
P-41999
SeaMonster131
» 2011-10-12 20:09:45
Sprawdzaj czy podano prawidłową liczbę po każdym wczytaniu i przypisz wartość true lub false (prawda/fałsz) 1 z 3 zmiennych bool (3 wczytania -> 3 zmienne bool).
[Kurs C++, Lekcja 9] Prośba o sprawdzenie zadania domowego
P-42000
kamilr
Temat założony przez niniejszego użytkownika
» 2011-10-12 20:10:51
Dzięki, ale już sobie poradziłem. :)
Napisałem tak:

C/C++
#include <iostream>

using namespace std;
int main()
{
    float a, b, c;
    cout << "Podaj liczbe pierwsza: ";
    cin >> a;
    bool b_a = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj liczbe druga: ";
    cin >> b;
    bool b_b = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj liczbe trzecia: ";
    cin >> c;
    bool b_c = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Liczba a = " << a << "  Wczytano? " << b_a << endl;
    cout << "Liczba b = " << b << "  Wczytano? " << b_b << endl;
    cout << "Liczba c = " << c << "  Wczytano? " << b_c << endl;
   
    return 0;
}
P-42001
« 1 »
  Strona 1 z 1