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

Lekcja 15- zadanie 2

Ostatnio zmodyfikowano 2012-02-17 19:09
Autor Wiadomość
nemesis
Temat założony przez niniejszego użytkownika
Lekcja 15- zadanie 2
» 2012-02-16 07:40:51
Ehm.. jak za kazdym razem mam problem z kalkulatorem, wszystko mi sie dobrze skompilowalo lecz caly czas mi powtarza petle nawet jak wpisze dobre liczby
\
C/C++
#include <cstdlib>
#include <iostream>

double dodawanie( double a, double b )
{
    return a + b;
}
double odejmowanie( double a, double b )
{
    return a - b;
}
double mnozenie( double a, double b )
{
    return a * b;
}
double dzielenie( double a, double b )
{
    return a / b;
}

double kalkulator( double a, double b, int menu )
{
    switch( menu )
    {
       
    case 1:
       
        return dodawanie( a, b );
        std::cout << " Otrzymales: " << dodawanie << " z dodawania." << std::endl;
        break;
       
    case 2:
        return odejmowanie( a, b );
        std::cout << " Otrzymales: " << odejmowanie << " z odejmowania." << std::endl;
        break;
       
    case 3:
        return mnozenie( a, b );
        std::cout << " Otrzymales: " << mnozenie << " z mnozenia." << std::endl;
        break;
       
    case 4:
        return dzielenie( a, b );
        std::cout << " Otrzymales: " << dzielenie << " z dzielenie." << std::endl;
        break;
       
        default:
        std::cout << "Zla liczba!" << std::endl;
    }
}

int main()
{
   
    double a;
    double b;
   
    std::cout << "\t\t\t\t\t------------\n" << std::endl;
    std::cout << "\t\t\t\t\t-Kalkulator-\n" << std::endl;
    std::cout << "\t\t\t\t\t------------\n" << std::endl;
    std::cout << "\t\t\t\t\t\tWersja 1.0 by Nemesis" << std::endl;
   
   
    do
    {
        std::cout << "Wprowadz pierwsza liczbe:  ";
        std::cin.clear();
        std::cin.sync();
        std::cin >> a;
       
        std::cout << "Wprowadz druga liczbe:  ";
        std::cin.clear();
        std::cin.sync();
        std::cin >> b;
        std::cout << " Liczba nie moze wynosic zero" << std::endl;
       
    } while(( a >= 1 ) ||( b >= 1 ) );
   
   
    int menu;
    {
        std::cout << "[1] Dodawanie\n"
        << "[2] Odejmowanie\n"
        << "[3] Mnozenie\n"
        << "[4] Dzielenie\n" << std::endl;
        std::cin >> menu;
        std::cout << kalkulator( a, b, menu ) << std::endl;
    }
   
    std::cout << "\t----------\n" << std::endl;
    std::cout << "\tDziekujemy\n" << std::endl;
    std::cout << "\t----------\n" << std::endl;
    system( "pause" );
    return 0;
}
P-50845
RazzorFlame
» 2012-02-16 08:04:39
1 - Kompilator nie komplikuje tylko kompiluje :)
2 - Jezeli wywolujesz funkcje to nie "return nazwafunkcji(...);" tylko np:

C/C++
case 1:
int licz1, licz2, suma;
cin >> licz1;
cin >> licz2;
suma = dodawanie( licz1, licz2 );
cout << "Suma tych 2 liczb to: " << suma << endl;
break;
P-50846
Karol_14
» 2012-02-17 19:09:27
Masz kilka bladow w tym programie... nie bede CI ich wszystkich wytykal odpowiem tylko na Twoje pytanie. Zastanow sie jak wyglada Twoja pętla... Kazesz programowi pytac o liczbe a i liczbe b dopóki a>=1 lub b>=1. Znaczy to tyle ze nie wyjdziesz z pętli dopóki któraś z liczb będzie dodatnia. Argumentem kończącym pętle powinna być sytuacja w której obydwie liczby są nie tyle większe(lub w przypadku Twojego programu - miejsze) od 0 a równe 0. Przemyśl to jeszcze raz i najlepiej przeczytaj ponownie rozdział o logice.
P-50905
« 1 »
  Strona 1 z 1