Similar presentations:
Sonli sinflar bilan ishlash. Sonli sinflar va ular bilan ishlash (complex, vallaray, slice, gslice va h.k)
1.
MUHAMMAD AL-XORAZMIY NOMIDAGITOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
URGANCH FILIALI
DASTURLASH
13
5
MAVZU
Ma’ruza
SonliMFC
sinflar
bilan ishlash.
OLE,
texnologiyalari.
Ko’pSonli
oynali
muhitlar
bilan
ishlash.
C++
muhitida
sinflar va
ular
bilanVisual
ishlash
(complex,
ko’p oynali
muhit
yaratish.
vallaray,
slice,
gslice
va h.k).
Ma’ruzachi
Ass. Yusupova J
DASTURLASH 1
1
2. Mа’ruza rejasi
1Complex sonli sinf va funksiyalari.
2
Valarray sonli sinf va funksiyalari.
3
Slice va gslice sonli sinf va funksiyalari.
4
Qo’shimcha sonli sinflar.
5
Xulosa
DASTURLASH 2
•2
3.
Complex sonli sinf va funksiyalari.C++ standarti kutubxonasidagi kompleks sonlar sinfi ob’ekt
modelidan foydalanishning yaxshi namunasidir.
Arifmetik amallar qayta aniqlash tufayli bu sinf ob’ektlari
o‘rnatilgan ma’lumot tiplaridan biriga tegishli kabi
ishlatiladi
Bundan tashqari, an’anaviy arifmetik o‘zgaruvchilar va
kompleks sonlar bir vaqtning o‘zida ixtiyoriy amallarda
ishtirok etishi mumkin
bu yerda kompleks sonlar matematikasiga oid so’z
yuritilmagan
DASTURLASH 2
3 3
4. Complex sonlar
Complex son deb: a+biifodaga aytiladi, bu yerda
a va b haqiqiy sonlar,
i – mavhum birlik bo’lib, u yoki i2= -1 tengliklar bilan aniqlanadi;
a – kompleks sonning haqiqiy qismi,
bi – mavhum qismi deyiladi.
Faqat mavhum qismining ishorasi bilan farq qiladigan ikki kompleks son:
a+bi va a-bi o’zaro qo’shma deyiladi. Ko’pincha a+bi kompleks son bitta α
harfi bilan belgilanadi: α=a+bi. a+bi kompleks sonning haqiqiy qismi a=Reα
bilan, mavhum qismining koeffitsientini b=Lmα bilan belgilaydilar. α
kompleks sonning a+bi ko’rinishidagi yozuviga uning algebraik shakli
deyiladi.
DASTURLASH 2
4
5. Complex sonlar
Agar ikkita α1=a1+b1i va α2=a2+b2i kompleks sondaa1= a2, b1= b2
bu ikki son teng deyiladi (α1= α2). Agar α=a+bi kompleks sonda a=0,
b=0 bo’lsa, bu kompleks son 0 ga (α=0) teng bo’ladi. Agar α=a+bi
kompleks sonda b=0 bo’lsa, haqiqiy son hosil bo’ladi; agar a=0 bo’lsa,
0+bi=bi sof mavhum son deyiladi.
DASTURLASH 2
5
6.
Complex sonli sinf va funksiyalari.Bu sinfni ishlatish uchun complex sarlavha fayl qo‘shilishi
kerak. Kichik dastur fragmentiga qarang:
#include<complex>
//...
complex<double> a;
complex<double> b;
//...
complex<double> c=a*b+a/b;
DASTURLASH 2
6
7.
Complex sonli sinf va funksiyalari.Kompleks va arifmatik amallar o‘zaro hamkorlikda
bajarailadi.:
complex<double> a;
complex<double> complex_obj=a+3.14159;
DASTURLASH 2
7
8.
Complex sonli sinf va funksiyalari.Kompleks tiplarni arifmetik tiplar bilan ham yaratish va ular
uchun operator= ni ishlatish mumkin:
complex<double> complex_obj;
double dval=3.14159;
complex_obj=dval;
//...
int ival=3 ;
complex_obj=ival ;
DASTURLASH 2
8
9. Complex sonli sinf funksiyalari
1.real() - Bu kompleks sonning haqiqiy qismini qaytaradi.2.imag() - Kompleks sonning mavhum qismini qaytaradi.
3.abs() - kompleks sonning absalyut qiymatini qaytaradi.
4.arg() - kompleks sonning argumentini qaytaradi
5.conj() - Bu x kompleks sonining konjugatini qaytaradi. Kompleks
sonning konjugati (real, imag) -> (real,-imag)
6.polar() - Kattalik va faza burchagi bo'yicha kompleks sonni
yaratadi. real = kattalik * kosinus (faza burchagi)
imag = kattalik * sinus (faza burchagi)
DASTURLASH 2
9
10. Complex sonlar uchun quyidagi operatorlar qayta yuklangan:
operator!=operator*
operator+
operator-
operator/
operator<<
operator==
operator>>
Haqiqiy va xayoliy qismlar uchun turlarning pastki qismiga tegishli bo'lishi mumkin
bo'lgan ikkita yoki murakkab ikkala murakkab sonlar o'rtasidagi tengsizlik uchun
testlar.
Haqiqiy va xayoliy qismlar uchun turlarning pastki qismiga tegishli bo'lishi mumkin
bo'lgan ikkita murakkab raqamni ko'paytiradi.
Haqiqiy va xayoliy qismlar uchun tipning pastki qismiga tegishli bo'lishi mumkin
bo'lgan ikkita murakkab sonni qo'shadi.
Haqiqiy va xayoliy qismlar uchun tipning pastki qismiga tegishli bo'lishi mumkin
bo'lgan ikkita murakkab raqamni ayiradi.
Haqiqiy va xayoliy qismlar uchun turlarning pastki qismiga tegishli bo'lishi mumkin
bo'lgan ikkita murakkab raqamni bo’ladi.
Chiqish oqimiga murakkab raqamni kiritadigan shablon funktsiyasi.
Haqiqiy va xayoliy qismlar uchun turlarning pastki qismiga tegishli bo'lishi mumkin
bo'lgan ikkita yoki murakkab ikkala murakkab sonlar o'rtasidagi tenglik uchun testlar.
Kirish oqimidan murakkab qiymatni chiqaradigan shablon funktsiyasi.
DASTURLASH 2
10
11. Complex sonlar uchun quyidagi sinflar yaratilgan:
complex<double>complex<float>
complex<long
double>
complex
DASTURLASH 2
Aniq ixtisoslashtirilgan sinf shablonlari ikkitomonlama tipdagi
buyurtma qilingan juftlikni saqlaydigan ob'ektni tasvirlaydi, bu erda
birinchisi murakkab sonning haqiqiy qismini, ikkinchisi esa xayoliy
qismni anglatadi.
Shubhasiz ixtisoslashtirilgan sinf shablonlari buyurtma qilingan
juftlikni saqlaydigan ob'ektni tavsiflaydi, har ikkala turdagi float ham,
birinchisi murakkab sonning haqiqiy qismini, ikkinchisi esa xayoliy
qismni anglatadi.
Aniq ixtisoslashtirilgan shablon shablonni buyurtma qilingan juftlikni
saqlaydigan ob'ektni tavsiflaydi, har ikkala turdagi uzun juft juftlik, bu
erda murakkab raqamning haqiqiy qismi, ikkinchisi xayoliy qism
tasvirlangan.
Sinf shablonlari murakkab sonlar tizimini ifodalash va murakkab
arifmetik amallarni bajarish uchun ishlatiladigan ob'ektni tavsiflaydi.
11
12. Compleks class yaratish
DASTURLASH 212
13. davomi
DASTURLASH 213
14. davomi
DASTURLASH 214
15. Real() va imag() complex funksiyasiga misol
DASTURLASH 215
16. Natija:
DASTURLASH 216
17. Complex sonli sinfga misol. real , imag, conj funksiyalarining qo’llanilishi
DASTURLASH 217
18. Natija:
DASTURLASH 218
19. polar() complex funksiyasiga misol
polar() - Kattalik va faza burchagi bo'yichakompleks sonni yaratadi. real = kattalik *
kosinus (faza burchagi)
imag = kattalik * sinus (faza burchagi)
DASTURLASH 2
19
20. Valarray son sinfi va uning funksiyalari.
Yaqin vaqtlarda C++ da massiv elementlari bilan ishlash vasamarali saqlash uchun Valarray konteyneri yaratildi. Bu
hamma C++ standartlarida bo‘lmasligi ham mumkin.
- Bu sinf massiv element indekslari bo‘yicha birlashtirish
operatorlari va elementlararo matematik amallarni bajaradi.
- Vektor bilan solishtirganda Valarray sinf matematik amallarni
bajarishda samaraliroq hisoblanadi.
DASTURLASH 2
20
21.
Valarray sinfning ochiq funksiyalari:apply() – bu massiv elementlari bo‘yicha bir vaqtda
o‘zgarishlarni bajaradi va yangi massiv qaytaradi.
sum() – massivdagi elementlar yig‘indisini
qaytaradi.
DASTURLASH 2
21
22. Misol:
DASTURLASH 222
23.
min() va max() fnuktsiyalari mos ravishda massiv eng kichikva eng katta elementlari qimatlarini qaytaradi.
cout << "min() => ";
cout << v1.min() << endl;
cout << "max() => ";
cout << v1.max() << endl;
shift() – berilgan son qiymat bo‘yicha indeks asosida massivni surib yangi
massiv qaytaradi. Agar son musbat bo‘lsa chapga suriladi, manfiy bo‘lsa,
o‘nga suriladi.
cshift() - berilgan son qiymat bo‘yicha indeks asosida massivni aylana
shaklida surib yangi massiv qaytaradi. Agar son musbat bo‘lsa chapga
suriladi, manfiy bo‘lsa, o‘nga suriladi.
DASTURLASH 2
23
24.
DASTURLASH 224
25.
swap () - bir massivni ikkinchi bir massivga almashtiradi.varr.swap(varr1);
Yuqoridagilardan tashqari quyidagi funksiyalari mavjud:
operator= Massiv qiymatini o‘zlashtirish
operator[] Massiv indeksi orqali elementiga murojaat
resize
Massiv elemmentlar soni (hajmi) ni qayta aniqlash
size
Massiv elemmentlar soni (hajmi)
DASTURLASH 2
25
26. Slice sinfi
Valarray slice sinfi: Bu sinf valarray slice sinfiniifodalaydi. U hech qanday elementni o'z ichiga olmaydi va unga
ishora qilmaydi - u faqat valarray::operator[] da indeks sifatida
ishlatiladigan elementlar tanlovini tavsiflaydi.
std::slice - bu std::valarray kichik to'plamini aniqlaydigan
sonli sinfi. std::slice tipidagi ob'ekt uchta qiymatga ega:
boshlang'ich indeks, qadam va kichik to'plamdagi qiymatlarning
umumiy soni. std::slice tipidagi obyektlar valarray operatori[]
yordamida indeks sifatida ishlatilishi mumkin.
DASTURLASH 2
26
27. Slice sinfi
Oddiy qilib aytganda, u indeks asosida kesish uchun ishlatiladi.Valarray slice boshlang'ich indeks, o'lcham va qadam bilan
belgilanadi.
slice( std::size_t start, std::size_t size, std::size_t qadam );size_t
star : tanlovdagi birinchi elementning indeksidir size_t size:
tanlovdagi elementlar soniqadam : tanlangan elementlarni
ajratuvchi oraliq.
DASTURLASH 2
27
28. Slice sinfi
DASTURLASH 228
29. Slice funksiyasiga namuna
DASTURLASH 229
30. Xulosa
DASTURLASH 230
31.
E’tiboringiz uchunrahmat
Savollar ?
DASTURLASH 2
31