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

potęgi i pierwiastki

Ostatnio zmodyfikowano 2013-02-27 17:16
Autor Wiadomość
StuFfii
Temat założony przez niniejszego użytkownika
» 2013-02-27 16:09:45
Nie działa! Oto mój kalkulator:

C/C++
#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.
P-77217
Wasilek
» 2013-02-27 16:11:48
C/C++
x = 5;
y = pow( x, 2 );
Czyli y będzie równy 5 do kwadratu.
C/C++
x = 5;
y = pow( x, 3 );
Tutaj będzie równy 5 do sześcianu.

P-77218
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.
P-77219
StuFfii
Temat założony przez niniejszego użytkownika
» 2013-02-27 16:19:07
OK
P-77220
StuFfii
Temat założony przez niniejszego użytkownika
» 2013-02-27 16:21:14
C/C++
double a, b;
std::cout << "pow(" << a << "," << b << ")=" << pow( a, b ) << std::endl;
break;

tulko chodzi o wynik potęg, jest to dobry zapis
P-77221
Kopczak1995
» 2013-02-27 16:50:46
@StuFfii
Wszelki kod umieszczaj w znacznikach
[cpp]kod[/cpp]
 - wtedy każdemu na tej stronie będzie łatwiej ogarnąć o co ci chodzi. Bo przecież łatwiej patrzeć na to:
C/C++
#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 );
}
P-77224
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)
P-77225
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.
P-77229
1 2 3 « 4 » 5
Poprzednia strona Strona 4 z 5 Następna strona