namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:include:complex

Inhaltsverzeichnis

<complex>

Komplexe Zahlen

Komplexe Zahlen werden in drei Spezialisierungen angeboten:

std::complex<float> 
std::complex<double>
std::complex<long double>

Zumeist wird man einen dieser Typen bevorzugen:

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)

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

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';	
  }
}

Ausgabe:


                                                               *
                                                            *******
                                                           ********
                                                            ******
                                                          ******** *
                                                **** *******************
                                                ************************** ***
                                                 *****************************
                                             *********************************
                                              *********************************
                                           **************************************
                                            ************************************
                            **  *****       ************************************
                            ***********    *************************************
                          *************** **************************************
                          ******************************************************
                      *** *****************************************************
 ***************************************************************************
                      *** *****************************************************
                          ******************************************************
                          *************** **************************************
                            ***********    *************************************
                            **  *****       ************************************
                                            ************************************
                                           **************************************
                                              *********************************
                                             *********************************
                                                 *****************************
                                                ************************** ***
                                                **** *******************
                                                          ******** *
                                                            ******
                                                           ********
                                                            *******
                                                               *
kennen/include/complex.txt · Zuletzt geändert: 2020-07-30 09:20 von rrichter