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

[Lekcja 15] Pierwsza część

Ostatnio zmodyfikowano 2011-11-05 10:22
Autor Wiadomość
endix18
Temat założony przez niniejszego użytkownika
[Lekcja 15] Pierwsza część
» 2011-10-27 22:22:37
Witam
  Właśnie staram się zrozumieć pętle i proszę was o sprawdzenie pierwszej części zadania które wykonałem

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

int main()
{
    int liczba;
    float zmienna;
    cout << "Podaj liczbe ";
    cin >> liczba;
    if( !liczba || zmienna )
    do
    {
        cout << "Blad" << endl;
        cout << "Podaj jeszcze raz" << endl;
        cin >> liczba;
    } while( liczba );
   
    cout << "Koniec" << endl;
    return 0;
}

Problem polega na tym ze wpisując liczbę np. 11 wyskakuje to co zdefiniowałem w bloku instrukcji do... while... to samo tyczy się zmiennej np. 12.55 tyle tylko że ów komunikat wyskakuje bez przerwy.
Byłbym wdzięczny za jakieś rozwiązanie ew. bardziej satysfakcjonowała by mnie podpowiedź po której sam mógłbym dojść co do czego.
W ostateczności ktoś mnie wyśle do przestudiowania jeszcze raz poziomu 1
P-42882
DejaVu
» 2011-10-27 23:01:36
Ja bym Ciebie odesłał do instrukcji warunkowej ;p
P-42890
endix18
Temat założony przez niniejszego użytkownika
[Lekcja 15] Sprawdzenie zadania domowego.
» 2011-11-05 02:58:02
Po bezstresowym :D  rozwiązaniu mojego problemu z pętlom uważam że zadanie domowe zostało wykonane. Teraz chciałbym prosić tych z was którzy się na tym znają o wiele lepiej odemnie o ew. uwagi/rady odnośnie mojego kodu.
C/C++
#include <iostream>

using namespace std;
int main()
{
    float a, b;
    int c;
    char znak;
    do
    {
        cout << "       MENU" << endl;
        cout << "Wybierz dzialanie:" << endl;
        cout << "[1]  Dodawanie" << endl;
        cout << "[2]  Odejmowanie" << endl;
        cout << "[3]  Mnozenie" << endl;
        cout << "[4]  Dzielenie" << endl;
        cout << "[5]  Zakoncz" << endl;
        cin >> c;
        cin.clear();
        cin.sync();
    } while( c <= 0 || c >= 6 );
   
    switch( c )
    {
    case 1:
        cout << "Dodawanie" << endl;
        do
        {
            cin >> a >> b;
            cin.clear();
            cin.sync();
            cout << a + b << endl;
        } while( a != cin.good() && b != cin.good() );
       
        cout << "Wcisnij dowolny klawisz aby zakonczyc";
        break;
    case 2:
        cout << "Odejmowanie " << endl;
        do
        {
            cin >> a >> b;
            cin.clear();
            cin.sync();
            cout << a - b;
        } while( a != cin.good() && b != cin.good() );
       
        cout << "Wcisnij dowolny klawisz aby zakonczyc";
        break;
    case 3:
        cout << "Mnozenie " << endl;
        do
        {
            cin >> a >> b;
            cin.clear();
            cin.sync();
            cout << a * b;
        } while( a != cin.good() && b != cin.good() );
       
        cout << "Wcisnij dowolny klawisz aby zakonczyc";
        break;
    case 4:
        cout << "Dzielenie " << endl;
        do
        {
            cin >> a >> b;
            cin.clear();
            cin.sync();
            cout << a / b;
        } while( a != cin.good() && b != cin.good() );
       
        cout << "Wcisnij dowolny klawisz aby zakonczyc";
        break;
    case 5:
        cout << "Koniec" << endl;
        break;
    }
    return 0;
}
P-43325
SeaMonster131
» 2011-11-05 10:22:55
Chyba ok jest wszystko ;p Jedynie co, to taka kosmetyczna uwaga, ale mniej czasu się traci: w każdym case wczytujesz w ten sam sposób 2 liczby, a spokojnie mógłbyś je wczytać wcześniej (przed switchem) itp i dopiero wtedy dać na nich operacje. Tylko uważaj, bo w switchu masz 5 jako wyjście, więc żebyś nie wczytywał liczb kiedy chcesz wyjść hehe ;)
P-43334
« 1 »
  Strona 1 z 1