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

kalkulator lekcja 15 problem...

Ostatnio zmodyfikowano 2014-03-06 20:42
Autor Wiadomość
wirusomaniak
Temat założony przez niniejszego użytkownika
kalkulator lekcja 15 problem...
» 2014-03-06 18:24:24
Nie rozumiem zbytnio polecenia o tym jak ma wyglądać ten kalkulator:
Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco:
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.
Przykładowe menu wyboru działania:
[1] Dodawanie
[2] Odejmowanie
[3] Mnożenie
[4] Dzielenie
[5] Rezygnuj
Zabezpiecz wcześniej napisany kalkulator przed podawaniem niepoprawnych liczb i operacji. Wykorzystaj wiedzę zdobytą z pierwszego zadania pracy domowej niniejszego rozdziału. Zabezpiecz również w analogiczny sposób przed możliwością wyboru nieprawidłowego działania.
Nie rozumiem  na przykład punktu pierwszego Wypisuję obecny wynik tzn. jak mam zacząć ten kod. czy może zacząć się tak?:
C/C++
#include <iostream>
using namespace std;

int main()
{
    int wybor;
    do
    {
        cout << "[1] Dodawanie" << endl;
        cout << "[2] Odejmowanie " << endl;
        cout << "[3] Mnożenie" << endl;
        cout << "[4] Dzielenie" << endl;
        cout << "[5] Rezygnuj" << endl;
        cin.clear();
        cin.sync();
        cin >> wybor;
        cout << "Error" << cin.fail() << endl;
    } while( cin.fail() == 1 );
a następnie zastosować switch case??
 Albo też jak wrócić do kroku 1 po wykonanym obliczeniu proszę o pomoc :(
P-105757
Ard123
» 2014-03-06 19:10:42
Też nie wiedziałem o co chodzi z pkt. 1. Ja uznałem, że chodzi o pierwszą liczbę.
Aby program po obliczeniach powracał do początku, użyj pętli, np. możesz napisać na koniec pętli
while( wybor != 5 )
, wtedy gdy do zmiennej wybor wybierzesz liczbę 5 program się zakończy (ponieważ zwróci false), a gdy inną liczbę to powróci na początek (ponieważ zwróci true, a true w pętli oznacza powrót na początek pętli).
Edit:
Dodam jeszcze cały kod jak ja to napisałem jakbyś chciał:
C/C++
#include <iostream>

int main()
{
    int a;
    int b;
    int operacja;
    do
    {
        std::cout << "Pierwsza liczba = ";
        std::cin >> a;
        std::cout << "Druga liczba = ";
        std::cin >> b;
        std::cout << "Wybierz operacje:\n1 = +\n2 = -\n3 = *\n4 = /\n5 = Zakoncz\nWybrana operacja = ";
        std::cin >> operacja;
        switch( operacja )
        {
        case 1:
            std::cout << "wynik = " << a + b << std::endl;
            break;
        case 2:
            std::cout << "wynik = " << a - b << std::endl;
            break;
        case 3:
            std::cout << "wynik = " << a * b << std::endl;
            break;
        case 4:
            if( b != 0 )
                 std::cout << "wynik = " << a / b << std::endl;
           
            break;
        }
    } while( operacja != 5 );
   
}
P-105759
wirusomaniak
Temat założony przez niniejszego użytkownika
Dziękuję
» 2014-03-06 19:46:03
Aha dzięki już wszystko rozumiem. :D naprawdę wielkię dzięki bez twojej pomocy jeszcze długo bym nad tym posiedział.I nie domyślił bym się żeby wszystko wziąć w pętlę..
Twój kod jest całkiem dobry ale radził bym go pozabezpieczać zresztą w poleceniu autor o tym wspomina. :D przed "yeti" jak to jest w kursie ujęte chodzi mi o :
C/C++
cout << "Error" << cin.fail() << endl;
} while( cin.fail() == 1 );
       
P-105762
maciek77
» 2014-03-06 19:56:33
ja to zrobiłem trochę inaczej (program nie do końca zrobiony)

#include <iostream>
using namespace std;
int main()
{
float wynik=0;
float liczba;
int wybor;
int dodawanie;
do{
cout << "Obecny wynik to " << wynik << endl;
cout << "Wprowadz liczbe " << endl;
cin >> liczba;
if(liczba!=0)
{
cout << "Wybierz dzialanie jakie chcesz wykonac." << endl;
cout << "[1] Dodawanie " << endl;
cout << "[2] Odejmowanie " << endl;
cout << "[3] Mnozenie " << endl;
cout << "[4] Dzielenie " << endl;
cout << "[5] Rezygnuj " << endl;
cin >> wybor;

switch(wybor)
{
case 1:
wynik += liczba;
break;
case 2:
wynik -= liczba;
break;
case 3:
wynik *= liczba;
break;
case 4:
wynik /= liczba;
break;
case 5:
break;
default:
cout << "Zle wybrales";
break;
}
}
else
{
cout << "Wprowadzona liczba nie moze byc zerem!" << endl;
break;}

}while(wybor==1 || wybor==2 || wybor==3 || wybor==4);

return 0;

}
P-105765
wirusomaniak
Temat założony przez niniejszego użytkownika
Dobre..
» 2014-03-06 20:00:12
Nieźle to wymyśliłeś.. super. tylko jak będzie ten program wykonywał działania może wpisz też zmienną b i poproś na początku aplikacji o jej podanie...
P-105766
maciek77
» 2014-03-06 20:17:27
normalnie wykonuje, do podaje na początku liczby dodaje np to co chcemy... tak wywnioskowałem z polecenia
P-105767
wirusomaniak
Temat założony przez niniejszego użytkownika
» 2014-03-06 20:42:56
Ale obecny wynik moim zdaniem powinien być zmienny tzn. wolny do wybrania no ale w końcu to nie jest 1 liczba tylko obecny wynik trochę to dziwne :) ale gdyby tak się przyjrzeć to masz rację tak właśnie chyba to się powinno zrobić :d
P-105771
« 1 »
  Strona 1 z 1