Jak powrócić do wcześniej wykonywanej instrukcji gdy wystąpił bład
Ostatnio zmodyfikowano 2014-02-03 16:56
Traxxas Temat założony przez niniejszego użytkownika |
Jak powrócić do wcześniej wykonywanej instrukcji gdy wystąpił bład » 2014-02-02 16:37:10 Witam. Mam problem. Jak napisać program aby 1.Wpisuje 1 liczbe a.Program sprawdza czy to liczba czy litera b.jeżeli to litera wracam do kroku 1 jeżeli cyfra ide do kroku 2 2.Wpisuje 2 liczbe a.Program sprawdza czy to liczba czy litera b.jeżeli to litera wracam do kroku 1 jeżeli cyfra ide do kroku 3 3. .... cout << "Podaj 1 liczbe: "; cin >> liczba1; stan1 = cin.good(); cout << "\nPodaj 2 liczbe: "; cin >> liczba2; stan2 = cin.good(); cout << "\npodaj co chcesz zrobic\n"; cout << "1 Dodawanie" << endl; cout << "2 Odejmowanie" << endl; cout << "3 Mnozenie" << endl; cout << "4 Dzielenie" << endl; cout << "0 Exit" << endl; cin >> x;
dodatkowo , jak napisać aby dopiero po wpisaniu słowa "end" konczył pracę a nie dopiero jak wpiszę "0" |
|
SeaMonster131 |
» 2014-02-02 16:53:35 Musisz zastosować pętlę, np do { } while() . |
|
Deyvin |
» 2014-02-02 17:34:33 Spróbuj sam napisać kod z wykorzystaniem właśnie pętli. Czyścisz flagi błędów cin.clear(); bufor cin.sync(); następnie pobierasz dane do zmiennej, sprawdzasz czy to liczba np. if( cin.good() ) no to lecisz dalej, jeśli znak to jeszcze jeden cykl pętli. |
|
Traxxas Temat założony przez niniejszego użytkownika |
» 2014-02-02 20:56:45 W miarę zaczynam kminić , dzięki za podpowiedzi.
I jeszcze jedno pytanko. Był taki program co się rysowało róznego prostokąty , można w nich było pisać i łaczyć je ze sobą.Taki plan działania i teraz tak sobie myślę że to super zda egzamin w konstruowaniu kodu programu. C++ to nic innego jak puzle(komendy) które trzeba połączyć tak aby działały. Kiedyś coś takiego widziałem na androida i na PC ale nie mogę tego znaleźć. |
|
Traxxas Temat założony przez niniejszego użytkownika |
» 2014-02-02 23:38:03 #include <iostream> #include <limits> using namespace std;
int main() { float liczba1, liczba2; int x; bool ww; do { cout << " -------------------------------------------------------\n" << " ---------------------------------------------------------\n" << "--------------------K A L K U L A T O R--------------------\n" << " ---------------------------------------------------------\n" << " -------------------------------------------------------\n"; do { cout << "\nPodaj 1 liczbe: "; cin >> liczba1; ww = liczba1; ww = cin.good(); cin.sync(); cin.clear(); if( !ww ) { cin.sync(); cin.clear(); cout << "Podales nieprawidlowa liczbe. Sproboj jeszcze raz\n"; } } while( !ww ); do { cout << "\nPodaj 2 liczbe: "; cin >> liczba2; ww = liczba2; ww = cin.good(); cin.sync(); cin.clear(); if( !ww ) { cin.sync(); cin.clear(); cout << "Podales nieprawidlowa liczbe. Sproboj jeszcze raz\n"; } } while( !ww ); do { cout << "*************************"; cout << "\n1 Dodawanie" << endl; cout << "2 Odejmowanie" << endl; cout << "3 Mnozenie" << endl; cout << "4 Dzielenie" << endl; cout << "\n0 Exit\n\n" << endl; cout << "wybor : "; cin >> x; ww = x; ww = cin.good(); cin.sync(); cin.clear(); if( x > 4 ) { cin.sync(); cin.clear(); cout << "Podales nieprawidlowa liczbe. Sproboj jeszcze raz\n"; } if( !ww ) { cin.sync(); cin.clear(); cout << "Podales nieprawidlowa liczbe. Sproboj jeszcze raz\n"; } } while( !ww, x > 4 ); switch( x ) { case 1: cout << "*************************" << "\nWynikiem dodawania " << liczba1 << " i " << liczba2 << " jest wynik " << liczba1 + liczba2 << "\n\n" << endl; break; case 2: cout << "*************************" << "\nWynikiem odejmowania " << liczba1 << " i " << liczba2 << " jest wynik " << liczba1 - liczba2 << "\n\n" << endl; break; case 3: cout << "*************************" << "\nWynikiem mnozenia " << liczba1 << " i " << liczba2 << " jest wynik " << liczba1 * liczba2 << "\n\n" << endl; break; case 4: cout << "*************************" << "\nWynikiem dzielenia " << liczba1 << " i " << liczba2 << " jest wynik " << liczba1 / liczba2 << "\n\n" << endl; break; case 0: cout << "\nDziekuje za uzycie programu\n"; break; } } while( x != 0 ); system( "pause" ); return 0; }
|
|
Deyvin |
» 2014-02-03 16:56:04 Brawo! O to chodziło. Dodatkowo mógłbyś poprawić to, że w pętli i w zagnieżdżonym if'ie czyścisz flagi błędów i bufor, wystarczy raz na początku pętli bo pobierasz dane do zmiennej tylko raz w jednym kroku pętli, if'em sprawdzasz czy był błąd i wyświetlasz o tym komunikat. |
|
« 1 » |