Praca domowa 15
Ostatnio zmodyfikowano 2012-07-21 11:28
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? #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. |
|
Mufas |
» 2012-07-20 11:48:25 nie zapomnij o return na koniec i jeszcze to: 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 |
|
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. |
|
kruczy |
» 2012-07-20 15:59:44 a gdzie masz warunki do zera? |
|
kruczy |
» 2012-07-20 16:15:19 Ja skonstruowałem coś takiego, ale nadal mi nie działa. Proszę o pomoc. #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; }
|
|
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 |
|
moniaaa Temat założony przez niniejszego użytkownika |
» 2012-07-20 19:24:52 #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. :) |
|
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. |
|
« 1 » 2 |