Mavzu: Sonli sinflar va ular bilan ishlash. Complex sonlar, (vallaray, slice, gslice va h k.) Ishning maqsadi
Download 37.33 Kb.
|
8-amaliyot dasturlashII
Dastur matni:
#include #include using namespace std; int main( ) { using namespace std; double pi = 3.14159265359; complex complex complex 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. conj() complex funksiyasiga misol: Funksiya shabloni: template <class Type> complex Dastur matni: #include #include int main( ) { using namespace std; complex 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 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 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 imag() complex funksiyasiga misol: Funksiya shabloni: template <class Type> Type imag(const complex Dastur matni: #include #include int main( ) { using namespace std; complex 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. polar() complex funksiyasiga misol: Funksiya shabloni: template <class Type> complex Dastur matni: #include #include int main( ) { using namespace std; double pi = 3.14159265359; complex // Default argument = 0 complex complex 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 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 Bu yerda 2 – haqiqiy qism, 3i esa mavhum. Complex tipida obyektlarni aniqlash quyida keltirilgan: // sof mavhum raqam: 0 + 7-i complex double purei( 0, 7 ); // mavhum qism nolga teng: 3 + Oi complex float rea1_num( 3 ); // haqiqiy va mavhum qism nolga teng: 0 + 0-i complex long double zero; // bir kompleks sonni boshqasi bilan ishga tushurish complex double purei2( purei ); Topshiriq №1 Complex sinfidan foydalanib, ikkita kompleks sonlarni qo’shing. Complex sinfidan foydalanib, ikkita kompleks sonlarni ayiring Complex sinfidan foydalanib, ikkita kompleks sonlarni ko’paytiring. Complex sinfidan foydalanib, ikkita kompleks sonlarni bo’ling. Complex sinfidan foydalanib, kompleks sonlar inkrementini (prefiks (++i) va postfiks (i++) lar uchun) amalga oshiring. Complex sinfidan foydalanib, kompleks sonlar dekrementini (prefiks (--i) va postfiks (i--) lar uchun) amalga oshiring. Complex sinfidan foydalanib, ikkita kompleks sonlarni qo’shing. Complex sinfidan foydalanib, ikkita kompleks sonlarni ayiring Complex sinfidan foydalanib, ikkita kompleks sonlarni ko’paytiring. Complex sinfidan foydalanib, ikkita kompleks sonlarni bo’ling. Complex sinfidan foydalanib, kompleks sonlar inkrementini (prefiks (++i) va postfiks (i++) lar uchun) amalga oshiring. Complex sinfidan foydalanib, kompleks sonlar dekrementini (prefiks (--i) va postfiks (i--) lar uchun) amalga oshiring. Complex sinfidan foydalanib, kompleks sonlarni ildizini toping. Complex sinfidan foydalanib, kompleks sonlarni darajaga oshiring. Complex sinfidan foydalanib, kompleks sonlarni yig’indisi va bo’linmasini toping. Download 37.33 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling