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 17:28]
lromanow
liczby_zespolone_complex [2008/11/09 18:12]
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 ===+===== 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**''​.
Linia 37: Linia 36:
 </​code>​ </​code>​
  
-=== Dostęp do wartości liczby zespolonej ===+===== Dostęp do wartości liczby zespolonej ​=====
  
 Metody klasy ''​**complex**''​ ''​real()''​ i ''​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()''​ i ''​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>
-   // poniższy kod powinien dać ten sam rezulatat 
    cout << cplx_one.real() << "​+"​ << cplx_one.imag() << "​i"​ << endl;    cout << cplx_one.real() << "​+"​ << cplx_one.imag() << "​i"​ << endl;
    cout << real(cplx_one) ​ << "​+"​ << imag(cplx_one) ​ << "​i"​ << endl;    cout << real(cplx_one) ​ << "​+"​ << imag(cplx_one) ​ << "​i"​ << endl;
 </​code>​ </​code>​
  
-=== 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.
Linia 64: Linia 62:
 </​code>​ </​code>​
  
-=== Porównywanie wartości ===+===== 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. 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.
Linia 75: Linia 73:
 Liczby zespolone nie mogą być porównywane za pomocą innych operatorów. Liczby zespolone nie mogą być porównywane za pomocą innych operatorów.
  
-=== Strumienie I/O ===+===== 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. 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ł ===+===== 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. 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.
Linia 86: Linia 84:
    cout << norm(cplx_two) << endl;    cout << norm(cplx_two) << endl;
    cout << abs(cplx_two) ​ << endl;    cout << abs(cplx_two) ​ << endl;
-<\code>+</code>
  
 Kąt fazowy liczby zespolonej można uzyskać za pomocą funkcji ''​arg()''​. Kąt fazowy liczby zespolonej można uzyskać za pomocą funkcji ''​arg()''​.
Linia 93: Linia 91:
    cout << cplx_four << " w postaci biegunowej wynosi"​    cout << cplx_four << " w postaci biegunowej wynosi"​
         << abs(cplx_four) << "​e-"​ << arg(cplx_four) << endl;         << abs(cplx_four) << "​e-"​ << arg(cplx_four) << endl;
-<\code>+</code>
  
-=== Funkcje trygonometryczne ===+===== 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ą.+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 ​również ​liczbę zespoloną.
  
-=== Inne funkcje ===+===== 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**''​.+Podobnie jak funkcje trygonometryczne funkcje ''​exp()'',​ ''​log()'',​ ''​log10()''​ i ''​sqrt()''​ zostały rozszerzone dla liczb zespolonych. Jako argument biorą ​obiekt ​''​**complex**''​ i zwracają również ​obiekt ​''​**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**''​.+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ść ​rzeczywistą do wartości ''​**complex**''​.
  
-==== ====+===== Przykładowy program ​===== 
 + 
 +Poniższa funkcja oblicza pierwiastki kwadratowe równania o współczynnikach zespolonych. 
 + 
 +<code cpp> 
 +#include <​complex>​ 
 +#include <​utilities>​ 
 + 
 +typedef complex<​double>​ Complex; 
 + 
 +pair<​Complex,​ Complex> roots (Complex a, Complex b, Complex c) 
 +
 +   ​Complex root = sqrt(b * b - 4.0 * a * c); 
 +   a *= 2.0; 
 +   ​return make_pair( 
 +      (-b + root)/a,  
 +      (-b - root)/a 
 +   ); 
 +
 +</​code>​ 
 + 
 +\\
 ---- ----
 [[start]] >> [[biblioteka_standardowa]] [[start]] >> [[biblioteka_standardowa]]
liczby_zespolone_complex.txt · ostatnio zmienione: 2008/11/10 18:31 przez lromanow