Narzędzia użytkownika

Narzędzia witryny


liczby_zespolone_complex

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
liczby_zespolone_complex [2008/11/09 16:51]
lromanow
liczby_zespolone_complex [2008/11/09 17:28]
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()// //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()'' ​''​imag()'' ​należące do klasy ''​**complex**''​.
  
 === Deklaracja liczb zespolonych === === 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**.+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. 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.
Linia 16: Linia 18:
 </​code>​ </​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ą.+Liczbie zespolonej ​''​**complex**'' ​można przypisać wartość innej liczby zespolonej. Ponieważ konstruktor jednoargumentowy jest również wykorzystywany jako operator konwersji, można ​również ​przypisać liczbie zespolonej wartość rzeczywistą.
  
 <code cpp> <code cpp>
Linia 23: Linia 25:
 </​code>​ </​code>​
  
-Funkcja ​//polar()// może służyć do konstrukcji liczby zespolonej dla danego modułu i kąta.+Funkcja ​''​polar()'' ​może służyć do konstrukcji liczby zespolonej dla danego modułu i fazy kąta.
  
 <code cpp> <code cpp>
Linia 29: Linia 31:
 </​code>​ </​code>​
  
-Wartość sprzężona powstaje z użyciem funkcji ​//conj()//.+Wartość sprzężona powstaje z użyciem funkcji ​''​conj()''​.
  
 <code cpp> <code cpp>
Linia 37: Linia 39:
 === Dostęp do wartości liczby zespolonej === === Dostęp do wartości liczby zespolonej ===
  
-Metody klasy **complex** ​//real()// //imag()// zwracają wartości odpowiednio części rzeczywistej i urojonej liczby zespolonej. Funkcje te można również wywołać jako zwykłe funkcje z obiektem klasy **complex** jako argument.+Metody klasy ''​**complex**''​ ''​real()'' ​''​imag()'' ​zwracają wartości odpowiednio części rzeczywistej i urojonej liczby zespolonej. Funkcje te można również wywołać jako zwykłe funkcje z obiektem klasy ''​**complex**'' ​jako argument.
  
 <code cpp> <code cpp>
Linia 47: Linia 49:
 === Operatory artmetyczne === === Operatory artmetyczne ===
  
-Operatory artmetyczne ​//+////-////*// oraz ///// mogą być używane zgodnie z przyjętą konwencją. Wszystkie przyjmują jako argumenty albo dwie liczby zespolone albo liczbę zespoloną i wartość rzeczywistą. Ponadto zdefiniowane są dla każdego z nich operatory przypisania.+Operatory artmetyczne ​''​+''​''​-''​''​*'' ​oraz ''​/'' ​mogą być używane zgodnie z przyjętą konwencją. Wszystkie przyjmują jako argumenty albo dwie liczby zespolone albo liczbę zespoloną i wartość rzeczywistą. Ponadto zdefiniowane są dla każdego z nich operatory przypisania.
  
 <code cpp> <code cpp>
Linia 56: Linia 58:
 </​code>​ </​code>​
  
-Operatory jednoargumentowe ​//+// //-// również można używać.+Operatory jednoargumentowe ​''​+'' ​''​-'' ​również można używać.
  
 <code cpp> <code cpp>
-  ​cout << -cplx_one << endl;                // wartość ???+   cout << -cplx_one << endl;               ​// wartość ???
 </​code>​ </​code>​
  
-\\+=== Porównywanie wartości === 
 + 
 +Dwie liczby zespolone ''​**complex**''​ mogą być przetestowane na równość lub nierówność wykorzystując operatory ''​==''​ i ''​!=''​. Dwie wartości są równe, gdy odpowiadające sobie części liczby są sobie równe. 
 + 
 +<code cpp> 
 +   cout << cplx_one == cplx_three << endl;  // wartość false 
 +   cout << cplx_one != cplx_three << endl;  // wartość true 
 +</​code>​ 
 + 
 +Liczby zespolone nie mogą być porównywane za pomocą innych operatorów. 
 + 
 +=== Strumienie I/O === 
 + 
 +Liczby zespolone klasy ''​**complex**''​ mogą być pisane do strumienia bądź z niego czytane wykorzystując przyjętą konwencję dla strumieni I/O. Wartość pisana jest do strumienia w nawiasach jako ''​(u,​v)''​. Wartość jest czytana ze strumienia jako dwie wartości numeryczne oddzielone przecinkiem i otoczone nawiasami. 
 + 
 +=== Wartość normalna i moduł === 
 + 
 +Funkcja ''​norm()''​ zwraca normę liczby zespolonej, która odpowiada sumie kwadratów części rzeczywistej i urojonej. Funkcja ''​abs()''​ zwraca moduł, który jest pierwiastkiem kwadratowym normy liczby zespolonej. 
 + 
 +<code cpp> 
 +   cout << norm(cplx_two) << endl; 
 +   cout << abs(cplx_two) ​ << endl; 
 +<\code> 
 + 
 +Kąt fazowy liczby zespolonej można uzyskać za pomocą funkcji ''​arg()''​. 
 + 
 +<code cpp> 
 +   cout << cplx_four << " w postaci biegunowej wynosi"​ 
 +        << abs(cplx_four) << "​e-"​ << arg(cplx_four) << endl; 
 +<\code> 
 + 
 +=== Funkcje trygonometryczne === 
 + 
 +Funkcje tryugonometryczne zdefiniowane dla typów zmiennoprzecinkowych zostały rozszerzone dla liczb zespolonych. Dotyczy to funkcji ''​sin()'',​ ''​cos()'',​ ''​tan()'',​ ''​sinh()'',​ ''​cosh()''​ i ''​tanh()''​. Każda z nich bierze jako argument liczbę zespoloną **complex** i zwraca podobnie liczbę zespoloną. 
 + 
 +=== Inne funkcje === 
 + 
 +Podobnie jak funkcje trygonometryczne funkcje ''​exp()'',​ ''​log()'',​ ''​log10()''​ i ''​sqrt()''​ zostały rozszerzone dla liczb zespolonych. Jako argument biorą liczbę ''​**complex**''​ i zwracają również ''​**complex**''​. 
 + 
 +Biblioteka standardowa definiuje kilka wersji funkcji ''​pow()''​. Istnieją osobne definicje dotyczące podnoszenia liczb zespolonych do wartości całkowitej,​ zespolonej i rzeczywistej. Podobnie można podnosić wartość rzczywistą do wartości ''​**complex**''​. 
 + 
 +==== ====
 ---- ----
 [[start]] >> [[biblioteka_standardowa]] [[start]] >> [[biblioteka_standardowa]]
liczby_zespolone_complex.txt · ostatnio zmienione: 2008/11/10 18:31 przez lromanow