Jak zrobić pierwiastek w C++


(system) #1

witam czy ktoś może mi pomóc nie wiem jak mam zrobić żeby po wybraniu cyfry i naduszeniu przycisku z pierwiastkiem wyskakiwał wynik jaki kod powinien być do przycisku pierwiastek ja go się oblicza wzór albo coś z góry dziękuję pozdrawiam

void __fastcall TForm1::Button20Click(TObject *Sender) // przycisk pierwiastek 

{ 

liczba1=Edit1->Text.ToDouble(); 

Edit1->Clear(); 

}

(N1k0) #2

Do pierwiastkowania w C++ sluzy funkcja sqrt(): http://www.cplusplus.com/reference/clib ... /sqrt.html


(Miniuka) #3

Drugiego stopnia. Jest też algorytm na wykonanie pierwiastka dowolnego stopnia jednak nie moge go znaleść :?


(Airborn) #4

jest też gotowa funkcja w bibliotece math.h ta funkcja to pow() :wink:


(system) #5

a czy ktoś może mi podać gotowy cały kod najlepiej zmienić ten co jest na dole dziękuję i pozdrawiam

void __fastcall TForm1::Button20Click(TObject *Sender) // przycisk pierwiastek

{

liczba1=Edit1->Text.ToDouble();

Edit1->Clear();

}

(Ryan) #6

Pierwiastek kwadratowy:

liczba1 = sqrt(liczba1);

lub

liczba1 = pow(liczba1, 0.5);

Pierwiastek N-ego stopnia z X to X podniwsione do potęgi 1/N (pow podnosi pierwszą

liczbę do potęgi drugiej).

Pomijam drobiazg w postaci braku informacji w jakim środowisku piszesz. Borland C++ Builder

przypuszczalnie ma własne zmyślne biblioteki (a nowsza wersja być może działa w oparciu o

C++ .NET). Przy braku kontekstu odpowiedź Tobie to w znacznej mierze wróżenie z fusów.


(mktos) #7

Ryan: Przyjrzyj się podanemu post wyżej kodowi. Toż to BCB, co widać, na pierwszy rzut oka.

I najnowsza wersja BCB nie chodzi pod C++.NET :wink:


(Ryan) #8

Przecież odgadłem to. Co nie zmienia faktu, że BSB nie musi być jedynym środowiskiem, które oferuje obiekty TObject. Porównaj kod Delphi i FreePascala.

http://shop.borland.com/dr/v2/ec_Main.Entry17

C++Builder® 2006

"...includes complete RAD support for C/C++, C#, Delphi for Win32®, and Delphi for .NET languages" :roll: Wspierają .NET ale nie z poziomu C++ - ciężko, żebym to wiedział, skoro nie używam środowiska Borlanda od dawna. ToDouble() jest jednak jedyną metodą wywołaną w w/w kodzie a nazwa zgodna jest z przyjętym w .NET nazewnictwem.

W skrócie: to osobie zadającej pytanie powinno zależeć na podaniu jak największej ilości faktów a nie mnie na zgadywaniu o co chodzi. Podałem kilka możliwości, które na podstawie 5 linijek kodu, które mogą pochodzić skądkolwiek, wydawały się najbardziej odpowiednie.


(system) #9

dziękuję już zrobiłem pozdrawiam


(mktos) #10

Oczywiście, że BCB nie jest jedynym środowiskiem, jakie oferuje VCL. Delphi też oferuje, w końcu to, co jest w BCB to port z Delphi. Ale w Delphi nie da się pisać w języku C++ :wink:

A i fakt, że ToDouble() wygląda Javovo/.NETowo, ale akurat w .NET się to robi nieco inaczej - raczej: Convert.ToDouble(someVar) :slight_smile:

Ale to taka dygresja i OT.


(Ryan) #11

Ciekawe, to VCL ma patent na nazywanie obiektu TObject? No i oczywiście klasa Convert jest jedyną implementującą interfejs IConvertible. :roll: