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

Prosty kalkulator z wykorzystaniem funkcji, proszę o pomoc

Ostatnio zmodyfikowano 2016-06-20 17:43
Autor Wiadomość
Maciekb
Temat założony przez niniejszego użytkownika
Prosty kalkulator z wykorzystaniem funkcji, proszę o pomoc
» 2016-06-19 20:27:33
C/C++
#include<iostream>
using namespace std;
int wczyta()
{
    int a;
    cout << "Podaj liczbe a:";
    cin >> a;
    return a;
}
int wczytb()
{
    int b;
    cout << "Podaj liczbe b:";
    cin >> b;
    return b;
   
}

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



int main()
{
    wczyta();
    wczytb();
   
    dodawanie( wczyta(), wczytb() );
   
    cout << "a+b=" << dodawanie();
   
}

W tym kodzie kompilator wypluwa mi błąd o następującej treści:

C:\Users\Maciek\Desktop\Funkcje 4.cpp||In function 'int main()':|
C:\Users\Maciek\Desktop\Funkcje 4.cpp|19|error: too few arguments to function 'int dodawanie(int, int)'|
C:\Users\Maciek\Desktop\Funkcje 4.cpp|33|error: at this point in file|
||=== Build finished: 2 errors, 0 warnings ===|

Dlaczego tak się dzieje co zmaściłem?
P-149275
Gibas11
» 2016-06-19 20:29:38
C/C++
int wynik = dodawanie( wczyta(), wczytb() );
cout << "a+b=" << wynik;
Wstawiaj kod w znaczniki.
[cpp]...[/cpp]

EDIT:
Ew. tak:
C/C++
cout << "a+b=" << dodawanie( wczyta(), wczytb() );
P-149276
Maciekb
Temat założony przez niniejszego użytkownika
» 2016-06-19 20:35:23
C/C++
#include<iostream>
using namespace std;
int wczyta()

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

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



int main()
{
    wczyta();
    wczytb();
   
   
    cout << "a+b=" << dodawanie( wczyta(), wczytb() );;
   
}

Zadziałało ale teraz program karze wpisywać a i b dwa razy, dlaczego tak się stało?
P-149278
carlosmay
» 2016-06-19 20:50:40
C/C++
wczyta();
wczytb(); // tutaj funkcje wczytują pierwszy raz (zbędne wywołania, nic nie wnoszą do kodu)


cout << "a+b=" << dodawanie( wczyta(), wczytb() ); // tutaj drugi raz, tylko to wystarczy do poprawnego działania
P-149279
Gibas11
» 2016-06-19 21:04:39
Żeby rozwiać wątpliwości - pamiętaj że kod z funkcji jest wykonywany przy każdym wywołaniu.
P-149281
Maciekb
Temat założony przez niniejszego użytkownika
» 2016-06-20 15:03:00
Wielkie dzięki za wytłumaczenie, działa :)
P-149299
Maciekb
Temat założony przez niniejszego użytkownika
» 2016-06-20 15:11:23
C/C++
#include<iostream>
using namespace std;
int wczyta()
{
    int a;
    cout << "Podaj liczbe a:";
    cin >> a;
    return a;
}
int wczytb()
{
    int b;
    cout << "Podaj liczbe b:";
    cin >> b;
    return b;
   
}

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



int main()
{
   
    cout << "a+b=" << dodawanie( wczytb(), wczyta() );
   
}
Jeszcze jedno: zamieniłem kolejność i nic to nie zmieniło
cout << "a+b=" << dodawanie( wczytb(), wczyta() );
  od czego zależy kolejność wykonywania funkcji?
P-149300
lukmas3
» 2016-06-20 15:20:40
cout << "a+b=" << dodawanie( wczytb(), wczyta() );

W tym kodzie masz najpierw wywołane wczytb() a potem wczyta(). Nie widzisz róznicy mnoże przez cout << a+b. Daj sobie cout << b+a;

jeśli chodzi o sam wynik to wyniku kolejność wywolania tych funkcji i tak nie zmieni.
P-149301
« 1 » 2
  Strona 1 z 2 Następna strona