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

Przechodzenie do kolejnej części kalkulatora

Ostatnio zmodyfikowano 2017-01-05 18:23
Autor Wiadomość
HudyWeas
Temat założony przez niniejszego użytkownika
Przechodzenie do kolejnej części kalkulatora
» 2017-01-04 19:35:42
Witam, po skończonej komendzie switch, po wykonaniu obliczeń nic mi się nie wyświetla, choć program powinien iść dalej. Chodzi mi o miejsce po 1 użyciu tej komendy. Nie mam zielonego pojęcia o co może chodzić Oto program.
C/C++
#include <iostream>
using namespace std;
int main()
{
    int a, b, wynik, znak1, znak2, c, dalej, wynik1;
    do
    {
        cout << "Podaj liczbe a: " << endl;
        cin >> a;
        cout << "Podaj liczbe b: " << endl;
        cin >> b;
    } while( a == 0 || b == 0 );
   
    cout << "Wybierz dzialanie:" << endl;
    cout << "[1] Dodawanie" << endl;
    cout << "[2] Odejmowanie" << endl;
    cout << "[3] Mnozenie" << endl;
    cout << "[4] Dzielenie" << endl;
    cout << "[5] Koniec" << endl;
    cin >> znak1;
    switch( znak1 )
    {
    case 1:
        {
            char dodawanie = a + b;
            cout << "a + b = " << a + b << endl;
            cin >> wynik;
            break;
        }
    case 2:
        {
            char odejmowanie = a - b;
            cout << "a -  b = " << a - b << endl;
            cin >> wynik;
            break;
        }
    case 3:
        {
            char mnozenie = a * b;
            cout << "a * b = " << a * b << endl;
            cin >> wynik;
            break;
        }
    case 4:
        {
            char dzielnie = a / b;
            cout << "a / b = " << a / b << endl;
            cin >> wynik;
            break;
        }
    case 5:
        {
            char rezygnuj;
            return 0;
        }
        default:
        cout << "Zly znak" << endl;
        break;
    }
   
    do
    {
        do
        {
            cout << "Wynik: " << wynik << endl;
            cout << "Podaj liczbe b: " << endl;
            cin >> c;
        } while( c == 0 );
       
        cout << "Wybierz dzialanie:" << endl;
        cout << "[1] Dodawanie" << endl;
        cout << "[2] Odejmowanie" << endl;
        cout << "[3] Mnozenie" << endl;
        cout << "[4] Dzielenie" << endl;
        cout << "[5] Koniec" << endl;
        cin >> znak2;
        switch( znak2 )
        {
        case 1:
            {
                char dodawanie = a + b;
                cout << "wynik + b = " << wynik + b << endl;
                cin >> wynik1;
                break;
            }
        case 2:
            {
                char odejmowanie = a - b;
                cout << "wynik -  b = " << wynik - b << endl;
                cin >> wynik1;
                break;
            }
        case 3:
            {
                char mnozenie = a * b;
                cout << "wynik * b = " << wynik * b << endl;
                cin >> wynik1;
                break;
            }
        case 4:
            {
                char dzielnie = a / b;
                cout << "wynik / b = " << wynik / b << endl;
                cin >> wynik1;
                break;
            }
        case 5:
            {
                char rezygnuj;
                return 0;
            }
            default:
            cout << "Zly znak" << endl;
            break;
        }
    } while( wynik1 != 0 );
   
    return 0;
}
P-155975
karambaHZP
» 2017-01-04 20:29:21
Ogólnie całość jest źle napisana.
Na początek
C/C++
char dodawanie = a + b;
cout << "a + b = " << a + b << endl;
cin >> wynik;
break;
Wyjaśnij krok po kroku, co robi ten kod?
P-155977
HudyWeas
Temat założony przez niniejszego użytkownika
» 2017-01-05 16:21:53
Wiem char jest niepotrzbne, to co wysłałeś służy do pokazania wyniku, a cin do zapisania go, by potem użyć tego wyniku
P-156030
karambaHZP
» 2017-01-05 16:48:56
służy do pokazania wyniku, a cin do zapisania go, by potem użyć tego wyniku
Powróć do » Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja i przeczytaj materiał od tej lekcji ponownie.
Tym razem wolniej i dokładnie analizując treść tematów.

C/C++
#include <iostream>

int main()
{
    int wynik;
    int pierwsza_liczba;
    int druga_liczba;
   
    std::cin >> pierwsza_liczba >> druga_liczba;
    wynik = pierwsza_liczba + druga_liczba;
    std::cout << wynik;
}
http://melpon.org/wandbox​/permlink/twtzP3feRBIpCOww
P-156031
HudyWeas
Temat założony przez niniejszego użytkownika
» 2017-01-05 17:06:56
Rozumiem. Cin zapisuje tylko to, co zapisuje użytkownik
P-156032
HudyWeas
Temat założony przez niniejszego użytkownika
» 2017-01-05 17:09:26
Czyli ta część powinna wyglądać tak:
C/C++
switch( znak1 )
{
case 1:
    {
        char dodawanie = a + b;
        cout << "a + b = " << a + b << endl;
        wynik = a + b;
        break;
    }
P-156033
karambaHZP
» 2017-01-05 17:14:47
Pomyśl przez chwilę, ile tutaj jest niepotrzebnego kodu.
C/C++
char dodawanie = a + b; // ta linia jest całkiem zbędna (nic z tym później nie robisz)
cout << "a + b = " << a + b << endl; // a tutaj wypisz tylko wartość zmiennej 'wynik'
wynik = a + b; // to daj przed std::cout
break;
P-156034
HudyWeas
Temat założony przez niniejszego użytkownika
» 2017-01-05 17:34:56
Masz rację. Teraz to wygląda o wiele lepiej
C/C++
switch( znak1 )
{
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:
    {
        return 0;
    }
    default:
    cout << "Zly znak" << endl;
    break;
}
P-156035
« 1 » 2
  Strona 1 z 2 Następna strona