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

rozdział 15 zadanie domowe

Ostatnio zmodyfikowano 2021-03-20 14:42
Autor Wiadomość
mateuszuczen
Temat założony przez niniejszego użytkownika
rozdział 15 zadanie domowe
» 2021-03-19 12:12:57
cześć mam problem zwiazany z kalkulatorem , działanie ( Prawie ) prawidłowe . Problem w tym że gdy podaje wartość drugiej liczby 0 nie mogę ponownie wybrać wartości czyli petla nie dziala w tym przypadku. Dopiero zadziała gdy wpiszę jakąkolwiek cyfrę i potwierdze enterem, drugi problem związany z petla jest w momencie gdy wybieram działanie ( chciałbym wyjśc z programu - pojawia sie komunikat koniec programu po czym ponownie moge wybrać wartości a i b. tak samo w przypadku podania 0 dla działania jak i innej cyfry z pomienieciem 1-4. poprosze o wyjasnienie jak zrobic zeby program sie wyłaczył
C/C++
#include <iostream>
using namespace std;
int main()
{
   
int a, b, dzialanie;
   
   
do
   
{
       
       
       
       
cout << " Podaj a = ";
       
cin >> a;
       
cout << " Podaj b = ";
       
cin >> b;
       
       
if( b != 0 )
       
           
 cout << "Wybierz dzialanie [1]-DODAWANIE  [2]-ODEJMOWANIE  [3]-MNOZENIE  [4]-DZIELENIE  [5]-WYJSCIE" << endl;
       
       
else
           
 cout << "sproboj ponownie" << endl;
       
       
       
cin >> dzialanie;
       
       
       
       
       
       
       
       
switch( dzialanie )
       
{
       
case 1:
           
cout << " a + b = " << a + b << endl;
           
break;
           
       
case 2:
           
cout << " a - b = " << a - b << endl;
           
break;
           
       
case 3:
           
cout << " a * b = " << a * b << endl;
           
break;
           
       
case 4:
           
cout << " a / b = " << a / b << endl;
           
break;
           
       
case 5:
           
cout << "koniec programu" << endl;
           
break;
       
}
       
    }
while( dzialanie != 5 || dzialanie != 0 );
   
   
   
   
return 0;
}
P-178312
pekfos
» 2021-03-19 16:37:03
Problem w tym że gdy podaje wartość drugiej liczby 0 nie mogę ponownie wybrać wartości czyli petla nie dziala w tym przypadku.
Pętla działa, bo wykonuje dokładnie to co do niej wpiszesz, czyli więcej rzeczy po tym jak podajesz zero. Powinieneś użyć dodatkowej pętli na potrzeby samego wpisywania liczby b. Przykładowo
C/C++
cout << " Podaj b = ";
do
{
   
cin >> b;
   
if( b == 0 )
       
 cout << "sproboj ponownie" << endl;
   
} while( b == 0 );

// b != 0, kontynuujemy

drugi problem związany z petla jest w momencie gdy wybieram działanie ( chciałbym wyjśc z programu - pojawia sie komunikat koniec programu po czym ponownie moge wybrać wartości a i b. tak samo w przypadku podania 0 dla działania jak i innej cyfry z pomienieciem 1-4. poprosze o wyjasnienie jak zrobic zeby program sie wyłaczył
C/C++
while( dzialanie != 5 || dzialanie != 0 );
Program się nie kończy, bo ten warunek jest zawsze prawdziwy - spróbuj znaleźć liczbę która jest równa 5 i jednocześnie równa 0. Warunek powinien brzmieć jeśli liczba jest różna od 5 i różna od 0.
P-178316
mateuszuczen
Temat założony przez niniejszego użytkownika
» 2021-03-20 14:42:29
Super , dzieki za odp . już rozumiem , dopisałem jeszcze funkcje cin.clear() i cin.ignore() aby program się nie wyłączał po błędnym wpisaniu wartości . Dodatkowo dopisałem cin.fail i bool blad po cin >> a i cin >> b aby program wykazywał bład wartosci. Powolutku do przodu !
P-178322
« 1 »
  Strona 1 z 1