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: #include <iostream> using namespace std; int wybor() { cout << "Wybierz funkcjonalnosc mojego programu:" << endl; cout << "2.Kalkulator" << endl; int x; if( x == 2 ) { kalkulator() } } 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 |
|
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: void kalkulator();
void wybor() { ... kalkulator(); }
...
void kalkulator() { ... }
|
|
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. Operacje matematycznepodrozdział: Reszta z dzielenia, a liczby rzeczywiste. |
|
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? :\ #include <iostream> using namespace std; void kalkulator(); void wybor() { cout << "Wybierz funkcjonalnosc mojego programu:" << endl; cout << "2.Kalkulator" << endl; int x; cin >> x; if( x == 2 ) { kalkulator(); } } 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'
|
|
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. |
|
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? |
|
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ą. |
|
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 |
|
« 1 » 2 |