[C++] Kalkulator
Ostatnio zmodyfikowano 2015-12-09 23:56
Laggger97 Temat założony przez niniejszego użytkownika |
[C++] Kalkulator » 2015-12-09 23:09:55 Witam mam taki o to kalkulator mojej roboty i chciałbym żeby ktoś bardziej doświadczony zobaczył co można w nim ew. zmienić lub poprawić tzn. jak go można zoptymalizować. #include <iostream> #include <cstdio> #include<stdio.h> #include <conio.h> #include<cmath> #include <cstdlib> using namespace std;
int wczytajLiczbe() { int a; cout << "\nPodaj a: "; cin >> a; return a; }
int wczytajLiczbeb() { int b; cout << "\nPodaj b: "; cin >> b; return b; }
void opcje() { cout << "1. Dodawanie" << endl; cout << "2. Odejmowanie" << endl; cout << "3. Mnozenie" << endl; cout << "4. Dzielenie" << endl; cout << "5. Potegowanie" << endl; cout << "6. Silnia" << endl; cout << "0. Wyjscie" << endl << endl; }
void dodawanie() { int a = wczytajLiczbe(); int b = wczytajLiczbeb(); cout << "\nSuma liczb " << a << " i " << b << " wynosi: " << a + b << endl << endl; system( "pause" ); }
void odejmowanie() { int a = wczytajLiczbe(); int b = wczytajLiczbeb(); cout << "\nRoznica liczb " << a << " i " << b << " wynosi: " << a - b << endl << endl; system( "pause" ); }
void mnozenie() { int a = wczytajLiczbe(); int b = wczytajLiczbeb(); cout << "\nIloczyn liczb " << a << " i " << b << " wynosi: " << a * b << endl << endl; system( "pause" ); }
void dzielenie() { int a = wczytajLiczbe(); int b = wczytajLiczbeb(); if( a >= b ) { cout << "\nIloraz liczb " << a << " i " << b << " wynosi: " << a / b << endl << endl; } else { cout << "\nLiczba " << a << " jest mniejsza od " << b << " i nie umiem tego policzyc" << endl << endl; } system( "pause" ); }
float potega() { int a, b, wynik, n; cout << "\nPodaj podstawe: "; cin >> a; cout << "\nPodaj wykladnik: "; cin >> b; if( b == 0 ) { wynik = 1; } else { wynik = a; for( n = 1; n < b; n++ ) { wynik = wynik * a; } } cout << endl << a << " do potegi " << b << " = " << wynik << endl; cout << endl; system( "pause" ); }
int silnia() { int liczba1, wynik, n; cout << "\nPodaj liczbe do policzenia jej silni: "; cin >> liczba1; wynik = 1; for( n = 1; n <= liczba1; n++ ) wynik = wynik * n; cout << endl << liczba1 << "! = " << wynik << endl; cout << endl; system( "pause" ); }
int main() { cout << "Kalkulator by Bartek Michalski v 1.5" << endl; cout << endl << "Obslugiwane dzialania:" << endl; opcje(); cout << "Zycze milego korzystania" << endl << endl; int dzialanie; do { opcje(); cin >> dzialanie; switch( dzialanie ) { case 1: dodawanie(); break; case 2: odejmowanie(); break; case 3: mnozenie(); break; case 4: dzielenie(); break; case 5: potega(); break; case 6: silnia(); break; default: break; } } while( dzialanie != 0 ); return 0; }
|
|
Gibas11 |
» 2015-12-09 23:21:30 1. Sporo zbędnych funkcji, jasne, są fajne ale bez przesady. 2. Unikaj system("pause"), strasznie wolne i ogranicza cię do Windy. 3. Spróbuj podnieść tym programem jakąś liczbę do potęgi ujemnej lub ułamkowej. |
|
Laggger97 Temat założony przez niniejszego użytkownika |
» 2015-12-09 23:25:43 W szkole nauczycielka chciała takie rozbicie na funkcje więc tak zrobiłem, to które by były najbardziej zbędne? |
|
michal11 |
» 2015-12-09 23:29:25 Jak jest różnica między funkcjami wczytajLiczbe() i wczytajLiczbeb() ? |
|
Laggger97 Temat założony przez niniejszego użytkownika |
» 2015-12-09 23:36:42 Dopiero teraz zauważyłem że 2 razy to samo jest, nie myślałem jak pisałem. |
|
mateczek |
» 2015-12-09 23:48:50 zwykły głupi ale skompiluj i zobacz !!! pamiętaj o spacjach podając równanie !!! 3 + 14 #include <iostream> using namespace std;
int dodawanie( int a, int b ) { return a + b; } int mnozenie( int a, int b ) { return a * b; }
int main() { int a, b, wynik; char znak; cin >> a >> znak >> b; switch( znak ) { case '+': wynik = dodawanie( a, b ); break; case '*': wynik = mnozenie( a, b ); } cout << "= " << wynik << endl; }
A tak działa http://zapodaj.net/images/28cc17fcb308b.png |
|
mateczek |
» 2015-12-09 23:56:09 Dopiero teraz zauważyłem że 2 razy to samo jest, nie myślałem jak pisałem. |
nie jest to samo :P pierwszy wyświetla napis "podajA" a drugi "podajB" :P |
|
« 1 » |