temat 17 zadanie 2 modyfikacja kalkulatora przy użyciu funkcji
Ostatnio zmodyfikowano 2018-07-04 22:11
fievral Temat założony przez niniejszego użytkownika |
temat 17 zadanie 2 modyfikacja kalkulatora przy użyciu funkcji » 2018-07-04 21:53:35 Witam, próbowałem sam znaleźć rozwiązanie ale już nie mam pomysłu. W zadaniu należało "Zmodyfikuj kalkulator, który pisałeś w jednym ze wcześniejszych rozdziałów tak, aby korzystał on ze wcześniej napisanej funkcji wczytajLiczbe". Kalkulator, który zrobiłem, później poprawiłem o wskazówki bardziej doświadczonego kolegi z forum- działał bez zarzutu. Jednak po zmodyfikowaniu go o funkcję, która też wg mnie była dobrze napisana( działała zgodnie z założeniami zadania), kalkulator działa nadal, tylko nie kończy programu po podaniu jako liczby 0 a takie było założenie pierwotne, które przed jego modyfikacja się wykonywało bez zarzutu. Funkcja: #include <iostream> #include <limits> using namespace std;
int wczytajLiczbe() { int liczba; bool zla; do { cin >> liczba; zla = cin.fail(); cin.clear(); cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); if( zla == 1 ) cout << "podales znak" << endl; } while( zla == 1 ); return liczba; }
int main() { std::cout << "Podaj liczbe: "; int liczba = wczytajLiczbe(); std::cout << "Podales liczbe: " << liczba << std::endl; return 0; }[ cpp ]
Kalkulator po modyfikacji:
[ cpp ]
#include <iostream> #include <limits> using namespace std;
int wczytajLiczbe() { int liczba; bool zla; do { cout << "Podaj liczbe: "; cin >> liczba; zla = cin.fail(); cin.clear(); cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); if( zla == 1 ) cout << "podales znak" << endl; } while( zla == 1 ); return liczba; }
int main() { int liczbaA, wynik = 0; bool blad; int wybor; do { cout << "Wynik: " << wynik << endl; int liczbaA = wczytajLiczbe(); if( liczbaA != 0 ) { cout << " Wybierz dzialanie:" << endl; cout << "1. Dodawanie." << endl; cout << "2. Odejmowanie." << endl; cout << "3. Mnozenie." << endl; cout << "4. Dzielenie." << endl; cout << "5. Zakoncz." << endl; cin >> wybor; cin.clear(); cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); cout << endl; switch( wybor ) { case 1: cout << "Suma" << wynik + liczbaA << endl; wynik = wynik + liczbaA; break; case 2: cout << "Roznica" << wynik - liczbaA << endl; wynik = wynik - liczbaA; break; case 3: cout << "iloczyn" << wynik * liczbaA << endl; wynik = wynik * liczbaA; break; case 4: cout << "Iloraz" << wynik / liczbaA << endl; wynik = wynik / liczbaA; break; } } } while(( liczbaA != 0 ) &&( wybor != 5 ) ); return 0; } [ cpp ]
Z g ó ry dzi ę kuj ę za pomoc. |
|
pekfos |
» 2018-07-04 22:11:09 int liczbaA = wczytajLiczbe();
|
Tworzysz nową zmienną, zamiast przypisać wartość do wcześniej istniejącej. |
|
« 1 » |