Wurzel in c++
-
Hi, Leute!
Ich bin ziemlich neu, im programmieren mit c++,
hab also noch wenig ahnung von Zeigern, Arrays, und dem ganzen.
Ich hab aber ein kleines Problem, vielleicht könnt ihr mir ja weiterhelfen.
Ich möchte die Rechnung von dem Satz des Phytagoras benutzen, aber da muss man ja die Wurzel ziehen! Und die Wurzel ist natürlich auf meiner Tastatur nicht drauf, geschweige denn im ASCII code mit inbegriffen.
Gibt es in c++ schon so eine Funkion, oder Möglichkeit von einer Variable die wurzel zu ziehen?
Oder muss man die gar selber programmieren?
Und wenn ja, wie könnte man das machen? Da bräuchte man doch bestimmt komplizierte Algorythmen oder so was dafür. Könnt ihr mir vielleicht weiterhelfen?
THX Snoopy
-
std::sqrt aus <cmath>, hier ein vollständiges Beispiel (leider ungetestet):
#include <cmath> #include <iostream> using namespace std; int main() { cout << " x = "; double x; cin >> x; cout << "Wurzel von " << x << " = " << sqrt(x) << endl; }
PS: Auf dem gcc muss die mathematische Bibliothek mittels -lm dazugelinkt werden.
-
Statt Wurzel aus 9 kann man ja auch 9^(1/2) schreiben. Also würde ich's so programmieren:
#include <math.h> ... double result = pow(9, 0.5f); ...
EDIT: grr, Verdammt zu langsam...
-
Die sqrt-Funktion ist btw. _wesentlich_ schneller wie pow(x, 0.5)
-
std::sqrt aus <cmath>, hier ein vollständiges Beispiel (leider ungetestet):
Soweit ich weis ist sqrt nicht in std declariert sondern, wie jede C Funktion direkt in den globalen Namesraum!
-
Falsch! So was gibts in C++ nicht (bis auf Makros).
-
Es gibt keine Ausnahme zu der Regelung, dass alle Namen der Standardbibliothek (außer Makros) im Namensraum std stehen.
-
Warum schafft es MS in den neueren Versionen von VC++ eigentlich nicht die aus ANSI C in den C++ Standard übernommen Funktionen in den std-Namespace zu packen?
-
Hm? Verstehe ich nicht. Bis auf einige wenige traurige Ausnahmen sind alle C-Funktionen sowohl im globalen Namensraum als auch in std - so ist es auch noch legal.
-
Ich bin mir nicht sicher, und habe auf diesem PC gerade keine IDE drauf um das zu testen, aber ich meine mich daran erinnern zu können, dass mein VS.NET Compiler meckert wenn ich std::sqrt schreibe.
-
Meiner nicht.
-
Vielen dank, der sqrt Befehl ist genau das, was ich gesucht habe.
nur diese Zeile versteh ich noch nicht:using namespace std;
-
Du kannst entweder jedesmal std::sqrt schreiben oder sagst einmal, dass du dich immer auf den namespace std beziehst.
-
Optimizer schrieb:
Meiner nicht.
Tatsache. Gut, kann ich mir das wenigstens wieder angewöhnen
. Bin noch geprägt durch ältere Versionen.