kalkulator lekcja 15 problem...
Ostatnio zmodyfikowano 2014-03-06 20:42
wirusomaniak Temat założony przez niniejszego użytkownika |
kalkulator lekcja 15 problem... » 2014-03-06 18:24:24 Nie rozumiem zbytnio polecenia o tym jak ma wyglądać ten kalkulator: Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco: 1. Wypisuje obecny wynik 2. Wprowadź liczbę 3. Wybierz działanie (jeżeli liczba różna od 0) 4. Wykonaj obliczenia (jeżeli liczba różna od 0) 5. Wróć do kroku 1. 6. Jeżeli wprowadzoną liczbą jest 0, zakończ program. Przykładowe menu wyboru działania: [1] Dodawanie [2] Odejmowanie [3] Mnożenie [4] Dzielenie [5] Rezygnuj Zabezpiecz wcześniej napisany kalkulator przed podawaniem niepoprawnych liczb i operacji. Wykorzystaj wiedzę zdobytą z pierwszego zadania pracy domowej niniejszego rozdziału. Zabezpiecz również w analogiczny sposób przed możliwością wyboru nieprawidłowego działania. Nie rozumiem na przykład punktu pierwszego Wypisuję obecny wynik tzn. jak mam zacząć ten kod. czy może zacząć się tak?: #include <iostream> using namespace std;
int main() { int wybor; do { cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie " << endl; cout << "[3] Mnożenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuj" << endl; cin.clear(); cin.sync(); cin >> wybor; cout << "Error" << cin.fail() << endl; } while( cin.fail() == 1 ); a następnie zastosować switch case?? Albo też jak wrócić do kroku 1 po wykonanym obliczeniu proszę o pomoc :( |
|
Ard123 |
» 2014-03-06 19:10:42 Też nie wiedziałem o co chodzi z pkt. 1. Ja uznałem, że chodzi o pierwszą liczbę. Aby program po obliczeniach powracał do początku, użyj pętli, np. możesz napisać na koniec pętli while( wybor != 5 ) , wtedy gdy do zmiennej wybor wybierzesz liczbę 5 program się zakończy (ponieważ zwróci false), a gdy inną liczbę to powróci na początek (ponieważ zwróci true, a true w pętli oznacza powrót na początek pętli). Edit: Dodam jeszcze cały kod jak ja to napisałem jakbyś chciał: #include <iostream>
int main() { int a; int b; int operacja; do { std::cout << "Pierwsza liczba = "; std::cin >> a; std::cout << "Druga liczba = "; std::cin >> b; std::cout << "Wybierz operacje:\n1 = +\n2 = -\n3 = *\n4 = /\n5 = Zakoncz\nWybrana operacja = "; std::cin >> operacja; switch( operacja ) { case 1: std::cout << "wynik = " << a + b << std::endl; break; case 2: std::cout << "wynik = " << a - b << std::endl; break; case 3: std::cout << "wynik = " << a * b << std::endl; break; case 4: if( b != 0 ) std::cout << "wynik = " << a / b << std::endl; break; } } while( operacja != 5 ); } |
|
wirusomaniak Temat założony przez niniejszego użytkownika |
Dziękuję » 2014-03-06 19:46:03 Aha dzięki już wszystko rozumiem. :D naprawdę wielkię dzięki bez twojej pomocy jeszcze długo bym nad tym posiedział.I nie domyślił bym się żeby wszystko wziąć w pętlę.. Twój kod jest całkiem dobry ale radził bym go pozabezpieczać zresztą w poleceniu autor o tym wspomina. :D przed "yeti" jak to jest w kursie ujęte chodzi mi o : cout << "Error" << cin.fail() << endl; } while( cin.fail() == 1 ); |
|
maciek77 |
» 2014-03-06 19:56:33 ja to zrobiłem trochę inaczej (program nie do końca zrobiony) #include <iostream> using namespace std; int main() { float wynik=0; float liczba; int wybor; int dodawanie; do{ cout << "Obecny wynik to " << wynik << endl; cout << "Wprowadz liczbe " << endl; cin >> liczba; if(liczba!=0) { cout << "Wybierz dzialanie jakie chcesz wykonac." << endl; cout << "[1] Dodawanie " << endl; cout << "[2] Odejmowanie " << endl; cout << "[3] Mnozenie " << endl; cout << "[4] Dzielenie " << endl; cout << "[5] Rezygnuj " << endl; cin >> wybor; switch(wybor) { case 1: wynik += liczba; break; case 2: wynik -= liczba; break; case 3: wynik *= liczba; break; case 4: wynik /= liczba; break; case 5: break; default: cout << "Zle wybrales"; break; } } else { cout << "Wprowadzona liczba nie moze byc zerem!" << endl; break;} }while(wybor==1 || wybor==2 || wybor==3 || wybor==4);
return 0;
} |
|
wirusomaniak Temat założony przez niniejszego użytkownika |
Dobre.. » 2014-03-06 20:00:12 Nieźle to wymyśliłeś.. super. tylko jak będzie ten program wykonywał działania może wpisz też zmienną b i poproś na początku aplikacji o jej podanie... |
|
maciek77 |
» 2014-03-06 20:17:27 normalnie wykonuje, do podaje na początku liczby dodaje np to co chcemy... tak wywnioskowałem z polecenia |
|
wirusomaniak Temat założony przez niniejszego użytkownika |
» 2014-03-06 20:42:56 Ale obecny wynik moim zdaniem powinien być zmienny tzn. wolny do wybrania no ale w końcu to nie jest 1 liczba tylko obecny wynik trochę to dziwne :) ale gdyby tak się przyjrzeć to masz rację tak właśnie chyba to się powinno zrobić :d |
|
« 1 » |