Wurzel berechnen in C++ Ich möchte einen kleinen Rechner proggen, der auch Wurzel berechnen kann. Nun habe ich das Problem, wie berechne ich Wurzeln (vorrangig Quadratwurzeln! ) Es gibt nichts schöneres, als dem Schweigen eines Dummkopfes zuzuhören! wenn du die quadratwurzel willst dann: x ^ 1/2 bei kubikwurzel: x ^ 1/3 bei n-ter wurzel: x ^ 1/n Get Firefox!!! Also es gibt eine Funktion, die in der Header-Datei math. h deklariert ist. Sie heißt sqrt (Squareroot) für double-Werte und sqrtf für float-Werte. Beide erfordern einen Parameter, von dem die Wurzel gezogen wird und gibt einen float-, bzw. double-Wert zurück. Wurzel ziehen in C. z. B. : x=sqrt(6); y=sqrtf(6. 23f); Hoffe, das hilft dir weiter. Leider sind diese "Standard-Funktionen" aus der math-Bibliothek o. ä. meistens nicht sehr schnell. Vielleicht schreibst Du Dir Deine eigene Wurzel-Funktion unter Zuhilfenahme einer CPU-Extension (SSE, 3DNow! ). Ein einfacher Weg zur "manuellen" Wurzel-Berechnung (Quadratwurzel) ist der folgende: Quellcode 1 2 3 4 5 function sqrt( x) z:= 1.
Des Weiteren gibt es 2 Versionen: eine die jeden Näherungswert ausgibt, die andere gibt nur den 31. Näherungswert aus, was eigtl schon sehr nah an der Wurzel sein sollte. Ausgabe mit allen Näherungswerten:
PHP:
php
/**
*
* @author
* @version 1. 0
* @module Heron-Verfahren mit PHP
* @copyright 2007. All rights reserved. */
$a = 2; //Der Radikand
$x = 1; //Der Startwert
$Rechne = 0. 5*($x+$a/$x); // Die Formel
$i=0; //Unsere kleine Zahl 'i' die berechnet den wievielten
//Näherungswert wir derzeit errechnen
while($Rechne-$x>1/1000000||$i<=30) {
$x = $Rechne;
$i++; //Unsere Zählerzahl um 1 erhöhen...
$Rechne = 0. 5*($x+$a/$x); //Rechnen...
echo "Der ". $i. ". Näherungswert ist ". $Rechne. "
"; //Ausgabe des Näherungswertes}? Hochzahlen in C-Programmierung (Computer, Programmieren, Linux). >
Ausgabe nur des 31. Näherungswertes:
if($i == 30) echo $Rechne; //Wenn i = 30 dann die Wurzel ausgeben}? >
In PHP steht zur genaueren und einfacheren Berechnung von Wurzeln die Funktion sqrt(int Input); zur Verfügung die wie folgt angewendet werden kann:
echo sqrt(2); //Ausgabe der Wurzel von 2; etwa 1.
0000 ausgibt. Ich wäre unglaublich Dankbar wenn mir jemand meinen Fehler zeigen könnte! Bin schon total am verzweifeln -. - Danke im voraus! Was ist der Tastaturpuffer? Ich lerne gerade C für mein Studium und wir arbeiten mit scanf. Unser Prof hat das Thema Tastaturpuffer aber leider nicht richtig erklärt und ich stehe dementsprechend auf dem Schlauch. Hier ist die ganze Sache ja noch sehr verständlich. Eine Zahl wird eingelesen. Wurzel in c programmieren van. Diese Eingabe wird mit \n bestätigt. Das in der letzten Zeile eingegeben \n befindet sich in diesem Tastaturpuffer und wird jetzt automatisch im zweiten scanf eingegeben. Damit wird dieses scanf "Übersprungen" und der Variable "Dummy" das \n zugewiesen. EIne Zahl und ein Zeichen wird eingelesen. Wenn jetzt sowohl das Zeichen als auch das \n in dem Tastaturpuffer gespeichert ist, dann müsste ich eine 7 ein A und einen Zeilenumbruch aus Ausgabe bekommen. Das Passiert aber nicht. Wenn nur das A in dem Tastaturpuffer gespeichert ist, dann müsste ich eine 7 ein A und die möglichkeit erhalten, ein neues Zeichen einzugeben.
#6 Ich kann die Logik des Codes im Moment nicht überprüfen, aber Nicht Def kommt z. B. raus, wenn die Diskriminante (Term unter der Wurzel) kleiner als Null ist - Negative Zahlen haben kein Resultat wenn man die Wurzel zieht. Jedenalls nicht in den Zahlenräumen in denen du dich aufhälst. Trifft dies also ein, hat deine Gleichung keine Lösungen. Aber deine Lösungsformel stimmt nicht. Eher so: x1 = (-b + sqrt(b^2 - 4*a*c))/(2*a) x2 = (-b - sqrt(b^2 - 4*a*c))/(2*a) Du must schon selber etwas probieren #7 ok ich versuch noch bisschen aber deine jetztige lösung bring das gleiche ergebnis hab aber noch bisschen was umgestellt string sx1, sx2; x1 = (-b + ((b * b) - 4 * a * c)) / (2 * a); x2 = (-b - ((b * b) - 4 * a * c)) / (2 * a); sx1 = String(x1); sx2 = String(x2); = String(sx1);} #8 kannst du mal die Gleichung posten? Wurzel in c programmieren 7. #9 ist eine windows form anwendung 3 eingabefelder und 1 ausgabefeld zahlen sind individuell einsetztbar eig egal welche das prog soll ja nur das richtige ergebnis ausspucken ^^ x = -b / a / 2 + / - wurzel (b?
@SeppJ danke für den tollen Tipp mit cbrt() den hab ich bisher noch in keinem anderen forum gelesen. Jetzt funktionert der Teil endlich und danke auch an alle andere für die schnelle Hilfe da ich hier schon unter Profis bin hätte ich noch eine Frage: wieso bekomme ich hier immer ein falsches Ergebnis: y2=2*sqrt((p/3)*(-1))*cos((phi/3)+((120. 0*360. 0)/(2. 0 pi))); y3=2*sqrt((p/3)*(-1))*cos((phi/3)+((240. 0 pi))); bei p=-1/3, phi=3. 1415(pi) und pi ist mit 3. 14159265 definiert es sollte rauskommen: y2=-2/3=-0, 6666 y3=-1/3=-0, 3333 und das kommt bei mir raus: y2=-0, 61 y3=-0, 18 ich hab herausgefunden das der fehler irgendwo beim cos liegen muss aber was mache ich flasch? Wenn *360. Nte wurzel ziehen! - C und C++ - Fachinformatiker.de. 0*pi) eine Umrechnung von Grad zu Bogenmaß sein soll, dann meinst du wohl das: y2=2*sqrt(-p/3)*cos(phi/3 + 120. 0*pi/180); y3=2*sqrt(-p/3)*cos(phi/3 + 240. 0*pi/180);
Schwierig, denn die Compiler honorieren oft die vom Entwickler vorgegebenen arithmetischen Folgen. Ein a * a * a * a wird also auch als (((a * a) * a) * a) ausmultipliziert da ein (a * a) ^ 2 i. d. R. ein nicht bitidentisches Ergebnis ergibt. Aus folgender Funktion... double a4( double d) { return d * d * d * d}... generiert z. der Intel-C++ folgenden Code: fld QWORD PTR [esp + 4] fld QWORD PTR [esp + 4] fmul st, st(0) fmul st, st(1) fmulp st(1), st ret 8 Und ich sehe da drei Multiplikationen. Post by Oliver S. double a4( double d) { return d * d * d * d} fld QWORD PTR [esp + 4] fld QWORD PTR [esp + 4] fmul st, st(0) fmul st, st(1) fmulp st(1), st ret 8 Und ich sehe da drei Multiplikationen. Drei Multiplikationen sind immernoch schneller als der genannte Algorithmus. Björn. Wurzel in c programmieren online. Post by Björn König Drei Multiplikationen sind immernoch schneller als der genannte Algorithmus. Meine Compiler ( 7. 1 und Intel-C++ 7. 1) können den genannten Algorithmus automatisch in drei Multiplikationen verwandeln und auch inline-expandieren.
Für diese Aufnahme habe ich gefühlte 100 Male das Vögelchen am Mobile montiert. bild Kampagnenmotiv "Ganymed in den Fängen des Adlers" Wie war die Zusammenarbeit mit Peter Rigaud? Wie war die Zusammenarbeit mit dem Fotografen Peter Rigaud? Sehr lustig und angenehm, obwohl es unglaublich heiß an diesem Tag war und die Aufnahmen von früh bis spät andauerten. Auf einmal saß da ein Team von etwa 10 Personen auf meiner Wohnzimmercouch, für die Aufnahmen mussten Möbel hin- und hergerückt werden, aber alle waren sehr entspannt und machten es mir als "Laien" einfach. Queer im Museum. Es hat wirklich viel Spaß gemacht. Was sagen Ihre Kinder dazu? Was haben Ihre Kinder zu dem neuen Gast in ihrem Zimmer gesagt? Mein jüngerer Sohn glaubt, der Ganymed auf dem Bild sei sein älterer Bruder! Und lustigerweise werde ich vor allem von den Freunden meines älteren Sohnes im Kindergarten angesprochen, weil sie mich auf einem Plakat an der Haltestelle erkannt haben. Das finde ich schon erstaunlich. Ist Rembrandts Ganymed auch ihr Lieblingswerk in der Galerie?
In der Ikonografie gilt Ganymed bisweilen auch als Präfiguration des Johannes. Darstellung in der Kunst [ Bearbeiten | Quelltext bearbeiten] Antike Abbildungen Ganymeds findet man ab dem 5. Jahrhundert vor Christus auf Vasen und anderen Zier- und Gebrauchsgegenständen. Ganymed in den fängen des adlers de. Ganymedes ist auch ein Charakter im Satyricon des römischen Autors Titus Petronius. In der Neuzeit hat die (homo-)erotische Bedeutung der Erzählung viele Künstler inspiriert, unter anderem gibt es darüber eine Zeichnung von Michelangelo, Gemälde von Rubens und Rembrandt, eine Marmorplastik von Thorvaldsen, ein Relief von Ferdinand Schlöth [12], ein Gedicht von Goethe [13] und ein Gedicht von Hölderlin [14]. Goethes Gedicht wurde von Franz Schubert vertont [15]. Ganymed-Darstellungen in der Kunst Der Raub des Ganymedes Rubens porträtiert Ganymed als schönen Jüngling… 1636–1638, Museo del Prado, Madrid Ganymed als Namensgeber [ Bearbeiten | Quelltext bearbeiten] Wegen Ganymeds Funktion auf dem Olymp wurden in der Neuzeit manchmal auch vergleichbare Bedienstete wie Sklaven, Diener oder Kellner als Ganymed bezeichnet.
Aber wieso ewige Jugend? An dieser Stelle soll ein Teil des Mythos erklärt werden, der bisher noch keine Erwähnung fand. Manche antiken Quellen berichten, dass Jupiter den Mundschenk Ganymed als Lohn für seine Dienste in das Sternbild Wassermann verwandelte. Ganymed wurde dadurch unsterblich. Bei seiner Entführung in den Olymp war Ganymed noch jung – und das sollte er von da an auch ewig bleiben. SKD Blog: In Dresden ist die Kunst zuhause - Rembrandts Ganymed. Darstellungen, die die Entführung Ganymeds eher vergeistigt anstatt erotisch darstellen, sind oft von der christlichen Auslegung antiker Mythen beeinflusst. Im Mittelalter sahen viele Menschen, und vor allem die Kirche, Ovids Metamorphosen als moralisch verdorben an. Dennoch las und übersetzte man sie – meist mit christlichen Kommentaren. Diese besagten, dass die christliche Heilsgeschichte auch in den antiken Mythen schon angelegt, ja womöglich sogar vorhergesagt war. Man nennt diese Art der Auslegung Präfiguration. Die bekannteste Übersetzung mit christlichem Kommentar ist der Ovide moralisé, der im frühen 14. Jahrhundert in Frankreich entstand.