[Lekcja 15] Zadanie domowe
Ostatnio zmodyfikowano 2011-10-28 11:46
Temes Temat założony przez niniejszego użytkownika |
[Lekcja 15] Zadanie domowe » 2011-09-11 13:33:01 Trochę się głowiłem ze stworzeniem kalkulatora w zadaniu z lekcji 15, ogolnie wyszlo... #include <iostream> int main()
{ int wynik = 0; int liczba1; int liczba2; int wybor; do { std::cout << "==========MENU==========" << std::endl; std::cout << "[1] Dodawanie" << std::endl; std::cout << "[2] Odejmowanie" << std::endl; std::cout << "[3] Mnozenie" << std::endl; std::cout << "[4] Dzielenie" << std::endl << std::endl; std::cout << "Wybieram: "; std::cin >> wybor; std::cout << std::endl << std::endl; std::cout << "Wprowadz dowolne 2 liczby:" << std::endl; std::cout << "Pierwsza liczba: "; std::cin >> liczba1; std::cout << std::endl; std::cout << "Druga liczba: "; std::cin >> liczba2; std::cout << std::endl << std::endl; if( liczba1 == 0 || liczba2 == 0 || wybor <= 0 || wybor >= 5 ) { std::cout << "Podales zle liczby/zly wybor." << std::endl; } else { switch( wybor ) { case 1: wynik = liczba1 + liczba2; std::cout << "Dzialanie " << liczba1 << "+" << liczba2 << std::endl; std::cout << "Wynik = " << wynik << std::endl << std::endl << std::endl << std::endl; break; case 2: wynik = liczba1 - liczba2; std::cout << "Dzialanie " << liczba1 << "-" << liczba2 << std::endl; std::cout << "Wynik = " << wynik << std::endl << std::endl << std::endl << std::endl; break; case 3: wynik = liczba1 * liczba2; std::cout << "Dzialanie " << liczba1 << "*" << liczba2 << std::endl; std::cout << "Wynik = " << wynik << std::endl << std::endl << std::endl << std::endl; break; case 4: wynik = liczba1 / liczba2; std::cout << "Dzialanie " << liczba1 << "/" << liczba2 << std::endl; std::cout << "Wynik = " << wynik << std::endl << std::endl << std::endl << std::endl; break; } } } while( wynik != 0 ); std::cout << "Nie moze wystepowac 0." << std::endl << std::endl << std::endl << std::endl; } Przepraszam ale nie wiem jak ten kod uchwycic w ramke... 1.Nie wiem jak zrobic tak, jak bylo pokazane w przykladzie "[5] Rezygnuj". 2.Nie wiem jak pokazac obecny wynik, ktory sie resetuje (próbowałem czyszczenia i nie dzialalo). 3.Czegos brakuje? |
|
Eatos |
Zadanie domowe » 2011-09-11 14:58:43 1) Niemalże identycznie jak przy zakończeniu programu po wpisaniu liczby "0" (notabene program miał kończyć działanie, gdy wprowadzona liczba jest = 0, nie zaś wynik, choc przy mnożeniu i dzieleniu to nie robi różnicy :) ).
Co do restetowania się wyniku - sam zobacz na jakiej podstawie jest on za każdym działaniem obliczany ( lekcja 10). Ogólnie ideą tego zadania są chyba operacje na wyniku poprzez modyfikacje go dzięki liczbie. U Ciebie każde działania to osobny wynik, jeżeli tak się moge wyrazić z nadzieja, iż zostanę zrozumiany :).
Czy czegoś brakuje?
Zabezpieczenia przed wprowadzeniem złych danych.
No, ale ogolnie spełnia swoją rolę - liczy :).
@Down
Linijka z zerowaniem wyniku jest poza pętlami :). |
|
SeaMonster131 |
» 2011-09-11 17:27:15 Przepraszam ale nie wiem jak ten kod uchwycic w ramke... |
[cpp] kod [/cpp] 1. : 2. wynik = 0; ? :) |
|
damian4646 |
» 2011-10-12 12:25:28 Sorry za wtrącenie się do tematu, ale nie chce zaśmiecać forum nowymi tematami. Mam pytanie dot. zad z lekcji 15: Napisz funkcję, która losuje liczbę z przedziału od 50 do 60 włącznie. Wywołaj funkcję kilka razy (wypisz wylosowane wartości na ekran) w celu przetestowania czy działa ona poprawnie. Moj kod: #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int ile_razy_wylosowana() { int ile; cin >> ile; return ile; } int losowanie() { int los; los =( rand() % 10 ) + 50; return los; } int main() { cout << "Ile razy ma byc wylosowana liczba: " << endl; int ile = ile_razy_wylosowana(); int a = 0; int los = losowanie(); cout << "Odpowiedz: " << ile << endl; do { if( ile > a ) { srand( time( NULL ) ); cout << "Wylosowana liczba: " << los << endl; ile--; } } while( ile > a ); return 0; }
Co zrobić by wylosowane liczby się nie powtarzały? |
|
DejaVu |
» 2011-10-12 12:26:49 Jeżeli w poleceniu nie było to podane to znaczy, że nie jest to wymagane. |
|
Sordi |
» 2011-10-14 20:49:10 Widzę że założyciel tematu zrobił trochę inaczej niż ja. Mam poprawnie czy źle? Trochę syfu w kodzie, powinno być bardziej posegregowane ale wydaje mi się czytelne. #include <iostream>
using namespace std;
int main() { double a; double b; int wybor; cout << "Podaj liczbe a: "; cin >> a; cout << "Podaj liczbe b: "; cin >> b; if( a == 0 ) do { cout << "Podaj liczbe a: "; cin >> a; } while( a == 0 ); if( b == 0 ) do { cout << "Podaj liczbe b: "; cin >> b; } while( b == 0 ); cout << "Do wyboru masz: \n[1] Dodawanie \n[2] Odejmowanie \n[3] Mnozenie \n[4] Dzielenie \n[5] Rezygnacja" << endl; cout << "Wybieram: "; cin >> wybor; if( wybor == 0 || wybor > 5 ) do { cout << "Do wyboru masz: \n[1] Dodawanie \n[2] Odejmowanie \n[3] Mnozenie \n[4] Dzielenie \n[5] Rezygnacja" << endl; cout << "Wybieram: "; cin >> wybor; } while( wybor == 0 || wybor > 5 ); switch( wybor ) { case 1: cout << "Wynik dodawania: " << a + b << endl; break; case 2: cout << "Wynik odejmowania: " << a - b << endl; break; case 3: cout << "Wynik mnozenia: " << a * b << endl; break; case 4: cout << "Wynik dzielenia: " << a / b << endl; break; case 5: break; } }
|
|
asia97 |
» 2011-10-28 11:46:21 Sordi, kompiluje się, poprawnie oblicza więc jest ok :) |
|
« 1 » |