rozdzial 15 kalkulator
Ostatnio zmodyfikowano 2012-08-28 16:42
manhatan Temat założony przez niniejszego użytkownika |
rozdzial 15 kalkulator » 2012-07-25 18:39:00 #include <iostream> using namespace std; int main()
{ long double liczba1, liczba2; float wynik = 0; bool x; int menu; do { cout << "wynik = " << wynik << endl; if( x == 1 || liczba1 != 0 ) cout << "podaj liczbe 1: " << endl; cin >> liczba1; cin.clear(); cin.sync(); x = cin.good(); if( x != 1 || liczba1 == 0 ) cout << "podales zla liczba, jeszcze raz" << endl; } while( x != 1 || liczba1 == 0 ); cout << "podaj liczbe druga: " << endl; cin >> liczba2; if( liczba1 != 0 ); cout << "dzialania do wyboru:" << endl; cout << "[1]dodawanie\n [2]odejmowanie\n [3]mnozenie\n [4]dzielenie\n [5]rezygnuj\n" << endl; cin >> menu; switch( menu ) { case 1: wynik = liczba1 + liczba2; cout << "liczba1+liczba2= " << wynik << endl; break; case 2: wynik = liczba1 - liczba2; cout << "liczba1-liczba2= " << wynik << endl; break; case 3: wynik = liczba1 * liczba2; cout << "liczba1 * liczba2= " << wynik << endl; break; case 4: wynik = liczba1 / liczba2; cout << "liczba1 / liczba2= " << wynik << endl; break; case 5: cout << "podaj " << endl; break; default: cout << " wybierz dzialanie: " << endl; cin >> menu; } return 0; }
mam problem z jedną rzeczą. jak mam zrobić by w klamrze switch wybierajac liczbe inna niz od 1 do 5 dzialanie wybierania sie powtarzalo. |
|
SeaMonster131 |
» 2012-07-25 18:46:01 if( liczba1 != 0 ); to Ci nic nie daje. A co do problemu - zastosuj jakąś pętlę, np do{}while. |
|
manhatan Temat założony przez niniejszego użytkownika |
» 2012-07-25 19:23:58 mozna jakis konkretny przyklad? |
|
SeaMonster131 |
» 2012-07-25 19:24:49 Sam zastosowałeś taką pętlę w swoim kodzie.. ? |
|
manhatan Temat założony przez niniejszego użytkownika |
» 2012-07-25 19:34:19 probuje i nie wychodzi mi to zupelnie dlatego prosze o konkretny przyklad
|
|
manhatan Temat założony przez niniejszego użytkownika |
» 2012-07-29 16:07:37 #include <iostream> using namespace std; int main() { float wynik; wynik = 0; int a, b, dzialanie; cout << "obecny wynik to: " << wynik << endl; cout << "podaj liczbe a: " << endl; cin >> a; if( a != 0 ) { cout << "podaj liczbe b: " << endl; cin >> b; if( b == 0 ) { cout << "bledna liczba, koniec programu." << endl; } if( b != 0 ) { cout << "[1]dodawanie \n" "[2]odejmowanie \n" "[3]mnozenie \n" "[4]dzielenie \n" "[5]rezygnuj \n" << endl; cout << "wybierz dzialanie: " << endl; cin >> dzialanie; do { switch( dzialanie ) { case 1: wynik = a + b; cout << "a+b= " << wynik << endl; break; case 2: wynik = a - b; cout << "a-b= " << wynik << endl; break; case 3: wynik = a * b; cout << "a*b= " << wynik << endl; break; case 4: wynik = a / b; cout << "a/b= " << wynik << endl; break; case 5: cout << "do zobaczenia." << endl; break; default: cout << "bledny numer" << endl; cout << "podaj numer dzialania" << endl; cin >> dzialanie; } } while( dzialanie > 5 ); } } if( a == 0 ) cout << "bledna liczba, koniec programu." << endl; return 0; }
ponawiam pytanie, w ktorym miejscu trzeba umiescic klamre do while zeby po wybraniu niewlasciwego case'a na nowo moc wybrac numer dzialania... |
|
BialyQ |
» 2012-08-27 23:54:13 Witaj :) Sam się uczę od niedawna c++ . Jestem przy lekcji 19, ale ten kalkulator z lekcji 15 nie sprawił mi problemu ;) Podaje Ci kod i przeanalizuj go. Może Ci pomoże ;) #include <iostream> int main() { int liczba; float a; float b; std::cout << "********************************************************************************"; std::cout << "Kalkulator V 1.0 by BialyQ. Wszystkie prawa zastrzezone ! :):):):):):):):):):):)"; std::cout << "********************************************************************************"; std::cout << "Wybierz jakie dzialanie chcesz przeprowadzic, wpisujac i zatwierdzajac liczbe z nawiasu [...]" << std::endl; std::cout << "--------------------------------------------------------------------------------" << std::endl; std::cout << "*****************" << std::endl; std::cout << "*[1] Dodawanie *" << std::endl; std::cout << "*[2] Odejmowanie*" << std::endl; std::cout << "*[3] Mnozenie *" << std::endl; std::cout << "*[4] Dzielenie *" << std::endl; std::cout << "*[5] Wyjscie *" << std::endl; std::cout << "*****************" << std::endl; do { std::cin >> liczba; if( liczba < 5 && liczba > 0 ) { std::cout << "Wpisz liczbe #1" << std::endl; std::cin >> a; std::cout << "Wpisz liczbe #2" << std::endl; std::cin >> b; } else std::cout << "Kategoria oznaczona cyfra " << liczba << " nie istnieje !" << std::endl; switch( liczba ) { case 1: std::cout << "Wynik: " << a + b << std::endl << std::endl; break; case 2: std::cout << "Wynik: " << a - b << std::endl << std::endl; break; case 3: std::cout << "Wynik: " << a * b << std::endl << std::endl; break; case 4: std::cout << "Wynik: " << a / b << std::endl << std::endl; break; } std::cout << "----------------------------------------------------" << std::endl; std::cout << "Wykonaj kolejne dzialanie wpisujac liczbe od 1 do 4:" << std::endl; } while( liczba != 5 ); return 0; }
@Down. Dzięki za kod :) |
|
Chris4132 |
» 2012-08-28 10:08:48 manhatan, w warunek kończący pętle wpisz while( dzialanie != 5 ) , a żeby znów wczytać case na początku pętli wpisz std::cin >> dzialanie i będzie ok :) Nie zapomnij o średnikach! :) Jeśli dobrze rozumiem o co ci chodzi to powinno rozwiązać wszystkie twoje problemy. Jak chcesz wyświetlić menu ponownie, za każdym razem powtarzania pętli to wpisz pod do twój kod wyświetlający menu :) Ale to powinieneś wiedzieć. :) BialyQ nie pisz {code} tylko {cpp} kod {/cpp} zamiast {} pisz [] :) |
|
« 1 » 2 |