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

Funkcje w kalkulatorze

Ostatnio zmodyfikowano 2013-12-05 21:19
Autor Wiadomość
najkosz
Temat założony przez niniejszego użytkownika
Funkcje w kalkulatorze
» 2013-12-04 16:41:54
Uczę się w szkole i z tego kursu od września. Korzystam z Dev-C++ 5.4.2 i mam problem z takim programem:
C/C++
#include <iostream>
using namespace std;
int wybor()
{
    cout << "Wybierz funkcjonalnosc mojego programu:" << endl;
    //cout<<"1.Przelicznik"<<endl;
    cout << "2.Kalkulator" << endl;
    //cout<<"3.Kalkulator z przelicznikiem"<<endl;
    int x;
    //if (x==1)
    //{
    //
    //}
    if( x == 2 )
    {
        kalkulator()
    }
    //if(x==3)
    //{
    //
    //}
}
int dodawanie()
{
    double a;
    double b;
    cin >> a >> b;
    cout << a << "+" << b << "=" << a + b << endl;
}
int odejmowanie()
{
    double a, b;
    cin >> a >> b;
    cout << a << "-" << b << "=" << a - b << endl;
}
int mnozenie()
{
    double a, b;
    cin >> a >> b;
    cout << a << "*" << b << "=" << a * b << endl;
}
int dzielenie()
{
    double a, b;
    cin >> a >> b;
    cout << a << "/" << b << "=" << a / b << endl;
}
int modulo()
{
    double a, b;
    cin >> a >> b;
    cout << a << "%" << b << "=" << a % b << endl;
}
int kalkulator()
{
    int y;
    cout << "Wybierz dzialanie" << endl;
    cout << "1.Dodawanie" << endl;
    cout << "2.Odejmowanie" << endl;
    cout << "3.Mnozenie" << endl;
    cout << "4.Dzielenie" << endl;
    cout << "5.Modulo (reszta z dzielenia)" << endl;
    if( y == 1 )
    {
        dodawanie()
    }
    if( y == 2 )
    {
        odejmowanie()
    }
    if( y == 3 )
    {
        mnozenie()
    }
    if( y == 4 )
    {
        dzielenie()
    }
    if( y == 5 )
    {
        modulo()
    }
}
int main()
{
    wybor()
    return 0;
}
Log kompilacji:

C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'int wybor()':
16 12 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'kalkulator' was not declared in this scope
17 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'int modulo()':
52 25 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] invalid operands of types 'double' and 'double' to binary 'operator%'
C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'int kalkulator()':
66 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
70 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
74 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
78 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
82 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'int main()':
87 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before 'return'
Jest parę będów, któreych jednak nie zauważam lub widzę, ale nie umiem rozpoznać.
Pomocy!
Z góry dzięki :D
P-98281
SeaMonster131
» 2013-12-04 16:44:45
Nigdzie nie wpisujesz wartości zmiennej x w funkcji wybor() oraz y w funkcji kalkulator(). Ponadto nie masz paru średników oraz zmień typ funkcji z int na void, skoro one nic nie zwracają.
I jeszcze jedna rzecz, musisz w ten sposób zadeklarować i zdefiniować funkcje:
C/C++
void kalkulator();

void wybor()
{
    ...
    kalkulator();
}

...

void kalkulator()
{
    ...
}
P-98284
R3V0
» 2013-12-04 16:53:26
masz tu trochę błędów, braków średników. funkcje się nie widzą, bo kompilator, sprawdzając funkcje, nie widzi tych zadeklarowanych niżej, w/g kompilatora ich nie ma.

» Kurs C++ » Poziom 1Operacje matematyczne lekcja

podrozdział:
Reszta z dzielenia, a liczby rzeczywiste.
P-98290
najkosz
Temat założony przez niniejszego użytkownika
» 2013-12-04 17:33:51
A mógłbym wiedzieć gdzie te braki średników się zanjdują? Jakiś poprawiony kod?
I mam wtedy przesunąć deklaracje funkcji dodawanie() itp. przed wybor()?
Jeszcze raz dzięki.
@SeaMonster131: nie do końca rozumiem twój zapis. Poprawiam tak jak napisałeś, ale coś nie wychodzi.
@R3VO: kod poniżej, razem z logiem. Mógłbyś wyrażać się jaśniej i powiedzieć, jak to poustawiać albo pozmieniać coś w kodzie? :\
C/C++
#include <iostream>
using namespace std;
void kalkulator();
void wybor()
{
    cout << "Wybierz funkcjonalnosc mojego programu:" << endl;
    //cout<<"1.Przelicznik"<<endl;
    cout << "2.Kalkulator" << endl;
    //cout<<"3.Kalkulator z przelicznikiem"<<endl;
    int x;
    //if (x==1)
    //{
    //
    //}
    cin >> x;
    if( x == 2 )
    {
        kalkulator();
    }
    //if(x==3)
    //{
    //
    //}
}
void kalkulator()
{
    int y;
    cout << "Wybierz dzialanie" << endl;
    cout << "1.Dodawanie" << endl;
    cout << "2.Odejmowanie" << endl;
    cout << "3.Mnozenie" << endl;
    cout << "4.Dzielenie" << endl;
    cout << "5.Modulo (reszta z dzielenia)" << endl;
    cin >> y;
    if( y == 1 )
    {
        dodawanie()
    }
    if( y == 2 )
    {
        odejmowanie()
    }
    if( y == 3 )
    {
        mnozenie()
    }
    if( y == 4 )
    {
        dzielenie()
    }
    if( y == 5 )
    {
        modulo()
    }
}
int main()
{
    wybor()
    return 0;
}
Log kompilacji:

C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'void kalkulator()':
37 11 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'dodawanie' was not declared in this scope
38 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
41 13 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'odejmowanie' was not declared in this scope
42 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
45 10 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'mnozenie' was not declared in this scope
46 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
49 12 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'dzielenie' was not declared in this scope
50 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
53 9 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'modulo' was not declared in this scope
54 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token
C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'int main()':
59 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before 'return'
P-98299
pekfos
» 2013-12-04 17:37:29
A mógłbym wiedzieć gdzie te braki średników się zanjdują?
Przecież masz to w logu kompilacji.
P-98301
najkosz
Temat założony przez niniejszego użytkownika
@pekfos
» 2013-12-04 17:51:53
Może i mam, ale log kompilacji to dla mnie (naszczęście już tylko) szara magia. Mógłbyś wskazać która to fraza?
P-98310
RazzorFlame
» 2013-12-04 17:59:26
Musisz się nauczyć korzystać z logu kompilacji. Masz tam podaną zawsze linie w której występuje błąd. Po wywołaniach funkcji stawia się średnik (chociaż nie zawsze) ale w twoim przypadku akurat trzeba. Nie pomyl wywołań z definicją.
P-98313
R3V0
» 2013-12-04 18:15:12

38 1 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] expected ';' before '}' token

oznacza, że w lini 38* jest błąd opisany: przypuszczalnie brak ';' przed znakiem ')'


*czasami to jest na końcu poprzedniej lini, czyli w tym wypadku 37

natomiast


37 11 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'dodawanie' was not declared in this scope

w lini 37 'dodawanie' nie zostało zadeklarowane w tym zakresie ( w tym wypadku funkcji )

aby rozwiązać ten problem, tak jak Ci to napisał SeaMonster131, zadeklaruj funkcje, a później je zdefiniuj. unikniesz błędów związanych z nie odnajdywaniem się ich wzajemnie
P-98320
« 1 » 2
  Strona 1 z 2 Następna strona