Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Lekcja 15] Zadanie domowe

Ostatnio zmodyfikowano 2011-10-28 11:46
Autor Wiadomość
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...
C/C++
#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?
P-40785
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 :).
P-40790
SeaMonster131
» 2011-09-11 17:27:15
Przepraszam ale nie wiem jak ten kod uchwycic w ramke...
[cpp] kod [/cpp]

1. :
C/C++
case 5:
return 0;

2.
wynik = 0;
 ? :)
P-40801
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:
C/C++
#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?
P-41977
DejaVu
» 2011-10-12 12:26:49
Jeżeli w poleceniu nie było to podane to znaczy, że nie jest to wymagane.
P-41978
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.

C/C++
#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;
    }
}
P-42103
asia97
» 2011-10-28 11:46:21
Sordi, kompiluje się, poprawnie oblicza więc jest ok :)
P-42911
« 1 »
  Strona 1 z 1