Mavzu: Sonli sinflar va ular bilan ishlash. Complex sonlar, (vallaray, slice, gslice va h k.) Ishning maqsadi


Download 37.33 Kb.
bet4/4
Sana30.04.2023
Hajmi37.33 Kb.
#1402719
1   2   3   4
Bog'liq
8-amaliyot dasturlashII

Dastur matni:
#include
#include
using namespace std;


int main( )
{
using namespace std;
double pi = 3.14159265359;


complex c1 ( polar ( 5.0 ) ); // Default argument = 0
complex c2 ( polar ( 5.0 , pi / 6 ) );
complex c3 ( polar ( 5.0 , 13 * pi / 6 ) );
cout << "c1 = polar ( 5.0 ) = " << c1 << endl;
cout<< "c2 = polar ( 5.0 , pi / 6 ) = " << c2 << endl;
cout<<"c3 = polar (5.0, 13*pi / 6 ) = " << c3 << endl;


double absc1 = abs ( c1 );
double argc1 = arg ( c1 );
cout << "C1 moduli c1 dan quyidagilar yordamida tiklanadi: abs ( c1 ) = "
<< absc1 << endl;
cout << "C1 argumenti c1 dan quyidagilar yordamida tiklanadi:\n arg ( c1 ) = "
<< argc1 << " radians, qaysiki " << argc1 * 180 / pi
<< " darajasi." << endl;


double absc2 = abs ( c2 );
double argc2 = arg ( c2 );
cout << "C2 moduli c2 dan s2 yordamida tiklanadi: abs ( c2 ) = "
<< absc2 << endl;
cout << "C2 argumenti c2 dan quyidagilar yordamida tiklanadi:\n arg ( c2 ) = "
<< argc2 << " radianda, qaysiki " << argc2 * 180 / pi
<< " darajalar." << endl;
if ( (arg ( c2 ) <= ( arg ( c3 ) + .00000001) ) ||
(arg ( c2 ) >= ( arg ( c3 ) - .00000001) ) )
cout << " c2 & c3 komplex sonlar bir xil argumentlardan "
<< "tashkil topgan."<< endl;
else
cout << " c2 & c3 komplex sonlar bir xil argumentlardan "
<< "tashkil topmagan."<< endl;
}
Dastur natijasi:
c1 = polar ( 5.0 ) = (5,0)
c2 = polar ( 5.0 , pi / 6 ) = (4.33013,2.5)
c3 = polar ( 5.0 , 13 * pi / 6 ) = (4.33013,2.5)
C1 moduli c1 dan quyidagilar yordamida tiklanadi: abs ( c1 ) = 5
C1 argumenti c1 dan quyidagilar yordamida tiklanadi:
arg ( c1 ) = 0 radians, qaysiki 0 darajasi.
C2 moduli c2 dan s2 yordamida tiklanadi: abs ( c2 ) = 5
C2 argumenti c2 dan quyidagilar yordamida tiklanadi:
arg ( c2 ) = 0.523599 radians, qaysiki 30 darajalar.
c2 & c3 komplex sonlar bir xil argumentlardan tashkil topgan.



  1. conj() complex funksiyasiga misol:

Funksiya shabloni:
template <class Type>
complex conj(const complex& complexNum);
Dastur matni:
#include
#include
int main( )
{
using namespace std;


complex c1 ( 4.0 , 3.0 );
cout << "Komplex raqam c1 = " << c1 << endl;


double dr1 = real ( c1 );
cout << " c1 ning haqiqiy qismi bu haqiqiy ( c1 ) = "
<< dr1 << "." << endl;


double di1 = imag ( c1 );
cout << " c1 ning no'malum qismi bu imag ( c1 ) = "
<< di1 << "." << endl;


complex c2 = conj ( c1 );
cout<<"c1 ning komplex kasr qismi bu c2 = conj(c1)= "
<< c2 << endl;


double dr2 = real ( c2 );
cout << " c2 ning haqiqiy qismi bu real ( c2 ) = "
<< dr2 << "." << endl;


double di2 = imag ( c2 );
cout << " c2 ning no'malum qismi bu imag ( c2 ) = "
<< di2 << "." << endl;


complex c3 = c1 * c2;
cout<<"(c1 * conj (c1) ) ning haqiqiysi bu c1 * c2 = "
<< real( c3 ) << endl;
}


Dastur natijasi:
Komplex raqam c1 = (4,3)
c1 ning haqiqiy qismi bu haqiqiy ( c1 ) = 4.
c1 ning no'malum qismi bu imag ( c1 ) = 3.
c1 ning komplex kasr qismi bu c2 = conj ( c1 )= (4,-3)
c2 ning haqiqiy qismi bu real ( c2 ) = 4.
c2 ning no'malum qismi bu imag ( c2 ) = -3.
(c1 * conj (c1) ) ning haqiqiysi bu c1 * c2 = 25

  1. imag() complex funksiyasiga misol:

Funksiya shabloni:
template <class Type>
Type imag(const complex& complexNum);
Dastur matni:
#include
#include
int main( )
{
using namespace std;
complex c1 ( 4.0 , 3.0 );
cout << " c1 komplex son = " << c1 << endl;
double dr1 = real ( c1 );
cout << " c1 ning haqiqiy qismi bu real ( c1 ) = "
<< dr1 << "." << endl;
double di1 = imag ( c1 );
cout << " c1 ning noma'lum qismi bu imag ( c1 ) = "
<< di1 << "." << endl;
}
Dastur natijasi:
c1 komplex son = (4,3)
c1 ning haqiqiy qismi bu real ( c1 ) = 4.
c1 ning noma'lum qismi bu imagine ( c1 ) = 3.



  1. polar() complex funksiyasiga misol:

Funksiya shabloni:
template <class Type>
complex polar(const Type& _Modulus, const Type& _Argument = 0);
Dastur matni:
#include
#include
int main( )
{
using namespace std;
double pi = 3.14159265359;
complex c1 ( polar ( 5.0 ) );
// Default argument = 0
complex c2 ( polar ( 5.0 , pi / 6 ) );
complex c3 ( polar ( 5.0 , 13 * pi / 6 ) );
cout << "c1 = polar ( 5.0 ) = " << c1 << endl;
cout << "c2= polar ( 5.0 , pi / 6 ) = " << c2 << endl;
cout << "c3= polar(5.0, 13*pi / 6 ) = " << c3 << endl;
if ( (arg ( c2 ) <= ( arg ( c3 ) + .00000001) ) ||
(arg ( c2 ) >= ( arg ( c3 ) - .00000001) ) )
cout << " c2 & c3 komplex sonlar bir xil argumentlardan "<< "tashkil topgan."<< endl;
else
cout << " c2 & c3 komplex sonlar bir xil argumentlardan "<< "tashkil topmagan." << endl;
double absc2 = abs ( c2 );
double argc2 = arg ( c2 );
cout << " c2 ning moduli bu : abs ( c2 ) = "
<< absc2 << endl;
cout << " c2 argumenti bu :\n arg ( c2 ) = "
<< argc2 << " radianda, qaysiki " << argc2 * 180 / pi
<< " daraja." << endl;
}
Dastur natijasi:
c1 = polar ( 5.0 ) = (5,0)
c2 = polar ( 5.0 , pi / 6 ) = (4.33013,2.5)
c3 = polar ( 5.0 , 13 * pi / 6 ) = (4.33013,2.5)
c2 & c3 komplex sonlar bir xil argumentlardan tashkil topgan.
c2 ning moduli bu : abs ( c2 ) = 5
c2 argumenti bu :
arg ( c2 ) = 0.523599 radianda, qaysiki 30 daraja.

Topshiriqlar

          1. Complex sonli sinfi

Kompleks sonlar sinf complex standart kutubxonaning yana bir sinfidir. Odatdagidek, siz foydalanish uchun sarlavha faylini kiritishingiz kerak:
#include complex
Kompleks son ikki qismdan iborat - haqiqiy va mavhum. Mavhum qism manfiy sonning kvadrat ildizidir. Kompleks son odatda quyidagicha yoziladi
2 + 3i

          1. Bu yerda 2 – haqiqiy qism, 3i esa mavhum. Complex tipida obyektlarni aniqlash quyida keltirilgan:

  1. // sof mavhum raqam: 0 + 7-i

  2. complex double purei( 0, 7 );

  3. // mavhum qism nolga teng: 3 + Oi

  4. complex float rea1_num( 3 );

  5. // haqiqiy va mavhum qism nolga teng: 0 + 0-i

  6. complex long double zero;

  7. // bir kompleks sonni boshqasi bilan ishga tushurish

  8. complex double purei2( purei );


Topshiriq №1

  1. Complex sinfidan foydalanib, ikkita kompleks sonlarni qo’shing.

  2. Complex sinfidan foydalanib, ikkita kompleks sonlarni ayiring

  3. Complex sinfidan foydalanib, ikkita kompleks sonlarni ko’paytiring.

  4. Complex sinfidan foydalanib, ikkita kompleks sonlarni bo’ling.

  5. Complex sinfidan foydalanib, kompleks sonlar inkrementini (prefiks (++i) va postfiks (i++) lar uchun) amalga oshiring.

  6. Complex sinfidan foydalanib, kompleks sonlar dekrementini (prefiks (--i) va postfiks (i--) lar uchun) amalga oshiring.

  7. Complex sinfidan foydalanib, ikkita kompleks sonlarni qo’shing.

  8. Complex sinfidan foydalanib, ikkita kompleks sonlarni ayiring

  9. Complex sinfidan foydalanib, ikkita kompleks sonlarni ko’paytiring.

  10. Complex sinfidan foydalanib, ikkita kompleks sonlarni bo’ling.

  11. Complex sinfidan foydalanib, kompleks sonlar inkrementini (prefiks (++i) va postfiks (i++) lar uchun) amalga oshiring.

  12. Complex sinfidan foydalanib, kompleks sonlar dekrementini (prefiks (--i) va postfiks (i--) lar uchun) amalga oshiring.

  13. Complex sinfidan foydalanib, kompleks sonlarni ildizini toping.

  14. Complex sinfidan foydalanib, kompleks sonlarni darajaga oshiring.

  15. Complex sinfidan foydalanib, kompleks sonlarni yig’indisi va bo’linmasini toping.

Download 37.33 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling