namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:include:complex

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:include:complex [2020-07-30 09:20] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== <complex> ======
 +==== Komplexe Zahlen ====
 +Komplexe Zahlen werden in drei Spezialisierungen angeboten:
 +
 +<code cpp>
 +std::complex<float> 
 +std::complex<double>
 +std::complex<long double>
 +</code>
 +Zumeist wird man einen dieser Typen bevorzugen:
 +<code cpp>
 +typedef std::complex<double> complex;
 +complex c(2,3);  
 +std::cout << c << " = " 
 +          << c.real() << '+' << c.imag() << "j\n"; // (2,3) = 2+3j
 +std::cin >> c;  // erlaubt: 2 (2) (2,3)
 +</code>
 +Ausgaben erfolgen als geklammertes Zahlenpaar (re,im).
 +Eingaben sind in drei Formen erlaubt.
 +Neben Arithmetik, Vergleichen und den üblichen mathematischen Funktionen aus
 +[[cmath]] sind definiert:
 +
 +| ''real( c )'' | Realteil|
 +| ''imag( c )'' | Imaginärteil|
 +| ''abs( c )'' | Betrag (Abstand ''rho'' vom Nullpunkt)|
 +| ''arg( c )'' | orientierter Winkel ''phi'' von Realachse|
 +| ''norm( c )'' | Quadrat von ''%%abs(c)%%''|
 +| ''conj( c )'' | konjugiert komplexe Zahl (re,-im)|
 +| ''polar(rho, phi)'' | komplexe Zahl aus Polarkoordinaten|
 +
 +==== Beispiel ====
 +<code cpp mandelbrot.cpp>
 +#include <complex>
 +#include <iostream>
 +
 +auto mandelbrot(std::complex<double> c)
 +{
 +  std::complex<double> z;
 +  for (auto i = 0; i < 100; ++i) z = z*z + c;
 +  return abs(z) < 2;
 +}
 +
 +auto pixel(bool value) { return " *"[value]; }
 +
 +int main()
 +{
 +  for (auto y = 1.0; y >= -1.0; y -= 0.05)
 +  {
 +    for (auto x = -2.0; x <= 0.5; x += 0.03)
 +      std::cout << pixel(mandelbrot({x,y}));
 +    std::cout << '\n';
 +  }
 +}
 +</code>
 +Ausgabe:
 +<file>
 +
 +
 +                                                               *
 +                                                            *******
 +                                                           ********
 +                                                            ******
 +                                                          ******** *
 +                                                **** *******************
 +                                                ************************** ***
 +                                                 *****************************
 +                                             *********************************
 +                                              *********************************
 +                                           **************************************
 +                                            ************************************
 +                            **  *****       ************************************
 +                            ***********    *************************************
 +                          *************** **************************************
 +                          ******************************************************
 +                      *** *****************************************************
 + ***************************************************************************
 +                      *** *****************************************************
 +                          ******************************************************
 +                          *************** **************************************
 +                            ***********    *************************************
 +                            **  *****       ************************************
 +                                            ************************************
 +                                           **************************************
 +                                              *********************************
 +                                             *********************************
 +                                                 *****************************
 +                                                ************************** ***
 +                                                **** *******************
 +                                                          ******** *
 +                                                            ******
 +                                                           ********
 +                                                            *******
 +                                                               *
 +
 +</file>
  
kennen/include/complex.txt · Zuletzt geändert: 2020-07-30 09:20 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki