Drquantum Temat założony przez niniejszego użytkownika |
Problem z kalkulatorem (praca domowa, lekcja 15) » 2013-07-03 20:40:21 Witam! Chciałbym prosić o pomoc z kodem, mam w związku z nim 2 pytania: 1) Dlaczego program zawsze wykonuje oba działania, niezależnie od tego, jaką wartość przypiszę zmiennej? 2) Jak ładnie stworzyć menu wyboru, aby każde działanie było w oddzielnej linijce? Oto kod: #include <iostream> int main() { using namespace std; cout << "Dodawanie - 1"; cout << "Dzielenie - 2"; int dzialanie; cout << "Podaj dzialanie: "; cin >> dzialanie; if( dzialanie == 1 ) { do { int liczba1, liczba2; cout << "Podaj liczbe1: "; cin >> liczba1; cout << "Podaj liczbe2: "; cin >> liczba2; cout << "Dodawanie: " << liczba1 + liczba2 << endl; dzialanie--; } while( dzialanie == 1 ); } if( dzialanie == 2 ); { do { int liczba1, liczba2; cout << "Podaj liczbe1: "; cin >> liczba1; cout << "Podaj liczbe2: "; cin >> liczba2; cout << "Odejmowanie: " << liczba1 - liczba2 << endl; dzialanie++; } while( dzialanie == 2 ); } return 0; |
|
pekfos |
» 2013-07-03 20:41:35 Masz średniki po warunkach. 2) Jak ładnie stworzyć menu wyboru, aby każde działanie było w oddzielnej linijce? | endl? |
|
MrPoxipol |
» 2013-07-03 20:50:30 Nie potrzebnie powtarzasz wszystko dla każdego typu działania. Zamiast if'ów lepiej użyć switch. Pętla do..while w Twoim przypadku nie ma sensu, niepotrzebnie też zwiększasz zmienną dzialanie. |
|
Axel |
» 2013-07-03 22:29:13 Tak jak powiedział kolega wyżej, do menu użyj switch, a potem zależnie od wyboru zrób działania. |
|
kubek3898 |
» 2013-07-04 08:55:12 Ja samo menu tworzę tak: const int ELEMENTS = X; string menu[ ELEMENTS ] = { "Dodawanie", "Odejmowanie", "itd.", "itd." };
for( int i = 0; i < sizeof( menu ) / sizeof( string ); i++ ) { cout <<( i + 1 ) << ". " << menu[ i ] << endl; }
for( int i = 0; i < ELEMENTS - 1; i++ ) { cout <<( i + 1 ) << ". " << menu[ i ] << endl; } Obsługę menu najprościej chyba zrobić za pomocą switch'a, jak już mówiono: int wybierz_dzialanie; cin >> wybierz_dzialanie; switch( wybierz_dzialanie ) { case 1: break; case 2: break; case 3: break; } |
|
Bajt |
» 2013-07-04 10:10:29 @kubek3898 Po co utrudniać sobie życie? Czy nie lepiej użyć switch'a lub if'ów, żeby zrobić menu? Poza tym, w Twoim kodzie jest pewien błąd. Mianowicie: const int ELEMENTS = 2; string menu[ ELEMENTS ] = { "Dodawanie", "Odejmowanie", "itd.", "itd." };
W drugiej linijce nie może być "itd", "itd.", bo tablica jest 2-elementowa i przekroczyłbyś jej zasięg. |
|
kubek3898 |
» 2013-07-04 13:07:19 Tą dwójkę, dałem jako przykład, prawdę mówiąc zastanawiałem się czy określić ją jakąś przykładową liczbą czy po prostu X'em. Dlatego dałem obok komentarz, który chyba jasno określa, jak zainicjalizować tą zmienną. Także żadnego błędu świadomie nie popełniłem.
Może i łatwiej zbudować to menu za pomocą instrukcji warunkowych, lecz myślę, że definicja tego w taki sposób, ułatwi jego modyfikację przy późniejszych zmianach. |
|
Drquantum Temat założony przez niniejszego użytkownika |
» 2013-07-06 23:51:41 Dziękuję wszystkim za pomoc, pozdrawiam. |
|
« 1 » |