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

Praca domowa 15

Ostatnio zmodyfikowano 2012-07-21 11:28
Autor Wiadomość
moniaaa
Temat założony przez niniejszego użytkownika
Praca domowa 15
» 2012-07-19 23:32:56
Witajcie,
Jestem osobą początkującą w programowaniu i tak jak w temacie mam problem z zadaniem 15. Nie wiem co dalej zrobić, jak wykombinować żeby program działał zgodnie z instrukcjami. Czy mógłby ktoś do tego co dotąd udało mi się zrobić dopisać instrukcje przy pomocy komentarzy co jeszcze i gdzie należy zrobić? I w jaki sposób? I czy w ogóle podążam w dobrym kierunku?

C/C++
#include <iostream>
int main()
{
    std::cout << "Witaj w programie." << std::endl;
    int nrZadania;
    int liczba;
    int liczba2;
    int wynik;
   
    do
    {
        std::cout << "Wybierz jedna z dostepnych operacji:" << std::endl;
        std::cout << "[1] Dodawanie" << "\n[2] Odejmowanie" << "\n[3] Mnozenie" << "\n[4] Dzielenie " << "\n[5] Rezygnuj" << std::endl;
        std::cin >> nrZadania;
        switch( nrZadania )
        {
        case 1:
            std::cout << "Podaj liczbe";
            std::cin >> liczba;
            std::cout << "Podaj druga liczbe";
            std::cin >> liczba2;
            wynik = liczba + liczba2;
            std::cout << liczba << "+" << liczba2 << "=" << wynik << std::endl;
            std::cin.clear();
            std::cin.sync();
            break;
           
        case 2:
            std::cout << "Podaj liczbe";
            std::cin >> liczba;
            std::cout << "Podaj druga liczbe";
            std::cin >> liczba2;
            wynik = liczba - liczba2;
            std::cout << liczba << "-" << liczba2 << "=" << wynik;
            std::cin.clear();
            std::cin.sync();
            break;
           
        case 3:
            std::cout << "Podaj liczbe";
            std::cin >> liczba;
            std::cout << "Podaj druga liczbe";
            std::cin >> liczba2;
            wynik = liczba * liczba2;
            std::cout << liczba << "*" << liczba2 << "=" << wynik;
            std::cin.clear();
            std::cin.sync();
            break;
           
        case 4:
            std::cout << "Podaj liczbe";
            std::cin >> liczba;
            std::cout << "Podaj druga liczbe";
            std::cin >> liczba2;
            wynik = liczba / liczba2;
            std::cout << liczba << "/" << liczba2 << "=" << wynik;
            std::cin.clear();
            std::cin.sync();
            break;
           
            default:
            std::cout << "Wybrales nieprawidlowa operacje." << "\nProsze sprobowac ponownie." << std::endl;
            std::cin.clear();
            std::cin.sync();
        }
       
       
       
       
       
    } while( nrZadania != 5 );
   
   
   
   
}

Dziękuje wam bardzo za sprawdzenie i przypomnienie o return, ale czy na pewno niczego więcej nie brakuje? Przytoczę treść pracy domowej:
1. Wypisuje obecny wynik
2. Wprowadź liczbę
3. Wybierz działanie (jeżeli liczba różna od 0)
4. Wykonaj obliczenia (jeżeli liczba różna od 0)
5. Wróć do kroku 1.
6. Jeżeli wprowadzoną liczbą jest 0, zakończ program.
P-60643
Mufas
» 2012-07-20 11:48:25
nie zapomnij o return na koniec
i jeszcze to:
C/C++
while( nrZadania != 5 );

czyli jesli nr zadania jest rozny od 5 to koniec petli, czyli jak wybierzez 1 to zamaist dodawania masz koniec. Nie jestem do konca pewny czy to ma tak byc
P-60681
starter
» 2012-07-20 12:06:49
@up while'a ma dobrze.

Reszta też powinna być ok, tylko dodaj
return 0;
 na samym końcu
int main()
.
Spróbuj to skompilować.
Uwaga: przy dzieleniu zawsze wyjdzie liczba całkowita, ponieważ używasz zmiennej int,
np. 3/2=1 zamiast 3/2=1.3333...;
jeśli chcesz uzyskać wynik rzeczywisty, zamień jeden int na float.
P-60686
kruczy
» 2012-07-20 15:59:44
a gdzie masz warunki do zera?
P-60702
kruczy
» 2012-07-20 16:15:19
Ja skonstruowałem coś takiego, ale nadal mi nie działa. Proszę o pomoc.



C/C++
#include <iostream>

using namespace std;

int main()
{
    cout << endl << "=====Kalkulator by me :)=====" << endl;
    cout << " [1] dodawanie" << endl;
    cout << " [2] odejmowanie" << endl;
    cout << " [3] mnozenie" << endl;
    cout << " [4] dzielenie" << endl;
    cout << " [5] opusc program" << endl;
   
    int a, b, c;
   
    cout << endl << "Podaj pierwsza liczbe calkowita: " << endl;
    cin >> a;
    cin.clear();
    cin.sync();
   
   
    if( a != 0 )
    { cout << "Podaj druga liczbe calkowita: " << endl;
        cin >> b;
       
       
        if( b != 0 )
        {
            cout << "Podaj znak dzialania: " << endl;
            cin >> c;
           
            if( c >= 1 && c <= 5 )
           
            switch( c )
            {
               
            case 1:
                cout << "Wynik dodawania to: " << a + b << endl;
                break;
            case 2:
                cout << "wynik odemowania to: " << a - b << endl;
                break;
            case 3:
                cout << "wynik mnozenia to: " << a * b << endl;
                break;
            case 4:
                cout << "Wynik dzielenia to: " << a / b << endl;
            case 5:
                cout << "Koniec";
                break;
            }
            else
            do {
                cin.clear();
                cin.sync();
                cout << "Zle dzialanie. Podaj jeszcze raz: ";
                cin >> c;
                if( c >= 1 && c <= 5 )
                { switch( c )
                    {
                       
                    case 1:
                        cout << "Wynik dodawania to: " << a + b << endl;
                        break;
                    case 2:
                        cout << "wynik odemowania to: " << a - b << endl;
                        break;
                    case 3:
                        cout << "wynik mnozenia to: " << a * b << endl;
                        break;
                    case 4:
                        cout << "Wynik dzielenia to: " << a / b << endl;
                    case 5:
                        cout << "Koniec";
                        break;
                    }
                }
            } while( c < 1 && c > 5 && c != 5 );
           
        }
       
        else
        do {
            cin.clear();
            cin.sync();
            cout << "Twoja liczba to zero. Podaj jeszcze raz: " << endl;
            cin >> b;
            if( b != 0 )
            { cout << "Podaj znak dzialania: " << endl;
                cin >> c; }
        } while( b = 0 );
       
    }
   
   
    else
    do
    {
        cin.clear();
        cin.sync();
       
        cout << "Bledna liczba. Podaj jeszcze raz: " << endl;
        cin >> a;
        cin.clear();
        cin.sync();
        if( a != 0 )
        { cout << "Podaj druga liczbe calkowita: " << endl;
            cin >> b; }
    } while( a = 0 );
   
   
   
   
   
    return 0;
   
}
P-60704
starter
» 2012-07-20 16:27:19
@up bardziej poplątanego programu się nie dało napisać?!

jak go uprościsz to wtedy przyjdź. :-P
P-60705
moniaaa
Temat założony przez niniejszego użytkownika
» 2012-07-20 19:24:52
C/C++
#include <iostream>
int main()
{
    int dzialanie;
    float liczba;
    float liczba2;
    float wynik = 0;
    int wejscie;
    std::cout << "====Kalkulator====" << std::endl;
    do
    {
        std::cout << "Podaj 2 liczby ktore potrzebne beda do wykonania dzialania." << std::endl;
        std::cin >> liczba;
        std::cin >> liczba2;
        if( liczba != 0 && liczba2 != 0 )
        do
        {
            std::cout << "Wybierz jedna z dostepnych operacji:" << std::endl;
            std::cout << "[1] Dodawanie" << "\n[2] Odejmowanie" << "\n[3] Mnozenie" << "\n[4] Dzielenie " << "\n[5] Rezygnuj" << std::endl;
            std::cin >> dzialanie;
            if( dzialanie != 0 && dzialanie >= 1 && dzialanie <= 5 )
            switch( dzialanie )
            {
            case 1:
                wynik = liczba + liczba2;
                std::cout << liczba << "+" << liczba2 << "=" << wynik << std::endl;
                std::cin.clear();
                std::cin.sync();
                break;
            case 2:
                wynik = liczba - liczba2;
                std::cout << liczba << "-" << liczba2 << "=" << wynik << std::endl;
                std::cin.clear();
                std::cin.sync();
                break;
            case 3:
                wynik = liczba * liczba2;
                std::cout << liczba << "*" << liczba2 << "=" << wynik << std::endl;
                std::cin.clear();
                std::cin.sync();
                break;
            case 4:
                wynik = liczba / liczba2;
                std::cout << liczba << "/" << liczba2 << "=" << wynik << std::endl;
                std::cin.clear();
                std::cin.sync();
                break;
            }
            else
                 std::cout << "Podales nieprawidlowy numer zadania!" << std::endl;
           
            std::cin.clear();
            std::cin.sync();
           
           
        } while( dzialanie != 5 );
        else
             std::cout << "Podales nieprawidlowe liczby!" << std::endl;
       
       
    } while( liczba != 0 && liczba2 != 0 );
   
    return 0;
}

A co myślicie o tym programie? Myślę że tu założenia odnośnie "0" są prawidłowe. W przypadku gdy na początku programu podamy nieodpowiednie liczby, zakończy on swoje działanie. Po podaniu prawidłowych, program przechodzi do działań(dodawanie,odejmowanie,mnożenie,dzielenie) i wcześniej podane liczby możemy poddać każdemu z tych działań. A w przypadku gdy chcielibyśmy zmienić liczby na inne, klikamy 5, a po tym ponownie możemy wybrać nowe liczby, pod warunkiem że nie będzie to "0". Głowię się nad tym już dosyć długo, więc mam nadzieję że założenia pracy domowej zostały spełnione. :)
P-60719
starter
» 2012-07-21 08:29:00
teraz powinno być ok.
dodaj jeszcze case'a dla piątki, bo aktualnie program napisze, że nie ma opcji 5(rezygnuj).
Reszta jest good.
P-60734
« 1 » 2
  Strona 1 z 2 Następna strona