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

[lekcja 17] Zadanie z lekcji

Ostatnio zmodyfikowano 2014-06-14 22:57
Autor Wiadomość
grzeso
Temat założony przez niniejszego użytkownika
[lekcja 17] Zadanie z lekcji
» 2014-06-14 21:41:16
C/C++
#include <iostream>
void moja_funkcja()
{
    std::cout << "[1] - dodawanie" << std::endl;
    std::cout << "[2] - odejmowanie" << std::endl;
    std::cout << "[0] - wyjscie z programu" << std::endl;
}

void dodawanie()
{
    int a, b;
    std::cout << "wynik: " << a + b;
}

void odejmowanie()
{
    int a, b;
    std::cout << "odejmowanie: " << a - b;
}

int wczytywanie()
{
    int a, b;
    std::cout << "Podaj liczbe a:";
    std::cin >> a;
    std::cout << "Podaj liczbe b:";
    std::cin >> b;
    return a;
    return b;
}

int main()
{
    std::cout << "W programie sa dostepne nastepujace opcje:" << std::endl;
    moja_funkcja();
    std::cout << "Zycze przyjemnego korzystania z programu :)" << std::endl << std::endl;
    int liczba;
    do
    {
        wczytywanie();
        moja_funkcja();
        std::cin >> liczba;
       
        switch( liczba )
        {
        case 1:
            dodawanie();
            break;
        case 2:
            odejmowanie();
            break;
            default:
            break;
        } //switch
    } while( liczba != 0 );
   
    return 0;
}

Dlaczego wykonując funkcje
dodawanie()
 i
odejmowanie()
 liczy w ten sposób: b+liczba i b-liczba, a nie a+b i a-b
P-112084
SeaMonster131
» 2014-06-14 21:48:47
Funkcja wczytywanie() zwraca Ci wartość tylko zmiennej a (z którą i tak nic nie robisz). Funkcje dodawanie() oraz odejmowanie() zwracają wynik dodawania lub odejmowania liczb, którym nie nadałeś żadnej wartości.
P-112085
grzeso
Temat założony przez niniejszego użytkownika
» 2014-06-14 22:57:58
Dzięki.

Nie ogarnąłem że jak używam
void
 to funkcja ani nic nie pobierze, ani nic nie zwróci. Wszystko łącznie z wczytanie i policzeniem musi być wewnątrz funkcji.

A funkcja
C/C++
int wczytywanie()
{
    int a, b;
    std::cout << "Podaj liczbe a:";
    std::cin >> a;
    std::cout << "Podaj liczbe b:";
    std::cin >> b;
    return a;
    return b;
}

jest bez sensu bo chce wpisać i zwrócić 2 liczby, a w funkcjach chodzi o to żeby wczytać jedną a funkcje wywołać 2 razy.

Rozwiązanie mojego problemu jakby kogoś kiedyś interesowało:
C/C++
#include <iostream>


void moja_funkcja()
{
    std::cout << "[1] - dodawanie" << std::endl;
    std::cout << "[2] - odejmowanie" << std::endl;
    std::cout << "[0] - wyjscie z programu" << std::endl;
}

int dodawanie( int a, int b )
{
    //  int a,b;
    return a + b;
}

int odejmowanie( int a, int b )
{
    // int a,b;
    return a - b;
}

int wczytywanie()
{
    int x;
    std::cout << "Podaj liczbe:";
    std::cin >> x;
    return x;
}

int main()
{
    std::cout << "W programie sa dostepne nastepujace opcje:" << std::endl;
    moja_funkcja();
    std::cout << "Zycze przyjemnego korzystania z programu :)" << std::endl << std::endl;
    int liczba;
    do
    {
        int a = wczytywanie();
        int b = wczytywanie();
        moja_funkcja();
        std::cin >> liczba;
       
        switch( liczba )
        {
        case 1:
            {
                int w = dodawanie( a, b );
                std::cout << "Wynik:" << w << std::endl;
                break;
            }
           
        case 2:
            {
                int w = odejmowanie( a, b );
                std::cout << "Wynik:" << w << std::endl;
                break;
            }
           
            default:
            break;
        } //switch
    } while( liczba != 0 );
   
    return 0;
}
P-112092
« 1 »
  Strona 1 z 1