Vendi Temat założony przez niniejszego użytkownika |
Poziom 2 - Lekcja 15 - Zadanie drugie - Kompletna niewiedza » 2012-03-28 19:43:35 Witam. Już dwa razy przymierzałem się do nauki c++ ale zawsze na czymś poległem. Teraz nie przestanę, niby rozumiem lekcje 15 ale za cholere nie mogę sobie poradzić z zadaniem drugim, myślę i myślę ale nic, pustka. Oglądałem tematy z problemami innych ale nie było tam rozwiązania. Może to głupie ale zaczynam rozumieć pewne rzeczy dopiero jak ujrzę całokształt. Może ktoś podać rozwiązanie zadania drugiego? Mój kalkulator: #include <iostream> int main() { int dodawanie; int dodawanie2; int wybor; std::cout << "Wybierz akcje:\n1.Dodawanie\n2.Odejmowanie\n3.Mnozenie\n4.Dzielenie" << std::endl; std::cout << "Akcja: "; std::cin >> wybor; if( wybor > 0 ); else std::cout << "Blad!"; switch( wybor ) { case 1: std::cout << "Podaj dwie liczby: " << std::endl; std::cout << "Pierwsza: "; std::cin >> dodawanie; if( dodawanie > 0 ); else std::cout << "Blad, dalsza operacja nie powiedzie sie." << std::endl; std::cout << "Druga: "; std::cin >> dodawanie2; std::cout << "Wynik: " << dodawanie + dodawanie2 << std::endl; break; case 2: std::cout << "Podaj dwie liczby: " << std::endl; std::cout << "Pierwsza: "; std::cin >> dodawanie; std::cout << "Druga: "; std::cin >> dodawanie2; std::cout << "Wynik: " << dodawanie - dodawanie2 << std::endl; break; case 3: std::cout << "Podaj dwie liczby: " << std::endl; std::cout << "Pierwsza: "; std::cin >> dodawanie; std::cout << "Druga: "; std::cin >> dodawanie2; std::cout << "Wynik: " << dodawanie * dodawanie2 << std::endl; break; case 4: std::cout << "Podaj dwie liczby: " << std::endl; std::cout << "Pierwsza: "; std::cin >> dodawanie; std::cout << "Druga: "; std::cin >> dodawanie2; std::cout << "Wynik: " << dodawanie / dodawanie2 << std::endl; break; default: std::cout << "\nBledny wybor, dostepne opcje to 1,2,3,4!"; } return 0; }
Chyba jest bardzo przejrzysty. Błagam o pomoc, wiem że to głupie, że powinienem dojść do tego sam, nie jestem leniem, nie zrezygnowałem po myśli że tego już nie umiem i mam to w dupie. Jeśli możecie, wytłumaczenie tego bardziej obrazowo też mogłoby załatwić częściowo sprawe. Do zobaczenia. |
|
jsc |
» 2012-03-28 20:05:05 A na czym polega problem właściwy? |
|
Chlorek |
» 2012-03-28 20:10:56 A tak w ogóle to czemu zakładasz, że podczas dodawania - podanie liczby mniejszej od 0 spowoduje błąd. Do póki liczby są signed (niedodatnie i nieujemne) nie powinno być problemu. |
|
Vendi Temat założony przez niniejszego użytkownika |
» 2012-03-28 20:30:34 Ten warunek to pozostałość po moich próbach z do..while. Problem polega na tym że powinienem zrozumieć to zadanie po ujrzeniu całości, teraz tego nie rozumiem. |
|
Vendi Temat założony przez niniejszego użytkownika |
» 2012-03-29 20:26:46 Dobra, po całym dniu myślenia w szkole już ogarnąłem do..while lecz nie wiem czemu nie wracam do początku programu, co jest nie tak? #include <iostream> int main() { int dodawanie; int dodawanie2; int wybor; bool a; do { std::cout << "Wybierz akcje:\n1.Dodawanie\n2.Odejmowanie\n3.Mnozenie\n4.Dzielenie" << std::endl; std::cout << "Akcja: "; std::cin >> wybor; if( wybor > 0 ); else std::cout << "Blad!"; switch( wybor ) case 1 : std::cout << "Podaj dwie liczby: " << std::endl; std::cout << "Pierwsza: "; std::cin >> dodawanie; if( dodawanie > 0 ); else std::cout << "Blad, dalsza operacja nie powiedzie sie." << std::endl; std::cout << "Druga: "; std::cin >> dodawanie2; std::cout << "Wynik: " << dodawanie + dodawanie2 << std::endl; a = dodawanie + dodawanie2; break; } while( !a ); std::cout << "Koniec."; return 0; }
Program normalnie się kończy a nie wraca na początek. Nie wiem z jakiego powodu. PS: Wywaliłem reszte "Case" żeby najpierw ogarnąć to z jednym case. |
|
SeaMonster131 |
» 2012-03-29 20:57:15 Po pierwsze, nie stawiaj średnika po instrukcji if: - tu nie ma średnika. Po drugie pętla będzie się wykonywać dopóki !a czyli a == 0. |
|
Vendi Temat założony przez niniejszego użytkownika |
» 2012-03-29 21:11:21 No i właśnie się nie powtarza, od razu jest koniec. Jeżeli usunę średnik po if (sss) jest error. |
|
jankowalski25 |
» 2012-03-29 21:25:49 Zamiast if( wybor > 0 ); else std::cout << "Blad!";
napisz na przykład if( wybor <= 0 ) std::cout << "Blad!";
Sprawdź, co się stanie, gdy wybor > 4. Popraw to. pętla będzie się wykonywać dopóki !a czyli a == 0 |
Gdy a nie równa się 0, pętla się kończy. Rozumiesz? Popraw to. |
|
« 1 » 2 |