I-bosqich ki-12-22 guruh talabasi shavkatov sirojbek ning “dasturlash2


Download 340.29 Kb.
bet1/11
Sana18.06.2023
Hajmi340.29 Kb.
#1564702
  1   2   3   4   5   6   7   8   9   10   11
Bog'liq
O-3XWxhqJ4kseNw9IGwHXz8oEzECnwoh


O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALARI
VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI

KOMPYUTER INJINIRINGI FAKULTETI
DASTURIY INJINIRING YO’NALISHI
I-BOSQICH KI-12-22 GURUH TALABASI
SHAVKATOV SIROJBEK NING
DASTURLASH2
FANIDAN TAYYORLAGAN
3-MUSTAQIL ISHI
Bajardi: SHAVKATOV SIROJBEK

Qabul qildi:


QARSHI-2023
REJA:
1.Xotirani taqsimlash va unga qo`yiladigan talablar.
Standart taqsimlash
2.Raqamli sinflar va ular bilan ishlash (complex, vallaray, slice,gslice va b.sh)
3.Murakkab saralash algoritmlari.
4.Juda katta raqamlar bilan ishlash.
5.Large sinfi qo`llash.


1.Xotirani taqsimlash va unga qo`yiladigan talablar.

Xotirani boshqarish - Memory management


"Xotira ajratish" bu erga yo'naltiriladi. Miyada xotirani ajratish uchun qarang Xotirani neyronal taqsimlash.
Ushbu maqola an manzil maydoni. Jismoniy xotirani boshqarish uchun qarang Xotirani boshqarish (operatsion tizimlar).



Ushbu maqola umumiy ro'yxatini o'z ichiga oladi ma'lumotnomalar, lekin bu asosan tasdiqlanmagan bo'lib qolmoqda, chunki unga mos keladigan etishmayapti satrda keltirilgan. Iltimos yordam bering takomillashtirish tomonidan ushbu maqola tanishtirish aniqroq iqtiboslar. (2014 yil aprel) (Ushbu shablon xabarini qanday va qachon olib tashlashni bilib oling)



Operatsion tizimlar




Umumiy xususiyatlar

  • Jarayonlarni boshqarish

  • Uzilishlar

  • Xotirani boshqarish

  • Fayl tizimi

  • Qurilma drayverlari

  • Tarmoq

  • Xavfsizlik

  • I / O




Xotirani boshqarish shaklidir resurslarni boshqarish uchun qo'llaniladi kompyuter xotirasi. Xotirani boshqarishning muhim talabi shundan iboratki, dasturlarga ularning talabiga binoan xotira qismlarini dinamik ravishda taqsimlash va kerak bo'lmaganda uni qayta ishlatish uchun bo'shatish. Bu bitta kompyuterdan ko'proq bo'lgan har qanday rivojlangan kompyuter tizimi uchun juda muhimdir jarayon har qanday vaqtda bo'lishi mumkin.[1]
Xotirani boshqarish samaradorligini oshiradigan bir necha usullar ishlab chiqilgan. Virtual xotira tizimlar ajratib turadi xotira manzillari protsessni ajratish va hajmini oshirishga imkon beradigan haqiqiy jismoniy manzillardan jarayon tomonidan foydalaniladi virtual manzil maydoni mavjud miqdordan tashqari Ram foydalanish xotira yoki almashtirish ikkilamchi saqlash. Virtual xotira menejerining sifati umumiy tizimga katta ta'sir ko'rsatishi mumkin ishlash.
Mundarija

  • 1 Tafsilotlar

    • 1.1 Xotirani dinamik ravishda taqsimlash

      • 1.1.1 Samaradorlik

      • 1.1.2 Amaliyotlar

        • 1.1.2.1 Ruxsat etilgan o'lchamdagi bloklarni taqsimlash

        • 1.1.2.2 Buddy bloklari

        • 1.1.2.3 Plitalarni ajratish

        • 1.1.2.4 Stekni taqsimlash

    • 1.2 Avtomatik o'zgaruvchilar

      • 1.2.1 Axlat yig'ish

  • 2 Virtual xotiraga ega tizimlar

  • 3 OS / 360 da xotirani boshqarish va vorislar

  • 4 Shuningdek qarang

  • 5 Izohlar

  • 6 Adabiyotlar

  • 7 Qo'shimcha o'qish

  • 8 Tashqi havolalar

Tafsilotlar
Ba'zi operatsion tizimlarda, masalan, DOS / 360 va vorislari, OS / 360 va vorislari,[2]:74 manzil maydonida saqlashni ajratish operatsion tizim tomonidan amalga oshiriladi; masalan, Unixga o'xshash operatsion tizimlar, ichida ajratish manzil maydoni dastur darajasida.
Manzil maydonidagi xotirani boshqarish odatda avtomatik ravishda boshqarishni o'z ichiga olgan avtomatik xotira boshqaruvi deb tasniflanadi axlat yig'ish, yoki xotirani qo'lda boshqarish.
Xotirani dinamik ravishda taqsimlash
Kirish
Oliy matematk kursida komleks sonlar bilan tanishgansizlar.
Ta’rif. Tartiblangan ikkita haqiqiy sonlar juftligi bolib, asosan standart ko’rinisda
a+bi (Dekart koorditalar tisimida) yoki (a,b)
beriladi. Bu erda:
a – uning butun qismi, bo’lib, haqiqiy sonlar to’plamiga tegishli;
b – uning mavhum qismi bo’lib, haqiqiy sonlar to’plamiga tegishli;
i – qiymati ga teng bo’lgan irratsional son;

Komplex sonnig qutb koordinatalar tizimidagi ko’rinishi:


z= p(cosα+isinα)
Bu erda:
p – complex sonning absolyut qiymati deyiladi, va
;
α – vektorning Ox o’qi bilan hosil qilgan burchagi
i – qiymati ga teng bo’lgan irratsional son;
Komplex sonlar ustida to’rtta arifmetik amallar quyidagi algoritm (formulalar) yordamida amalga oshiriladi:
z1=a+bi va z2=c+di 2 ta complex son uchun -
1) z1+z2=(a+c)+(b+d)i= ((a+c),(b+d)) - qo’shish
2) z1-z2=(a-c)+(b-)i= ((a-c),(b-d)) - ayirish
3) z1·z2=(ac-bd) +(ad+bc)i=((ac-bd),(ad+bc)) - ko’paytirish
4) – bo’lish
C ++ standart kutubxonasining kompleks son sinfi ob'ekt modelidan foydalanishning yaxshi namunasidir. Ortiqcha arifmetik operatsiyalar tufayli ushbu klass ob'ektlari o'rnatilgan ma'lumotlar turlaridan biriga tegishlicha ishlatiladi. Bundan tashqari, o'rnatilgan arifmetik turdagi o'zgaruvchilar va murakkab raqamlar bir vaqtning o'zida bunday operatsiyalarda ishtirok etishlari mumkin.
1. Raqamli sinflar va ular bilan ishlash.

C ++ standart kutubxonasining kompleks son sinfi ob'ekt modelidan foydalanishning yaxshi namunasidir. Ortiqcha arifmetik operatsiyalar tufayli ushbu sinf ob'ektlari o'rnatilgan ma'lumotlar turlaridan biriga tegishlicha ishlatiladi. Bundan tashqari, o'rnatilgan arifmetik turdagi o'zgaruvchilar va kompleks sonlar bir vaqtning o'zida bunday operatsiyalarda ishtirok etishlari mumkin. (E'tibor bering, bu erda biz murakkab sonlar matematikasining umumiy masalalariga murojaat qilmaymiz. Qarang [PERSON68] yoki matematikaga oid biron bir kitob.)


Masalan:
#inc1ude


comp1ex< double > a;
comp1ex< double > b; // ...
complex< double > с = a * b + a / b;
Kompleks va arifmetik turlarni bitta ifoda bilan aralashtirishga ruxsat beriladi:
complex< double > complex_obj = a + 3.14159;
Xuddi shunday, kompleks sonlar arifmetik tur bilan initsializatsiya qilinadi va ularga quyidagicha qiymat berilishi mumkin:
double dval = 3.14159;
complex_obj = dval;
yoki
int ival = 3;
complex_obj = ival;
Masalan, quyidagi ifoda kompilyatsiya xatosiga olib keladi:
// xato: arifmetik turga aniq konversiya qilinmaydi
double dval = complex_obj;

Kompleks sonning qaysi qismini - haqiqiy yoki mavhum - biz muntazam raqamga belgilashni xohlayotganimizni aniq ko'rsatishimiz kerak. Kompleks sonlar sinfi mos ravishda haqiqiy va mavhum qismlarni qaytaradigan ikkita funksiyaga ega. Biz ularga sinf a'zolariga kirish uchun sintaksis yordamida kirishimiz mumkin:


double re = complex_obj.real();


double im = complex_obj.imag();
yoki shunga o'xshash funktsiyani chaqirish sintaksisi:
double re = real(complex_obj);
double im = imag(complex_obj);
Kompleks son sinfi to'rtta kompozitsion tayinlash operatorlarini qo'llab-quvvatlaydi: + =, - =, * = va / =. Shunday qilib,
complex_obj += second_complex_obj;

Kompleks sonlarni Qo'llab-quvvatlaydigan kirish / chiqish . Chiqish operatori vergul bilan ajratilgan haqiqiy va mavhum qismlarni qavs ichiga bosib chiqaradi. Masalan, chiqish bayonotlarini bajarish natijasi


complex< double > complex0( 3.14159, -2.171 );


comp1ex< double > complex1( complexO.real() );
cout << complexO << " " << complex1 << endl;
quyidagicha:
( 3.14159, -2.171 ) ( 3.14159, 0.0 )
Kirish operatori quyidagi formatlarning istalganini tushunadi.
// kompleks sonlarni kiritish uchun ruxsat etilgan tiplari
// 3.14159 ==> comp1ex( 3.14159 );
// ( 3.14159 ) ==> comp1ex( 3.14159 );
// ( 3.14, -1.0 ) ==> comp1ex( 3.14, -1.0 );
// sifatida o'qish mumkin
// cin >> a >> b >> с
// bu yerda a, b, с – kompleks sonlar
3.14159 ( 3.14159 ) ( 3.14, -1.0 )
Ushbu operatsiyalarga qo'shimcha ravishda, kompleks sonlar sinfida quyidagi a'zo funksiyalariga ega: sqrt(), abs(), polar(), sin(), cos(), tan(), exp(), log(), log10() va pow().
Mashq 4.9

Biz uchun mavjud bo'lgan C ++ standart kutubxonasining joriy etilishi, agar to'g'ri operand kompleks son bo'lmasa, murakkab tarkibiy operatsiyalarini qo'llab-quvvatlamaydi. Masalan, shunga o'xshash yozuv haqiqiy emas:


complex_obj += 1;

(C ++ standartiga binoan, bunday ifoda to'g'ri bo'lishi kerak, ishlab chiqaruvchilar ko'pincha standartga rioya qilmaydilar.) Bunday operatsiyani bajarish uchun biz o'z operatorimizni aniqlay olamiz. Bu yerda complex uchun qo'shimcha operatorni amalga oshiradigan funksiyaning varianti:


#include
inline complex&
operator+=( complex &cval, double dval )
{
return cval += complex( dval );
}

Ushbu misoldan foydalanib, complex turi uchun yana uchta boshqa tayinlash operatorlarini amalga oshiring. Amaliyatingizni quyidagi dasturga qo'shing va tekshirish uchun ishga tushiring.


#include
#include
// определения операций...
int main() {
complex< double > cval ( 4.0, 1.0 );
cout << cval << endl;
cval += 1;
cout << cval << endl;
cval -= 1;
cout << cval << endl;
cval *= 2;
cout << cval << endl;
cout /= 2;
cout << cval << endl;
}
5. Shift (): —Ushbu funksiya elementlarni argument sifatida ko'rsatilgan raqamga o'tkazgandan so'ng, yangi valarray ni qaytaradi. Agar raqam musbat bo'lsa, chap siljish qo'llaniladi, agar salbiy bo'lsa, o'ng tomonga siljish qo'llaniladi.
6. CSHIFT (): — Ushbu funktsiya argument sifatida ko'rsatilgan raqam bo'yicha elementlarni aylantirgan (aylantirgan) dan keyin yangi valarrayni qaytaradi. Agar raqam musbat bo'lsa, chap siljish va aylana qo'llaniladi, agar son salbiy bo'lsa, chap siljish qo'llaniladi.
// Ishni namoyish qilish uchun C ++ kodi
// shift () и cshift ()
#include
#include // for valarray functions
using namespace std;
int main()
{
// valarray ni ishga tushurish
valarray varr = { 10, 2, 20, 1, 30 };

// yangi valarrayni e’lon qilish


valarray varr1;

// elementlarni chapga siljitish uchun shift () foydalaniladi


// valarray ni 2ta o’ringa surish
varr1 = varr.shift(2);

//elementlar surilgan keyin valarray ko’rinishi


cout << "The new valarray after shifting is : ";
for ( int&x : varr1) cout << x << " ";
cout << endl;

// elementlarni o'ngga aylantirish uchun cshift () dan foydalaning


// 3 ta o'ringa siljitish
varr1 = varr.cshift(-3);

// Dumaloq aylanishdan keyin valarray elementlarini ko’rish


cout << "The new valarray after circular shifting is : ";
for ( int&x : varr1) cout << x << " ";
cout << endl;

return 0;


}
Выход:


The new valarray after shifting is : 20 1 30 0 0
The new valarray after circular shifting is : 20 1 30 10 2

2.Complex, valarray, slice, gslice sonli sinflar


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 );
Kompleks, vektor singari, shablon bo'lgani uchun, uni yuqoridagi misollardagi kabi, float, double va long double turlari bilan belgilashimiz mumkin. Shuningdek, siz turdagi kompleks elementlarining qatorini aniqlashingiz mumkin:
complex double conjugate[ 2 ] = {
complex double ( 2, 3 ),
complex double ( 2, -3 )
};
Mana bundan aniqlanadi kompleks sonlarga ko’rsatgich va havolalar:
complex double *ptr = conjugate[0];
complex double ref = *ptr;
Kompleks sonlar qo'shilishi, ayirilishi, ko'paytirilishi, bo'linishi, taqqoslanishi, haqiqiy va mavhum qismlarning qiymatlarini olish mumkin.
Massiv qiymatlari sizga vektorlar va matritsalar bilan ishlashni osonlashtirishi mumkin, chunki u juda muhim xususiyatga ega - yozishning soddaligi xususiyati.
Massiv qiymatlaridan biror bir to’plamni ajratib olish mumkin bo’lib, quyidagi qism dasturni qaraymiz.
1 slice(0, 10, 2)

slice () - bu to’plam osti qism hisoblanib, biror usulda qayta ishlanadigan massivning oraliq qiymatlarini aniqlaydigan funktsiya. Slice () funktsiyasi uchta parametrga ega


 birinchi —tanlash orqali amalga oshirilgan massiv elementining indeksi, masalan indek nolga teng bo’lsa, demak tanlov massivning birinchi elementidan boshlanganini bildiradi.


 Ikkinchi – massivdagi elementlar soni
 Uchinchi — tanlov qadami, masalan qadam 2 ga teng bo’lsa, har ikkinchi element to’plamga qo’shilishini anglatadi.
Bundan tashqari, ushbu funktsiyani kvadrat qavs ichida chaqirish kerakligini bilishingiz kerak, masalan:

Download 340.29 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8   9   10   11




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