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

Powtarzanie switcha w pętli

Ostatnio zmodyfikowano 2013-07-31 00:43
Autor Wiadomość
Bohaterowicz
Temat założony przez niniejszego użytkownika
Powtarzanie switcha w pętli
» 2013-07-30 22:51:49
Tytuł dość dobrze opisuje mój problem, lecz wytłumaczę go dokładnie. Otóż napisałem mały kalkulator który sam w sobie działa, lecz jako że każdy (chyba) lubi dążyć do perfekcji chciałbym by switch w którym wybiera się rodzaj działania powtarzał się za każdym razem gdy wpisze się zły numer wyboru, lub działanie się wykona. Poniżej przykładowy kod jak to wygląda (nie chce wklejać oryginalnego kodu bo to zajęło by dużo miejsca)

Switch(wybor)
    case 1
      dodawanie
    case 2
      odejmowanie
    case 3
      mnozenie
    case 4
      dzielenie
    case 5
      wyjscie

w skrócie: gdzie powinienem umieścić pętle i jak ją uargumentować tak by program nie kończył się za każdym razem gdy wybierze się zły numer, lub działanie się wykona.
Jeśli będzie trzeba to umieszczę cały kod.
P-89074
MrPoxipol
» 2013-07-30 23:17:13
C/C++
bool powtarzaj = true;
while( powtarzaj )
{
    switch( foo )
    {
    case 1: powtarzaj = false; break;
    }
}
P-89075
damian19dk
» 2013-07-30 23:18:46
Switcha umieść w pętli (np.: do-while) z warunkiem ( wybor != 5). W switchu umieść jeszcze default:  na złą liczbę np.: 11.
Myślę, że to powinno pomóc...
Sorry, że tak późno piszę.

EDIT:
C/C++
do
{
    Switch( wybor )
    case 1
: dodawanie();
    break;
case 2:
   
    odejmowanie();
    break;
case 3:
   
    mnozenie();
    break;
case 4:
   
    dzielenie();
    break;
case 5:
   
    wyjscie();
    break;
   
    default:
    std::cout << "Zły wybór..." << std::endl;
    break;
} while( wybor != 5 )
P-89076
Bohaterowicz
Temat założony przez niniejszego użytkownika
» 2013-07-30 23:38:00
Panowie, wielkie dzięki za próbe pomocy, lecz nauke C++ zacząłem dzisiaj rano więc rozumiem tylko podstawowe podstawy.
MrPoxipol, choć naprawde się starałem zrozumieć to co napisałeś to nie mam zielonego pojęcia o co chodzi w tym kodzie, ani jak miał bym go zaimplementować do mojego programu.

damian19dk Próbowałem coś z tym zorbić, ale chyba też nie do końca rozumiem, przez co nie wiem jak to zastosować.
Postanowiłem zamieścić kod byście mogli mi dokładnie pokazać jak to powinno wyglądać, bo próbowałem już wiele sposobów i choć większość przechodziło próbe kompilacji to gdy wpisywałem złą liczbe to program tak jakby się zawieszał :(

C/C++
int main() {
    double x, y;
    int wyb;
    cout << "Jakie obliczenie chcesz wykonac?" << endl;
    cout << "1. Dodawanie \n2. Odejmowanie \n3. Mnozenie \n4. Dzielenie \n5 Wyjscie" << endl;
    cin >> wyb;
    switch( wyb ) {
    case 1:
        cout << "Podaj pierwsza liczbe: " << endl;
        cin >> x;
        cout << "Podaj druga liczbe: " << endl;
        cin >> y;
        cout << "Wynik to: " << dodaj( x, y );
        cin.get();
        break;
       
    case 2:
        cout << "Podaj pierwsza liczbe: " << endl;
        cin >> x;
        cout << "Podaj druga liczbe: " << endl;
        cin >> y;
        cout << "Wynik to: " << odjac( x, y );
        cin.get();
        break;
       
    case 3:
        cout << "Podaj pierwsza liczbe: " << endl;
        cin >> x;
        cout << "Podaj druga liczbe: " << endl;
        cin >> y;
        cout << "Wynik to: " << mnozyc( x, y );
        cin.get();
        break;
       
    case 4:
        cout << "Podaj pierwsza liczbe: " << endl;
        cin >> x;
        cout << "Podaj druga liczbe: " << endl;
        cin >> y;
        cout << "Wynik to: " << dzielic( x, y );
        cin.get();
        break;
       
    case 5:
        return 0;
    }
   
    cin.get();
    return 0;
}

PS: sposoby wykonywania działań umieściłem w innych funkcjach bo bardzo spodobał mi się ten sposób.
P-89077
damian19dk
» 2013-07-30 23:42:51
Tak na przyszłość(nie żeby coś), kod zamieszczaj w znacznikach [ cpp ][ /cpp ] a nie <cpp></cpp>, ale tym się nie przejmuj...
Teraz pytanie: czy chcesz, żebyśmy napisali ci poprawny kod, czy też wyjaśnili? Bo na twoim etapie nauki programowania z wyjaśnieniem może być nie najlepiej :)
P-89078
Bohaterowicz
Temat założony przez niniejszego użytkownika
» 2013-07-30 23:48:07
najlepiej byś napisał kod, ( jak byś mógł to wyjaśnij najważniejsze rzeczy) popatrzę na niego trochę to może sam dojdę co robiłem źle.
P-89079
damian19dk
» 2013-07-30 23:55:52
Niektórzy mówią, że to podanie ryby, a nie wędki, ale co mi tam. Oto kod (powinno działać):
C/C++
int main() {
    double x, y;
    int wyb;
    cout << "Jakie obliczenie chcesz wykonac?" << endl;
    do {
        cout << "1. Dodawanie \n2. Odejmowanie \n3. Mnozenie \n4. Dzielenie \n5 Wyjscie" << endl;
        cin >> wyb;
        switch( wyb ) {
        case 1:
            cout << "Podaj pierwsza liczbe: " << endl;
            cin >> x;
            cout << "Podaj druga liczbe: " << endl;
            cin >> y;
            cout << "Wynik to: " << dodaj( x, y );
            cin.get();
            break;
           
        case 2:
            cout << "Podaj pierwsza liczbe: " << endl;
            cin >> x;
            cout << "Podaj druga liczbe: " << endl;
            cin >> y;
            cout << "Wynik to: " << odjac( x, y );
            cin.get();
            break;
           
        case 3:
            cout << "Podaj pierwsza liczbe: " << endl;
            cin >> x;
            cout << "Podaj druga liczbe: " << endl;
            cin >> y;
            cout << "Wynik to: " << mnozyc( x, y );
            cin.get();
            break;
           
        case 4:
            cout << "Podaj pierwsza liczbe: " << endl;
            cin >> x;
            cout << "Podaj druga liczbe: " << endl;
            cin >> y;
            cout << "Wynik to: " << dzielic( x, y );
            cin.get();
            break;
           
        case 5:
            return 0;
        }
       
    } while( wyb != 5 )
         cin.get();
   
    return 0;
}

EDIT:
Umieszczasz to co potrzebne w pętli, która działa, póki wykonuje się warunek (czyli dopóki wyb NIE JEST równy 5). Jeśli wyb = 5 to pętla się kończy i wszystko jest cacy!
EDIT2: Wielkich zmian tam nie ma, ale jaki efekt...
P-89080
MrPoxipol
» 2013-07-31 00:01:58
Ogólnie to » KursyKurs C++ kurs i po jakimś czasie będziesz już sam wiedział co i jak. @up tu nie podajemy gotowców, niech człowiek sam pomyśli.
P-89081
« 1 » 2
  Strona 1 z 2 Następna strona