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

temat 17 zadanie 2 modyfikacja kalkulatora przy użyciu funkcji

Ostatnio zmodyfikowano 2018-07-04 22:11
Autor Wiadomość
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:

C/C++
#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; // byl long ale zmieniony z uwagi na funkcje
    //która ma byc int
    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.
P-171745
pekfos
» 2018-07-04 22:11:09
C/C++
int liczbaA = wczytajLiczbe();
Tworzysz nową zmienną, zamiast przypisać wartość do wcześniej istniejącej.
P-171746
« 1 »
  Strona 1 z 1