StuFfii Temat założony przez niniejszego użytkownika |
» 2013-02-27 16:09:45 Nie działa! Oto mój kalkulator: #include <iostream> #include <windows.h> #include <math.h> #include <conio.h>
int main() { HANDLE kolor; kolor = GetStdHandle( STD_OUTPUT_HANDLE ); std::cout << "" << std::endl; SetConsoleTextAttribute( kolor, 11 ); std::cout << " <[[ KALKULATOR V.5 ( wersja beta) ]]>" << std::endl; SetConsoleTextAttribute( kolor, 2 ); std::cout << " by Grzegorz Wieclawik" << std::endl << std::endl; SetConsoleTextAttribute( kolor, 14 ); std::cout << "||============================||" << std::endl; SetConsoleTextAttribute( kolor, 12 ); std::cout << "|| [1]-dodawanie ||" << std::endl; SetConsoleTextAttribute( kolor, 9 ); std::cout << "|| [2]-odejmowanie ||" << std::endl; SetConsoleTextAttribute( kolor, 13 ); std::cout << "|| [3]-mnozenie ||" << std::endl; SetConsoleTextAttribute( kolor, 11 ); std::cout << "|| [4]-dzielenie ||" << std::endl; SetConsoleTextAttribute( kolor, 10 ); std::cout << "|| [5]-podziel i podaj reszte ||" << std::endl; SetConsoleTextAttribute( kolor, 15 ); std::cout << "|| [6]-potegi ||" << std::endl; SetConsoleTextAttribute( kolor, 14 ); std::cout << "||============================||" << std::endl << std::endl; int klik = klik; SetConsoleTextAttribute( kolor, 2 ); std::cout << "Kazdy wpis zatwierdz Enter-em" << std::endl << std::endl; do { SetConsoleTextAttribute( kolor, 11 ); std::cout << "podaj liczbe a:" << std::endl; int a; std::cin >> a; SetConsoleTextAttribute( kolor, 2 ); std::cout << "podaj liczbe b:" << std::endl; int b; std::cin >> b; SetConsoleTextAttribute( kolor, 11 ); std::cout << "podaj dzialanie (patrz powyzej):" << std::endl; int LOL; std::cin >> LOL; std::cout << "" << std::endl; switch( LOL ) { case 1: std::cout << a << "+" << b << "=" << a + b << std::endl; break; case 2: std::cout << a << "-" << b << "=" << a - b << std::endl; break; case 3: std::cout << a << "x" << b << "=" << a * b << std::endl; break; case 4: if( b == 0 ) std::cout << " << nie dziel cholero przez 0 >> " << std::endl; if( b != 0 ) std::cout << a << ":" << b << "=" << a / b << std::endl; break; case 5: if( b == 0 ) std::cout << " <<nie dziel cholero przez 0>> " << std::endl; if( b != 0 ) std::cout << a << ":" << b << "=" << a / b << " reszta = " << a % b << std::endl; break; case 6: double a, b; std::cout << "pow(" << a << "," << b << ")=" << pow( a, b ) << std::endl; break; } SetConsoleTextAttribute( kolor, 2 ); std::cout << "Jezeli chcesz zakonczyc wcisnij 1, jezeli chcesz kontynulowac podaj inna liczbe " << std::endl << std::endl; std::cin >> klik; SetConsoleTextAttribute( kolor, 12 ); std::cout << "========================================================================" << std::endl; std::cout << "" << std::endl; } while( klik != 1 ); std::cout << "Koniec"; getch(); return 0; } Wynik ni jak ma się do prawdziwego wyniku. |
|
Wasilek |
» 2013-02-27 16:11:48 Czyli y będzie równy 5 do kwadratu. Tutaj będzie równy 5 do sześcianu. |
|
Chlorek |
» 2013-02-27 16:13:33 Czyli problem rozwiązany ;) Do pierwiastków używasz sqrt(liczba). Jedyna dysfunkcja to to, że nie można ustalić stopnia pierwiastka, więc zawsze otrzymujesz pierwiastek drugiego stopnia. Do innych będziesz potrzebował już stworzyć własny algorytm. |
|
StuFfii Temat założony przez niniejszego użytkownika |
» 2013-02-27 16:19:07 OK |
|
StuFfii Temat założony przez niniejszego użytkownika |
» 2013-02-27 16:21:14 double a, b; std::cout << "pow(" << a << "," << b << ")=" << pow( a, b ) << std::endl; break; tulko chodzi o wynik potęg, jest to dobry zapis |
|
Kopczak1995 |
» 2013-02-27 16:50:46 @StuFfii Wszelki kod umieszczaj w znacznikach - wtedy każdemu na tej stronie będzie łatwiej ogarnąć o co ci chodzi. Bo przecież łatwiej patrzeć na to: #include <iostream>
using namespace std;
void Tak_lepiej() { cout << "Pisz w znacznikach ;)"; } int main() { Tak_lepiej(); return( 0 ); }
Niż na to: #include <iostream> using namespace std; void O_boze() { cout<< "I weź tu się rozczytaj -.-"; } int main() { O_boze(); return( 0 ); } |
|
Wasilek |
» 2013-02-27 16:52:53 Jest dobrze. Tylko musisz zadać wartość dla a i dla b bo inaczej śmieci będziesz potęgował.
"Jedyna dysfunkcja to to, że nie można ustalić stopnia pierwiastka, więc zawsze otrzymujesz pierwiastek drugiego stopnia. Do innych będziesz potrzebował już stworzyć własny algorytm."
Albo może skorzystać z potęg o wykładniku wymiernym :) np. pow(10,0.2) |
|
Chlorek |
» 2013-02-27 17:00:34 Można i za pomocą potęg. Ale teraz się doliczać, że pierwiastek drugiego stopnia to podniesienie do potęgi 0.5 etc. nie jest wygodne. |
|
1 2 3 « 4 » 5 |