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

Kalkulator

Ostatnio zmodyfikowano 2015-12-23 13:12
Autor Wiadomość
Karlikovsky
Temat założony przez niniejszego użytkownika
Kalkulator
» 2015-12-11 23:05:02
Witam, otóż w 15 rozdziale kursu C++ zadaniem domowym jest stworzenie prostego kalkulatora, przedstawiam wam mój i proszę o opinię czy jest w porządku oraz jak ewentualnie mogłem skrócić długość kodu. :)
C/C++
#include <iostream>
int main()
{
    using namespace std;
    int a;
    int b;
    int wynik;
    int dzialanie;
   
    cout << "[1] Dodawanie [2] Odejmowanie" << endl;
    cout << "[3] Mnozenie [4] Dzielenie" << endl;
    cout << "[5] Rezygnuj" << endl;
   
    wynik = 0;
   
    do
    {
        cout << "Wynik: " << wynik << endl;
        cout << "Podaj liczbe a: ";
        cin >> a;
        cout << "Podaj liczbe b: ";
        cin >> b;
        cout << "Wybierz dzialanie:";
        cin >> dzialanie;
       
        bool zero;
        if( zero =( a && b && dzialanie != 0 ) )
        {
           
           
           
            switch( dzialanie )
           
            {
            case 1:
                wynik = a + b;
                cout << a << "+" << b << "=" << wynik << endl;
               
                break;
               
            case 2:
                wynik = a - b;
                cout << a << "-" << b << "=" << wynik << endl;
                break;
               
            case 3:
                wynik = a * b;
                cout << a << "*" << b << "=" << wynik << endl;
                break;
               
            case 4:
                wynik = a / b;
                cout << a << ":" << b << "=" << wynik << endl;
                break;
               
            case 5:
                return 0;
               
                break;
               
            default:
                cout << "Wybierz odpowiednie dzialanie." << endl;
               
            }
        }
       
    } while( wynik != 0 );
   
    cout << "Wprowadziles 0, dlatego operacja zostala przerwana.";
   
    return 0;
}
P-141802
carlosmay
» 2015-12-11 23:21:32
Zabezpiecz program przed wprowadzaniem nieprawidłowych danych i przed dzieleniem przez zero.
Pisz kod czytelny i zrozumiały, nie musi być krótki.
P-141806
Karlikovsky
Temat założony przez niniejszego użytkownika
» 2015-12-12 12:54:43
Troszkę to poprawiłem, czy teraz jest ok?
P-141814
carlosmay
» 2015-12-12 14:36:38
Troszkę to poprawiłem
 Wręcz przeciwnie.

C/C++
bool zero; // nie ma nadanej wartosci
if( zero =( a && b && dzialanie != 0 ) ) // uzywasz zmiennej niezainicjalizowanej, a warunekow tak się nie pisze
// kazda zmienna porownuje sie osobno, '=' to nie jest operator porownania tylko przypisania
 
 
P-141816
Szadziu
» 2015-12-23 11:37:44
up: Warunek o dziwo jest poprawny, a zmienna jest zainicjalizowana( w ifie ). Pytanie tylko czy robi to co użytkownik chciał.
P-142269
darko202
» 2015-12-23 13:12:44
>> proszę o opinię .. jak ewentualnie mogłem skrócić długość kodu.

jeśli chodzi o skrócenie kodu to jeśli :
* stworzysz makra,
np.
C/C++
#define PRINT(a,b,znak) (cout << a << znak << b << "=" << (a+b) << endl)

//a wywołanie
PRINT( a, b, '+' );
PRINT( a, - b, '-' );
 
* funkcje dublujące funkcjonalność
np.

C/C++
void PodajDane( int & x )
{
    cout << "Podaj liczbe : ";
    cin >> x;
}
// i
...
PodajDane( a );
PodajDane( b );
...

//zamiast
cout << "Podaj liczbe a: ";
cin >> a;
....
* zrezygnujesz ze zbędnych zmiennych
C/C++
wynik = a + b;
cout << a << "+" << b << "=" << wynik << endl;

//w efekcie to to samo
cout << a << "+" << b << "=" <<( a + b ) << endl;
// lub z makrem
PRINT( a, b, '+' );

* itp.

to kod da się skrócić

ogólnie trochę trzeba pomyśleć co jest nadmiarowe, da się uprościć

P-142270
« 1 »
  Strona 1 z 1