Prosty kalkulator
Ostatnio zmodyfikowano 2011-06-01 23:48
Matti Temat założony przez niniejszego użytkownika |
Prosty kalkulator » 2011-06-01 12:23:05 #include <iostream> using namespace std; int main() { float a; cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; float b; cin >> b; int liczba; cout << "Wybierz rodzaj dzialania: " << endl; cout << "1. Dodawanie" << endl; cout << "2. Odejmowanie" << endl; cout << "3. Mnozenie" << endl; cout << "4. Dzielenie" << endl; cin >> liczba; switch( liczba ) { case 1: cout << "a + b = " << a + b << endl; break; case 2: cout << "a - b = " << a - b << endl; break; case 3: cout << "a * b = " << a * b << endl; break; case 4: if( b == 0 ) cout << "Nie dzielimy przez 0!" << endl; else cout << "a / b = " << a / b << endl; break; default: cout << "Nie wybrales poprawnego numeru dzialania, aplikacja przerwana." << endl; break; } return 0; }
Napisałem taki oto prosty kalkulator jako zadanie domowe działu "Warunek wielokrotnego wyboru switch ... case" i niby wszystko ładnie śmiga, ale nie wiem czemu nie mogę pracować na liczbach ujemnych. Może mi ktoś wytłumaczyć? :) |
|
szyx_yankez |
» 2011-06-01 12:51:34 Jak to nie możesz? Jakie są tego objawy. |
|
Matti Temat założony przez niniejszego użytkownika |
» 2011-06-01 12:53:21 Wrzuć, skompiluj i zobacz co się stanie, gdy wpiszesz np. a = 1, b = -2 i wybierzesz jakiekolwiek działanie. Aplikacja się po prostu zamknie. |
|
szyx_yankez |
» 2011-06-01 13:10:02 Zapewne chodzi o to, że aplikacja się za szybko zamyka.
Dodaj #include<windows.h> na początku programu oraz Sleep( 2000 ); przed return 0; |
|
Mrowqa |
» 2011-06-01 18:00:34 @up to da tylko 2 sek. Polecam: 1. system( "pause" ); return 0;
2. #include <conio.h>
getch(); return 0;
Co spowoduje odczekanie do naciśnięcia jakiego kolwiek klawisza. Pozdrawiam, Mrowqa |
|
Matti Temat założony przez niniejszego użytkownika |
» 2011-06-01 20:43:09 Eh, nie do końca to miałem na myśli. Widzę, że tylko na moim komputerze ( kolega sprawdzał ) aplikacja zadziała z liczbami dodatnimi i wykona działanie. Chcę wiedzieć, czemu nie działa mi z ujemnymi... Bo tylko z ujemnymi się zbyt wcześnie wyłącza. Poza tym w poradniku przez te 14 lekcji nie wystąpiły rzeczy, które mi podsuwacie jako rozwiązanie, więc sądzę, że autor poradnika miał na myśli inne rozwiązanie. Jakie? - właśnie to chciałbym wiedzieć.
Swoją drogą tylko drugie rozwiązanie z ostatniego posta mi działa. Z pierwszym program się nie kompiluje. Używam code::blocks 10.05. |
|
Mrowqa |
» 2011-06-01 20:54:16 Nie kompilowałem tego ( bo wg mnie kod jest dobry ), ale może masz dziwną implementację i float traktuje kompilator jako unsigned float. Liczby na których wykonujesz działania spróbuj zdefinować jako signed float :) Sprawdź i powiedz czy działa :) Pozdrawiam, Mrowqa |
|
Elaine |
» 2011-06-01 21:21:25 Słowa kluczowe signed i unsigned dotyczą tylko typów całkowitych, float takim nie jest, więc takie coś się nie skompiluje. |
|
« 1 » 2 |