Funkcje w kalkulatorze
Ostatnio zmodyfikowano 2013-12-05 21:19
najkosz Temat założony przez niniejszego użytkownika |
Podziękowania » 2013-12-04 18:31:41 Dziękuję wszystkim którzy mi pomogli. Może śmiesznie to zabrzmi, ale program jest jeszcze nieukończony. Oto kod na teraz: #include <iostream> using namespace std; void kalkulator(); void twoj_wybor() { cout << "Twoj wybor to: "; } void wybor() { cout << "Wybierz funkcjonalnosc mojego programu:" << endl; cout << "2.Kalkulator" << endl; double x; twoj_wybor(); cin >> x; while( x > 3 ) { cout << "Twoj wybor nie jest zadeklarowany" << endl; twoj_wybor(); cin >> x; } if( x == 2 ) { kalkulator(); } } void dodawanie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "+" << b << "=" << a + b << endl;; } void odejmowanie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "-" << b << "=" << a - b << endl; } void mnozenie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "*" << b << "=" << a * b << endl; } void dzielenie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "/" << b << "=" << a / b << endl; } void modulo() { int a, b; cout << "Tylko liczby całkowite"; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:" << endl; cin >> b; cout << a << "/" << b << "=" << a / b << " reszta " << a % b << endl; } 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; twoj_wybor(); 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; }
I jeszcze jedno @SeaMonster131: skąd tam w tym twoim przykładowym kodzie na początku wzięło się wywołanie niezdefiniowanego jeszcze kalkulatora ()? Mógłbyś mi wytłumaczyć jak to się dzieje, że to kompiluje się bez błędów? |
|
R3V0 |
» 2013-12-04 20:49:10 pisząc na początku programu void kalkulator(); , oznajmiasz kompilatorowi, że coś takiego jak funkcja 'kalkulator' będzie miała miejsce w Twoim programie(deklarujesz ją). później(niżej) możesz napisać jej definicję. kompilator "widzi" zadeklarowaną funkcję i nie zwraca błędu, niezależnie gdzie jest zdefiniowana. ja definiuje je za "main'em", bo jest mi wygodniej. |
|
najkosz Temat założony przez niniejszego użytkownika |
Kolejny problem » 2013-12-05 16:01:32 Mam nowy problem. Chcę zrobić kolejną fukcję z pętlą while, ale nie wiem gdzie umiescić jej deklarację. Oto kod: #include <iostream> using namespace std; void kalkulator(); void twoj_wybor() { cout << "Twoj wybor to: "; } void wybor() { cout << "Wybierz funkcjonalnosc mojego programu:" << endl; cout << "2.Kalkulator" << endl; double x; twoj_wybor(); cin >> x; while( x >= 3 ) { cout << "Twoj wybor nie jest zadeklarowany" << endl; twoj_wybor(); cin >> x; } if( x == 2 ) { kalkulator(); } } void dodawanie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "+" << b << "=" << a + b << endl;; } void odejmowanie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "-" << b << "=" << a - b << endl; } void mnozenie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "*" << b << "=" << a * b << endl; } void dzielenie() { double a, b; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:"; cin >> b; cout << a << "/" << b << "=" << a / b << endl; } void modulo() { int a, b; cout << "Tylko liczby calkowite" << endl; cout << "Wprowadz 1.liczbe:"; cin >> a; cout << "Wprowadz 2.liczbe:" << endl; cin >> b; cout << a << "/" << b << "=" << a / b << " reszta " << a % b << endl; } 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; twoj_wybor(); 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(); kontynuacja(); return 0; } void kontynuacja() { int x; cout << "Aby kontynuowac nacisnij 1. Aby zakonczyc nacisnij 2." << endl; cin >> x; while( x == 1 ) { main(); } }
A tu log kompilacji: C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp In function 'int main()': 117 13 C:\Documents and Settings\Piotr\Moje dokumenty\Kalkulator mega kod.cpp [Error] 'kontynuacja' was not declared in this scope
Proszę o pilną pomoc!!! |
|
Monika90 |
» 2013-12-05 16:05:17 Musisz umieścić definicję funkcji kontynuacja, albo tylko deklarację przed main. Z tym że ta funkcja jest błędna, ponieważ w nie wolno wywoływać funkcji main. |
|
najkosz Temat założony przez niniejszego użytkownika |
» 2013-12-05 16:09:08 @Monika90: dziękuję. Więc w tym przypadku mam wywołać funkcję wybor()??? |
|
Monika90 |
» 2013-12-05 16:31:15 void kontynuacja() { int x = 1; while( cin && x == 1 ) { wybor(); cout << "Aby kontynuowac nacisnij 1. Aby zakonczyc nacisnij 2." << endl; cin >> x; } }
Tak chyba będzie dobrze. |
|
tarno |
» 2013-12-05 18:37:05 Czemu nie zrobisz go case'm?? tylko tyle ifow walisz? |
|
najkosz Temat założony przez niniejszego użytkownika |
» 2013-12-05 21:19:51 @tarno: przelicz ilość znaków przy tej same komendzie w if oraz za pomocą stwich. Poza tym zawsze zapominam o break, a w if się nie pomylę. Jednak mógłbym to tak zrobić :P |
|
1 « 2 » |