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

Funkcje kalkulator problem z kompilacja

Ostatnio zmodyfikowano 2016-09-09 22:52
Autor Wiadomość
silvergold
Temat założony przez niniejszego użytkownika
Funkcje kalkulator problem z kompilacja
» 2016-09-09 22:12:08
Witam, nie wiem dlaczego program dziala niepoprawnie i konczy działanie po wypisaniu funkcji kalkulatora.
Proszę o pomoc :)
C/C++
#include <iostream>
#include <cstdlib>

using namespace std;
void funkcje()
{
    cout << "[1] dodawanie" << endl;
    cout << "[2] odejmowanie" << endl;
    cout << "[3] mnozenie" << endl;
    cout << "[4] dzielenie" << endl;
}
int Dzialanie()
{
    do
    {
        int a;
        cin.clear();
        cin.sync();
        cin >> a;
    }
    while( !cin.good() );
   
    return a;
}
int dodawanie()
{
    do
    {
        int a;
        int b;
        cout << "podaj liczby ktore chcesz zsumowac:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a + b;
    return wynik;
}
int odejmowanie()
{
    do
    {
        int a;
        int b;
        cout << "podaj liczby ktore chcesz odjac:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a - b
    return wynik;
}
int mnozenie()
{
    do
    {
        int a;
        int b;
        cout << "podaj liczby ktore chcesz pomnozyc:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a * b;
    return wynik;
}
int dzielenie()
{
    do
    {
        int a;
        int b;
        cout << "podaj liczby ktore chcesz podzielic:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a / b;
    return wynik;
}
int main()
{
   
    cout << "Kalkulator" << endl;
    funkcje();
    cout << "jakie dzialanie wybierasz ?:" << Dzialanie() << endl;
    switch( Dzialanie() )
    {
    case 1:
        dodawanie();
        break;
    case 2:
        odejmowanie();
        break;
    case 3:
        mnozenie();
        break;
    case 4:
        dzielenie();
        break;
        default:
        cout << "Koniec programu";
    }
   
   
    system( "pause" );
   
    return 0;
}
[ \c pp ]
P-151606
kistel66
» 2016-09-09 22:23:17
C/C++
#include <iostream>
#include <cstdlib>

using namespace std;
void funkcje()
{
    cout << "[1] dodawanie" << endl;
    cout << "[2] odejmowanie" << endl;
    cout << "[3] mnozenie" << endl;
    cout << "[4] dzielenie" << endl;
}
int Dzialanie()
{
    int a;
    do
    {
        // int a; to a jest widoczne tylko w tej petli
        cin.clear();
        cin.sync();
        cin >> a;
    }
    while( !cin.good() );
   
    return a;
}
void dodawanie()
{
    int a;
    int b;
    do
    {
        //int a;
        // int b; to samo co w poprzedniej funkcji
        cout << "podaj liczby ktore chcesz zsumowac:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a + b;
    cout << "Wynik dodawania: " << wynik << endl;
}
void odejmowanie()
{
    int a;
    int b;
    do
    {
        //int a;
        //int b;
        cout << "podaj liczby ktore chcesz odjac:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a - b;
    cout << "Wynik odejmowania: " << wynik << endl;
}
void mnozenie()
{
    int a;
    int b;
    do
    {
       
        cout << "podaj liczby ktore chcesz pomnozyc:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a * b;
    cout << "Wynik mnozenia: " << wynik << endl;
}
void dzielenie()
{
    int a;
    int b;
    do
    {
       
        cout << "podaj liczby ktore chcesz podzielic:" << endl;
        cin >> a;
        cin >> b;
    }
    while( !cin.good() );
   
    int wynik = a / b;
    cout << "Wynik dzielenia: " << wynik << endl;
}
int main()
{
   
    cout << "Kalkulator" << endl;
    funkcje();
    cout << "jakie dzialanie wybierasz ?:" << endl;
    switch( Dzialanie() )
    {
    case 1:
        dodawanie();
        break;
    case 2:
        odejmowanie();
        break;
    case 3:
        mnozenie();
        break;
    case 4:
        dzielenie();
        break;
        default:
        cout << "Koniec programu";
    }
   
   
    system( "pause" );
   
    return 0;
}
P-151608
silvergold
Temat założony przez niniejszego użytkownika
Odpowiedz
» 2016-09-09 22:37:27
Wielkie dzięki za odpowiedź i pomoc ;)
Możesz mi tylko jeszcze wytłumaczyć dlaczego w typie funkcji zamieniłeś int na void?
P-151612
kistel66
» 2016-09-09 22:45:28
Po prostu mam sentyment do voida ;)

Można oczywiście zapisać tak:

C/C++
int dodawanie()
{
    //jakieś instrukcje
   
    return a + b; //możesz zapisać to w taki sposób, zamiast pisać int wynik = a+b; return wynik;

I potem w switchu

C/C++
switch( Dzialanie() )
{
case 1:
    cout << dodawanie() << endl;
    break;
    //dalsze instrukcje
P-151613
silvergold
Temat założony przez niniejszego użytkownika
» 2016-09-09 22:52:56
Super, teraz ogarniam.
Jeszcze raz dziękuję za pomoc ;)
P-151614
« 1 »
  Strona 1 z 1