bartuz Temat założony przez niniejszego użytkownika |
Kalkulator - nie dzialajace funckja dodawania i odejmowania » 2012-11-12 12:45:38 Cześć! Napisałem kalkulator i nie dzialaja mi fukncje dodawnia i odejmowania np na liczbach 231 432 5432 643 (wpisywane w takiej kolejnosci) prosilbym o wskazanie bledu i o korekte z gory dziekuje za pomoc pozdrawiam, Filip #include <iostream> #include <conio.h> #include <cstdlib> #include <windows.h> using namespace std; double l1, m1, l2, m2; char wyjscie; double nwd( double a, double b ) { while( a != b ) { if( a > b ) a = a - b; else b = b - a; } return a; } void wynik( double c, double d ) { double l, k; l = c / nwd( c, d ); k = d / nwd( c, d ); cout << "wynik to :\n" << l << "\n-\n" << k << endl; } double nww( double a, double b ) { double x; x = a * b / nwd( a, b ); return x; } void menu() { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_GREEN | FOREGROUND_INTENSITY ); cout << "witaj w programie \"dzialania na ulamkach!\"\n"; SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_INTENSITY ); cout << "Wybierz ktore rodzaj dzialan chcesz wykonac\n" << "Dodawanie ? Wpisz [1]\nOdejmowanie? Wpisz [2]\nMnozenie? Wpisz [3]\nDzielenie? Wpisz [4]\n_\b"; SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY ); }
double skracanie( double x, double y ) { double l, k; l = x / nwd( x, y ); k = y / nwd( x, y ); } double dodawanie( double a, double b, double x, double y ) { double c, d; c =( a * b /( nwd( b, y ) ) + x * y /( nwd( b, y ) ) ); d = nww( b, y ); wynik( c, d ); } double odejmowanie( double a, double b, double x, double y ) { double c, d; c =( a * b /( nwd( b, y ) ) - x * y /( nwd( b, y ) ) ); d = nww( b, y ); wynik( c, d ); } double mnozenie( double a, double b, double x, double y ) { double c, d; c = a * x / nwd( x, y ); d = b * y / nwd( x, y ); wynik( c, d ); } double dzielenie( double a, double b, double x, double y ) { double c, d; c = a * y / nwd( x, y ); d = b * x / nwd( x, y ); wynik( c, d ); } void dane() { cout << "podaj licznik pierwszego _\b"; cin >> l1; cout << "podaj mianownik pierwszego _\b"; cin >> m1; cout << "podaj licznik drugiego _\b"; cin >> l2; cout << "podaj mianownik drugiego _\b"; cin >> m2; } void wybor( int q ) { switch( q ) { case 1: { dane(); dodawanie( l1, m1, l2, m2 ); break; } case 2: { dane(); odejmowanie( l1, m1, l2, m2 ); break; } case 3: { dane(); mnozenie( l1, m1, l2, m2 ); break; } case 4: { dane(); dzielenie( l1, m1, l2, m2 ); break; } default: { system( "cls" ); cout << "nie wybrales prawidlowej opcji. za kare wylaczam ten program"; exit( 0 ); break; } } } char powtorzenie() { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY ); cout << "chcesz jeszcze raz? Wpisz [Y]\nWychodzisz? Wpisz [N]\n"; cin >> wyjscie; }
main() { int q; do { system( "cls" ); menu(); cin >> q; wybor( q ); powtorzenie(); } while(( wyjscie == 'Y' ) ||( wyjscie == 'y' ) ); getch(); }
|