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

Lekcja 15. Zad 2

Ostatnio zmodyfikowano 2012-02-19 23:48
Autor Wiadomość
za8ol
Temat założony przez niniejszego użytkownika
Lekcja 15. Zad 2
» 2012-02-19 21:29:45
Witam mam prośbę przerobiłem czyjść kod żeby nie działał w sposób podaj liczbę a ,b a później wybierz działanie . Tylko najpierw wybierz działanie później podaj liczby i wszystko jest dobrze do momentu wyniku. Wynik jest dobry natomiast idzie idzie idzie i się nie kończy gdzie jest błąd ? Natomiast 2 pytanie to po wybraniu 6 nie kończy programu a prosi o podanie a i b

C/C++
#include <iostream>

using namespace std;

int main()
{
    cout << "Kalkulator prosty\n"
    "[1] dodawanie \n"
    "[2] odejmowanie a - b \n"
    "[3] odejmowanie b-a \n"
    "[4] mnozenie \n"
    "[5] dzielenie \n"
    "[6] rezygnuje \n";
   
   
    float a;
    float b;
    int dzialanie;
    cin >> dzialanie;
    cin.clear();
    cin.sync();
   
   
   
    do
    { cout << "Podaj liczbe a: " << endl;
        cin >> a;
        cin.clear();
        cin.sync();
        if( a == 0 )
        cout << "Musisz podac liczbe wieksza od 0 \n"
             "Podaj liczby jeszcze raz: " << endl;
       
    } while( a == 0 );
   
    do
    {
       
        cout << "Podaj liczbe b:" << endl;
       
        cin >> b;
        cin.clear();
        cin.sync();
       
       
        if( b == 0 )
       
        cout << "Musisz podac liczbe wieksza od 0 \n"
             "Podaj liczby jeszcze raz: " << endl;
       
    } while( b == 0 );
   
   
   
   
   
    do {
       
       
        switch( dzialanie )
       
        {
        case 1:
           
            cout << "Wynik dodawania: " << a + b << endl;
           
            break;
           
        case 2:
           
            cout << "Wynik odejmowania a-b: " << a - b << endl;
           
            break;
           
        case 3:
           
            cout << "Wynik odejmowania b-a: " << b - a << endl;
           
            break;
           
        case 4:
           
            cout << "Wynik mnozenia: " << a * b << endl;
           
            break;
           
        case 5:
            cout << "Wynik dzielenia: " << a / b << endl;
            break;
           
        }
       
    } while(( dzialanie >= 1 ) &&( dzialanie <= 5 ) );
   
    cout << "Rezygnuje \n\n" << endl;
    cout << "Koniec" << endl;
   
   
    return 0;
   
}
P-51051
Hoop300
» 2012-02-19 21:53:26
spróbuj zez tyh nawiasów na końcu pętli
P-51057
za8ol
Temat założony przez niniejszego użytkownika
lek15
» 2012-02-19 21:58:32
usunięcie nie pomaga jest to samo czyli np 4 i 4 wynik 16 leci leci i nie zatrzymuje się . Po wybraniu 6 prosi o zmienne kiedy podam a i b =6 to powie ze koniec
P-51059
SeaMonster131
» 2012-02-19 22:22:55
Twój program robi coś takiego:

1. Podajesz działanie
2. Podajesz liczbę a
3. Podajesz liczbę b
4. Jeżeli działanie >= 1 i działanie <= 5 to wypisz wynik

Punkt 4 nie będzie się wykonywał kiedy działanie będzie < 1 albo > 5. Ale że wybrałeś konkretne działanie, to będzie się wykonywał cały czas. Innymi mówiąc, w tym przypadku stworzyłeś pętle nieskończoną ;)
Pomyśl, jak to można zrobić inaczej.


Natomiast 2 pytanie to po wybraniu 6 nie kończy programu a prosi o podanie a i b
Nie ma się co dziwić, skoro po wybraniu działania użytkownik od razu proszony jest o podanie liczb :)
P-51063
za8ol
Temat założony przez niniejszego użytkownika
» 2012-02-19 22:53:14
while(( dzialanie >= 1 ) &&( dzialanie >= 5 ) );
To pomogło co do wyniku i niepowtarzania się . Natomiast z 6. Rezygnuj ni jak mi nie wychodzi ani jak stworzę case 6 ani jak stworze if dzialanie >=6 :(
P-51068
za8ol
Temat założony przez niniejszego użytkownika
» 2012-02-19 23:48:52
Natomiast drugą częśc zrobiłem tak i działa . Chciałbym się dowiedzieć tylko czy jest to poprawne a raczej jak zrobić żeby po rezygnuje program się zakończył a nie wypisał tylko ZREZYGNOWAŁEŚ:
C/C++
do

{
   
   
    switch( dzialanie )
   
    {
    case 6:
       
        cout << "ZREZYGNOWALES " << endl;
       
        break;
    } while( dzialanie >= 6 );
   
    { cout << "Podaj liczbe a: " << endl;
        cin >> a;
        cin.clear();
        cin.sync();
        if( a == 0 )
        cout << "Musisz podac liczbe wieksza od 0 \n"
             "Podaj liczby jeszcze raz: " << endl;
       
    } while( a == 0 );
   
   
   
   
    cout << "Podaj liczbe b:" << endl;
   
    cin >> b;
    cin.clear();
    cin.sync();
   
   
    if( b == 0 )
   
    cout << "Musisz podac liczbe wieksza od 0 \n"
         "Podaj liczby jeszcze raz: " << endl;
   
} while( b == 0 );

...
P-51073
« 1 »
  Strona 1 z 1