[Lekcja 17] Kalkulator przy użyciu własnych funkcji
Ostatnio zmodyfikowano 2014-12-02 19:42
luk_88 Temat założony przez niniejszego użytkownika |
[Lekcja 17] Kalkulator przy użyciu własnych funkcji » 2014-12-02 18:23:27 Witam! Zwracam się do Was z gorącą prośbą! Jestem nowicjuszem w programowaniu. Zdecydowałem się na C++ i na tej stronce znalazłem bardzo przydatny oraz obfity w informacje kurs. Teraz przejdę do sedna sprawy. Robiąc jedno z zadań, którego polecenie brzmiało, by zrobić kalkulator przy użyciu funkcji stworzonych samemu. I tu teraz kieruje do Was moje pytanie. Właściwie to bardziej prośba a nie pytanie. Czy ktoś mógłby mi "sprawdzić" ten kod oraz doradzić co poprawić oraz ulepszyć, jestem otwarty na krytykę, gdyż jestem jeszcze zielony w tej dziedzinie, z miłą chęcią posłucham rad starszych kolegów :). z góry bardzo dziękuję!!! #include <iostream>
using namespace std;
int dodawanie() { int x, y; cin >> x; cin >> y; return x + y; }
int odejmowanie() { int x, y; cin >> x; cin >> y; return x - y; }
int mnozenie() { int x, y; cin >> x; cin >> y; return x * y; }
int dzielenie() { int x, y; cin >> x; cin >> y; return x / y; }
int main() { int x, y, menu, suma, roznica, iloczyn, iloraz, autor; cout << "WITAJ W KALKULATORZE." << endl; cout << "WYBOR OPCJI:" << endl; cout << "[1] DODAWANIE." << endl; cout << "[2] ODEJMOWANIE." << endl; cout << "[3] MNOZENIE." << endl; cout << "[4] DZIELENIE." << endl; cout << "[5] AUTORZY." << endl; cout << "-------------------------" << endl; cin >> menu; switch( menu ) { case 1: cout << "WYBRALES DODAWANIE." << endl; cout << "Wpisz dwie liczby: " << endl; suma = dodawanie(); cout << "Suma wynosi: " << suma << endl; break; case 2: cout << "WYBRALES ODEJMOWANIE." << endl; cout << "Wpisz dwie liczby: " << endl; roznica = odejmowanie(); cout << "Roznica wynosi: " << roznica << endl; break; case 3: cout << "WYBRALES MNOZENIE." << endl; cout << "Wpisz dwie liczby: " << endl; iloczyn = mnozenie(); cout << "Iloczyn wynosi: " << iloczyn << endl; break; case 4: cout << "WYBRALES DZIELENIE." << endl; cout << "Wpisz dwie liczby: " << endl; iloraz = dzielenie(); cout << "Iloczyn wynosi: " << iloraz << endl; break; case 5: cout << "Autorem tego programu jest XYZ." << endl; break; default: cout << "Nie znaleziono." << endl; break; } return 0; }
|
|
Rashmistrz |
» 2014-12-02 18:31:39 Podpunkt pierwszy zadania domowego: Napisz funkcję, która będzie wczytywała liczby ze standardowego wejścia i zwracała wczytaną wartość. Funkcja ma zagwarantować, że zwracana liczba zawsze jest poprawna. Oznacza to, że funkcja będzie musiała pytać użytkownika o wprowadzenie liczby dopóki nie poda poprawnej. |
Podpunkt drugi zadania domowego: Zmodyfikuj kalkulator, który pisałeś w jednym ze wcześniejszych rozdziałów tak, aby korzystał on ze wcześniej napisanej funkcji wczytajLiczbe. |
-Nie użyłeś wcześniej napisanej funkcji wczytajLiczbe. -Te funkcje do działań są zbędne. Polecam Ci przenieść zawarte w nich działania w miejsce ich wywołania, czyli czegoś w stylu: cout << '\t' << x << ' ' << "+ " << y << ' ' << "= " << x + y; (Przypominam że cout pomija wszystkie spacje aż do znaku nie będącego spacją.) - int x, y, menu, suma, roznica, iloczyn, iloraz, autor;
. Nadmiarowa ilość zmiennych. Wystarczą "x", "y", "menu". -Nie zabezpieczyłeś przed wpisaniem tekstu... Obsługa strumienia wejściowego: "Sprawdzanie poprawności wprowadzonych danych" "Czyszczenie zawartości strumienia wejściowego" (Nie zapomij o cin >> menu; ) - suma = dodawanie(); cout << "Suma wynosi: " << suma << endl; . Wywołanie funkcji możesz umieścić w cout'cie: cout << "Suma wynosi: " << dodawanie() << endl; W miejscu wywołania funkcji pojawi się zwracana wartość. ^_^ |
-Nie można dzielić przez zero! Mam nadzieję że niczego nie pominąłem. :P |
|
luk_88 Temat założony przez niniejszego użytkownika |
» 2014-12-02 19:28:08 Dzięki, będę musiał na spokojnie usiąść i pogłowić troszkę. Czyli po każdym strumieniu wejścia należy użyć funkcji cin.clear() cin.sync()? |
|
Rashmistrz |
» 2014-12-02 19:42:42 Czyli po każdym strumieniu wejścia należy użyć funkcji cin.clear() i cin.sync()? |
Widzę, że chyba coś idzie w złym kierunku... Dlatego mówię: Stwórz funkcję "wczytajLiczbe"! Możesz ją wywoływać tyle razy ile chcesz. Dla wyboru działania ("menu") również użyj tej funkcji. Aledodatkowo opakuj to w pętlę, jeśli chcesz by prosiło o odpowiednią liczbę tak długo aż użytkownika da poprawną. Nie zapomnij, że tekst kursu również służy tobie pomocą. |
|
« 1 » |