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

Problem z zadaniem domowym z podstawowego kursu programowania

Ostatnio zmodyfikowano 2013-08-23 20:25
Autor Wiadomość
omell
Temat założony przez niniejszego użytkownika
Problem z zadaniem domowym z podstawowego kursu programowania
» 2010-11-07 18:17:40
Próbowałem rozwiązać zadanie domowe z lekcji dotyczącej obsługi strumienia wejściowego, lecz bez powodzenia. Czy ktoś może pomóc?

Oto te zadanie:
Zadanie domowe
Napisz program, który wczyta trzy liczby rzeczywiste, a na końcu programu je wszystkie wypisze. Zadbaj o to, by bufor strumienia wejściowego był za każdym razem czyszczony. Wynik końcowy powinien również zawierać informacje czy wczytanie danej liczby się powiodło.
Przykładowe dane wejściowe
13.3
tak 123
33.22nie
Przykładowe dane wyjściowe
Liczba pierwsza to: 13.3. Wczytano? 1.
Liczba druga liczba to: 0. Wczytano? 0.
Liczba trzecie liczba to: 33.22. Wczytano? 1.
Wskazówka
Informacje o poprawnym (albo niepoprawnym) wczytaniu danych należy przechować w dodatkowych zmiennych typu bool.
P-23670
Dragonit
» 2010-11-07 19:00:22
To pokaż co naskrobałeś to ci poprawimy.
P-23672
omell
Temat założony przez niniejszego użytkownika
» 2010-11-07 19:12:48
C/C++
#include <iostream>
using namespace std;
int main()
{
    float a;
    float b;
    float c;
    cout << "Podaj pierwsza liczbe calkowita : ";
    cin >> a;
    cout << "Podaj druga liczbe calkowita : ";
    cin >> b;
    cout << "Podaj trzecia liczbe calkowita : ";
    cin >> c;
    cout << "Liczba pierwsza to : " << a << " wczytno" << sizeof( bool ) << endl;
    cout << "Liczba druga to : " << b << " wczytano" << sizeof( bool ) << endl;
    cout << "Liczba trzecia to :" << c << " wczytano" << sizeof( bool ) << endl;
    cin.clear();
    return 0;
}
P-23673
Dragonit
» 2010-11-07 19:48:28
C/C++
float a, b, c;
bool atrue, btrue, ctrue;

cout << "Podaj pierwsza liczbe calkowita : ";
cin >> a;
if( cin ) atrue = true;

cin.sync();

cout << "Podaj druga liczbe calkowita : ";
cin >> b;
if( cin ) btrue = true;

cin.sync();

cout << "Podaj trzecia liczbe calkowita : ";
cin >> c;
if( cin ) ctrue = true;

cin.sync();

cout << "Liczba pierwsza to : " << a << " wczytano " << atrue << endl;
cout << "Liczba druga to : " << b << " wczytano " << btrue << endl;
cout << "Liczba trzecia to :" << c << " wczytano " << ctrue << endl;
P-23675
ison
» 2010-11-07 20:02:13
@Dragonit coś chyba skopałeś bo nawet test przykładowy Ci nie przechodzi :>

kodzik:
C/C++
#include <iostream>

using namespace std;

int main()
{
    double a = 0.0, b = 0.0, c = 0.0;
    bool read_a, read_b, read_c;
   
    cout << "Podaj 3 liczby rzeczywiste" << endl;
    cin >> a;
    read_a = cin.good();
    cin.clear();
    cin.sync();
    cin >> b;
    read_b = cin.good();
    cin.clear();
    cin.sync();
    cin >> c;
    read_c = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Liczba pierwsza to: " << a << "   Wczytano: " << read_a << endl;
    cout << "Liczba druga to: " << b << "   Wczytano: " << read_b << endl;
    cout << "Liczba trzecia to: " << c << "   Wczytano: " << read_c << endl;
   
    return 0;
}
P-23679
omell
Temat założony przez niniejszego użytkownika
» 2010-11-07 20:11:01
Dziękuję za pomoc. W tym kursie podstawowym nie były podawane zastosowane przez Ciebie rozwiązania więc jak ktoś kto dopiero się uczy programować ma rozwiązać zadanie domowe? Jeszcze raz dzięki. Pozdrawiam
P-23680
Dragonit
» 2010-11-07 20:11:45
Czy zamiast "zmienna = cin.good();" nie można użyć "if(cin) zmienna = true". Wydaje mi się że to to samo.
Uświadom mnie że mój kod nie działa poprawnie.
P-23681
ison
» 2010-11-07 20:22:47
@Dragonit prawie to samo, ale nie o to mi chodziło w Twoim kodzie

Uświadom mnie że mój kod nie działa poprawnie.
wpisz literę 'a' do swojego programu i zobacz co się stanie
P-23682
« 1 » 2
  Strona 1 z 2 Następna strona