Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
liczby_zespolone_complex [2008/11/09 15:16] lromanow |
liczby_zespolone_complex [2008/11/09 15:40] lromanow |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
==== Liczby zespolone <complex> ==== | ==== Liczby zespolone <complex> ==== | ||
+ | |||
+ | |||
Klasa szablonowa **complex** służy do reprezentacji i manipulacji liczbami zespolonymi. Operacje zdefiniowane na liczbach zespolonych pozwalają na swobodne mieszanie obiektów tej klasy z wbudowanymi typami numerycznymi. Należy zauważyć, że większość operacji wykonywanych na obiektach tej klasy to zwykłe funkcje. Wyjątkami są metody //real()// i //imag()// należące do klasy **complex**. | Klasa szablonowa **complex** służy do reprezentacji i manipulacji liczbami zespolonymi. Operacje zdefiniowane na liczbach zespolonych pozwalają na swobodne mieszanie obiektów tej klasy z wbudowanymi typami numerycznymi. Należy zauważyć, że większość operacji wykonywanych na obiektach tej klasy to zwykłe funkcje. Wyjątkami są metody //real()// i //imag()// należące do klasy **complex**. | ||
+ | |||
+ | === Deklaracja liczb zespolonych === | ||
+ | |||
+ | Argument szablonu określa typ związany z wartościami części rzeczywistej i urojonej obiektu. Ten argument musi być jednym z trzech dostępnych typów zmiennoprzecinkowych **float**, **double** lub **long double**. | ||
+ | |||
+ | Dostępne są cztery konstruktory. Konstruktor bezparametrowy inicjalizuje obie części liczby zespolonej wartością zero. Konstruktor jednoargumentowy incjalizuje wartością parametru część rzeczywistą i zeruje urojoną. Konstruktor dwuargumentowy inicjalizuje obie części liczby zespolonej. Ostatecznie, konstruktor kopiujący pozwala inicjalizować obiekt wartościami innego dostępnego obiektu klasy. | ||
+ | |||
+ | <code cpp> | ||
+ | complex<float> cplx_one; // wartość 0 + 0i | ||
+ | complex<float> cplx_two(3.14); // wartość 3.14 + 0i | ||
+ | complex<float> cplx_three(1.5, 3.14) // wartość 1.5 + 3.14i | ||
+ | complex<float> cplx_four(cplx_two); // wartość również 3.14 + 0i | ||
+ | </code> | ||
+ | |||
+ | Liczbie zespolonej **complex** można przypisać wartość innej liczby zespolonej. Ponieważ konstruktor jednoargumentowy jest również wykorzystywany jako operator konwersji, można przypisać liczbie zespolonej wartość rzeczywistą. | ||
+ | |||
+ | <code cpp> | ||
+ | cplx_one = cplx_three; // staje się 1.5 + 3.14i | ||
+ | cplx_three = 2.17; // staje się 2.17 + 0i | ||
+ | </code> | ||
+ | |||
+ | Funkcja //polar()// może służyć do konstrukcji liczby zespolonej dla danego modułu i kąta. | ||
+ | |||
+ | <code cpp> | ||
+ | cplx_four = polar(5.6, 1.8); | ||
+ | </code> | ||
+ | |||
+ | Wartość sprzężona powstaje z użyciem funkcji //conj()//. | ||
+ | |||
+ | <code cpp> | ||
+ | complex<float> cplx_five = conj(cplx_four); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [[biblioteka_standardowa]] | ||