complex Imaginärteil
-
Viele dank fuer Antwort.
Mit complex<double>(0, 1.0/(omega*L)) geht es natürlich auch.
Gibt es vielleicht auch eine C++ Methode um es wie in C einzugeben ?//Wie geht so was in C++? Zs = R + I*(1.0/(omega*C));
-
Was meinst du jetzt wie in C eingeben? Die Formel da? Die kannst du in C++ genauso hinschreiben wenn I auch vom Typ complex ist.
Was für einen Datentyp nimmst du in C statt complex dafü?
-
Marcin schrieb:
Viele dank fuer Antwort.
Mit complex<double>(0, 1.0/(omega*L)) geht es natürlich auch.
Gibt es vielleicht auch eine C++ Methode um es wie in C einzugeben ?//Wie geht so was in C++? Zs = R + I*(1.0/(omega*C));Ganz einfach:
const complex<double> I(0,1);mal vorher irgendwann hinschreiben. Kostet Dich allerdings wohl etwas Laufzeit.
-
@Braunstein
Wie du sicher weiss kann man in C folgendes schreiben:complex double Zs; Zs = R + I*(1.0/(omega*C));R ist realteil, 1.0/(omega*C) ist (wegen I*) Imaginärteil.
Diese Schreibweise finde ich sehr elegant und würde sie gerne auch in C++ verwenden (oder etwas gleichwertiges).
Mit konstante geht es auch:Zs = 4 + 4i
-
Marcin schrieb:
Diese Schreibweise finde ich sehr elegant und würde sie gerne auch in C++ verwenden (oder etwas gleichwertiges).
Ich hab doch gerade beschrieben wie das geht.

-
Hallo Jester
Ich schrieb mein Beitrag genau zu gleichen Zeit wie du als Antwort auf für Braunstein.
Ansonsten dein Vorschlag klingt logisch aber ich habe ihn nicht zu ende verstanden, so wie ich ihn verstanden habe müsste es so aussehen:
#include <cmath> #include <iostream> #include <complex> #define PI 3.14159265359 using namespace std; int main(int argc, char **argv) { const complex<double> I(0,1); complex<double> Zs; double f,R,L,C,omega; f = 1000;/*Hz*/ R = 1000;/*Ω */ L = 150; /*H */ C = 2e-7;/*F */ omega = 2*PI*f; /*Hier entscheidende Zeile*/ Zs = R + I*(1.0/(omega*C)); cout << Zs << endl; return 0; }So kann es aber nicht funktionieren.
Wie hast du es gemeint, könntest du ein Beispiel posten ?/*Edit*/
Ich habe in meinem Programm ausversehen anstelle von R eine 0(int) gehabt, das war das Problemm.
Also danke Jester, deine Lösung war das was ich suchte.
-
Marcin schrieb:
So kann es aber nicht funktionieren.
Dein Programm kompiliert und läuft. Was ist dein Problem damit?
-
@Marcin
R + I rechnen mach irgendwie keinen Sinn. Was du vermutlich willst ist C + C rechnen!
-
Marcin schrieb:
@Braunstein
Wie du sicher weiss kann man in C folgendes schreiben:complex double Zs; Zs = R + I*(1.0/(omega*C));Ehrlich gesagt weiß ich das nicht, und habe eine solche Schreibweise auch noch nicht gesehen. Der Hinweis in meinem Post sollte eigentlich das ausdrücken, was Jester dann geschrieben hat.
-
@kmdf
R + I rechnen mach irgendwie keinen Sinn.
Es ist auch keine Berechnung sondern nur komplexe Zahl in kartesischer Form.
und habe eine solche Schreibweise auch noch nicht gesehen
Jetzt schon, falls dich das interessiert schau die wie komplexe Zahlen in C99 gehandhabt werden.
@.filmor
Ich bin mit C++ nicht so geübt,und dachte dass + operator nur für complex + complex definiert ist.Ansonsten Danke für die Antworten das Problem ist gelöst.