Lekcja 15 - kalkulator
Ostatnio zmodyfikowano 2012-06-08 12:23
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-07 22:55:07 To jak mam to napisac? Przeciez wszystko dziala poprawnie.
/edit:
Chodzi o czytelnośc kodu? |
|
f0g |
» 2012-06-08 02:51:26 |
|
jsc |
» 2012-06-08 10:42:21 To jak mam to napisac? Przeciez wszystko dziala poprawnie. |
Podwójne wykonanie tego co ma się wykonać raz nazywasz poprawnym działaniem? Chodzi o co chodzi: if( dzialanie == 4 ) cout << a << " / " << b << " = " << a / b << endl;
if(( a == 0 || b == 0 ) && dzialanie == 4 ) cout << a << " / " << b << " = 0" << endl;
Przyjrzyj się i zastanów się, który przypadek jest niezbędny dla prawidłowego wykonania programu. Zostaw go, a drugi skasuj. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-08 11:05:36 Ale już edytowałem wiadomośc i wstawiłem nowy kod:
#include <iostream>
using namespace std;
int main()
{ int a, b, dzialanie; do { cout << "Podaj pierwsza liczbe: "; cin.sync(); cin.clear(); cin >> a; cout << "Podaj druga liczbe: "; cin.sync(); cin.clear(); cin >> b; cout << "Jakie dzialanie chcesz wykonac?" << endl; cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuj " << endl; cin.sync(); cin.clear(); cin >> dzialanie; if( dzialanie == 1 ) cout << a << " + " << b << " = " << a + b << endl; if( dzialanie == 2 ) cout << a << " - " << b << " = " << a - b << endl; if( dzialanie == 3 && a > 0 && b > 0 ) cout << a << " * " << b << " = " << a * b << endl; if( dzialanie == 4 && a > 0 && b > 0 ) cout << a << " / " << b << " = " << a / b << endl; if( dzialanie == 5 ) cout << "Koniec" << endl; if(( a == 0 || b == 0 ) && dzialanie == 3 ) cout << a << " * " << b << " = 0" << endl; if(( a == 0 || b == 0 ) && dzialanie == 4 ) cout << a << " / " << b << " = 0" << endl; if( dzialanie < 1 || dzialanie > 5 ) cout << "Nie ma takiej opcji w menu." << endl; } while( dzialanie < 1 || dzialanie > 5 ); return 0; }
I wypisuje tylko raz.
|
|
jsc |
» 2012-06-08 11:13:49 A jednak będę się upierał, że warunek: if( dzialanie == 3 &&(( a > 0 && b > 0 ) ||( a == 0 || b == 0 ) ) )
Jest lepszy niż oddzielenie ich w postaci: if( dzialanie == 3 && a > 0 && b > 0 ) cout << a << " * " << b << " = " << a * b << endl;
if(( a == 0 || b == 0 ) && dzialanie == 3 ) cout << a << " * " << b << " = 0" << endl;
|
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-08 11:27:02 Czyli ten kod jest poprawny?:
#include <iostream>
using namespace std;
int main()
{ int a, b, dzialanie; do { cout << "Podaj pierwsza liczbe: "; cin.sync(); cin.clear(); cin >> a; cout << "Podaj druga liczbe: "; cin.sync(); cin.clear(); cin >> b; cout << "Jakie dzialanie chcesz wykonac?" << endl; cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuj " << endl; cin.sync(); cin.clear(); cin >> dzialanie; if( dzialanie == 1 ) cout << a << " + " << b << " = " << a + b << endl; if( dzialanie == 2 ) cout << a << " - " << b << " = " << a - b << endl; if( dzialanie == 3 &&(( a > 0 && b > 0 ) ||( a == 0 || b == 0 ) ) ) if( dzialanie == 4 &&(( a > 0 && b > 0 ) ||( a == 0 || b == 0 ) ) ) if( dzialanie == 5 ) cout << "Koniec" << endl; if( dzialanie < 1 || dzialanie > 5 ) cout << "Nie ma takiej opcji w menu." << endl; } while( dzialanie < 1 || dzialanie > 5 ); return 0; }
PS Jestem na laptopie i nie mam na nim IDE. |
|
jsc |
» 2012-06-08 12:06:55 Do doskonałości brakuje ci odpowiedniej reakcji na próbę dzielenia przez 0. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-06-08 12:23:27 To jak mam to napisac? Nie może byc ten poprzedni kod? |
|
1 « 2 » |