Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 3000UZS
Размер 557.5KB
Покупки 0
Дата загрузки 14 Март 2023
Расширение pptx
Раздел Презентации
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Massivlar. Bir va ko’p o’lchovli massivlar, sonli ketma-ketliklar

Купить
MASSIVLAR. Bir va ko’p o’lchovli massivlar, sonli ketma- ketliklar C++ dasturlash tilida kompyuter xotirasiga bir o‘zgaruvchi yordamida bir nechta qiymatlardan foydalanishga to‘g’ri keladi. Bir o‘zgaruvchi bilan bir nechta qiymat ustida amallar bajarish uchun berilgan ma’lumotlar bir turga mansub bo‘lishi kerak. C++ dasturlash tilida bir o‘zgaruvchi yordamida bir nechta qiymatlardan foydalanish uchun massiv degan turdan foydalaniladi. Dasturlash tillarida ro‘yxat yoki jadval ko‘rinishidagi ma’lumotlarni massiv deb atashadi. Massiv so‘zining ma’nosi o‘lcham, o‘lchov demakdir. Jumaldagi o‘quvchilar ro‘yxati, safda to‘g‘ri to&#39;rtburchak hosil qilib turgan soldatlar, bog‘da tartib bilan ekilgan daraxtlar, talabalarning reytingini aniqlovchi qaydnoma, determinantlar, matritsalar, Pifagorning ko‘paytirish jadvali massivga misol bo‘la Massiv o‘z ichiga qamrab olgan har bir ob’ekt, ya’ni har bir o‘quvchi, soldat, daraxt yoki determinant, matritsani hosil qiluvchi har bir son o‘sha massivning elementi yoki massiv komponentasi deyiladi. Keltirilgan misollardan ko‘rinib turibdiki, massivning barcha elementlari bitta turga mansub bo‘lib, ular bitta nom bilan nomlanadi va bir-birlaridan nomerlari ( indekslari ) bilan farq qiladi. Ta’rif . Bir turga mansub bo‘lgan yagona nom bilan saqlanuvchi tartiblangan ma’lumotlar majmuasi massiv deyiladi. Massivlar yagona o‘zgaruvchi bilan kompyuter xotirasiga saqlanadi, uning elementlari ma’lum bir indekslar bilan tartiblab joylashtiriladi. C++ dasturlash tilida massivlardan foydalanishga do‘kondagi mahsulotlaming narxini misol qilib olish mumkin. Mahsulot narxlarini massiv sifatida qaralganda narxl, narx2, narx3, ..., narxn ko‘rinishda bir nechta mahsulot narxlarini kompyuter xotirasiga saqlab undan foydalanish mumkin. Massivlar yagona nom bilan bir nechta qiymatni o‘zida mujassamlashtiradi, bularga matematikadagi vektorlami misol keltirish mumkin. Vektor ham yagona nom bilan saqlanib uning tarkibida bir nechta qiymatni o‘zida mujassamlashadi. Vektorning ham elementlari bir turga mansub va tartiblangan bo‘ladi. Massivlar holatiga ko‘ra ikki turga bo’linadi. - Bir o‘lchovli massivlar; - Ikki o‘lchovli massivlar; Bir o‘lchovli massivlar ma’lumotlarni bir satrli ko‘rinishda saqlasa, ikki o‘lchovli massivlar esa ma’lumotlarni matritsa ko’rinishida saqlaydi. Massivlar holatiga ko‘ra ikki turga bo’linadi. - Bir o‘lchovli massivlar; - Ikki o‘lchovli massivlar; Bir o‘lchovli massivlar ma’lumotlarni bir satrli ko‘rinishda saqlasa, ikki o‘lchovli massivlar esa ma’lumotlarni matritsa ko’rinishida saqlaydi. Bir o‘lchovli massivlarni C++ dasturlash tilida bir nechta usullarda e’lon qilish mumkin. Bir o‘lchovli massivlarni boshlang’ich qiymatlari berilmasdan C++ dasturlash tilida quyidagicha e’lon qilinadi. <tur> < massiv o‘zgaruvchisi >[< element soni >]; Massivni C++ dasturlash tilida e’lon qilish uchun, albatta, elementlar soni yoki massiv elementlarining boshlang’ich qiymatlari berilishi kerak. Masalan, float a [20];. Bunda float - massiv turi , a - massiv nomi. Massiv nomi faqat bitta harfdan iborat bo’lmasdan ixtiyoriy identifikator ham bo’lishi mumkin, [20]-massiv o’lchami, ya’ni massiv elementlari soni. Ushbu massivi quyidagicha o’qiladi. «Elementlari haqiqiy sonlardan iborat bo’lgan a nomli massiv e’lon qilingan bo‘lib, elementlari soni 20 ta va ular 0 dan 19 gacha nomerlangan». Bir o‘lchovli massivlarni C++ dasturlash tilida bir nechta usullarda e’lon qilish mumkin. Bir o‘lchovli massivlarni boshlang’ich qiymatlari berilmasdan C++ dasturlash tilida quyidagicha e’lon qilinadi. <tur> < massiv o‘zgaruvchisi >[< element soni >]; Massivni C++ dasturlash tilida e’lon qilish uchun, albatta, elementlar soni yoki massiv elementlarining boshlang’ich qiymatlari berilishi kerak. Masalan, float a [20];. Bunda float - massiv turi , a - massiv nomi. Massiv nomi faqat bitta harfdan iborat bo’lmasdan ixtiyoriy identifikator ham bo’lishi mumkin, [20]-massiv o’lchami, ya’ni massiv elementlari soni. Ushbu massivi quyidagicha o’qiladi. «Elementlari haqiqiy sonlardan iborat bo’lgan a nomli massiv e’lon qilingan bo‘lib, elementlari soni 20 ta va ular 0 dan 19 gacha nomerlangan». Massivni bu tarzda e’lon qilishdan maqsad EHM xotirasida uning elementlari uchun joy ajratishdir. Massivni e’lon qilmasdan uning elementlaridan dastur tarkibida foydalanib bo’lmaydi. C++ dasturlash tilida massiv elementlari noldan boshlab nomerlanadi. Masalan, massiv o’lchami n bo‘lsa uning elementlari 0 dan n-1 gacha nomerlanadi. Massiv elementlari nomerli kvadrat qavsga olib ko’rsatiladi. Demak, yuqorida e’lon qilingan massivning birinchi element a[0], oxirgi elementi esa a[ 19] bo’ladi. Massiv elementlari nomerli albatta butun son bo’lishi shart. Shuningdek, massiv indeks qiymati butun son bo’ladigan algebrik ifoda bo’lishi ham mumkin. Yoki massiv indeksi butun turli o’zgaruvchi ham bo’lishi mumkin. Shuning uchun agar massiv indeksini sikl parametri kabi aniqlash yo‘li bilan massivning Misol : 10 ta elementdan tashkil topgan massiv elementlarini hosil qilib, elementlarini ikkiga ko‘paytirib ekranga chiqaring. C++ dasturlash tilida massiv elementlari boshlang’ich qiymatlari berilgan holatlarda e’lon qilish quyidagicha. < tur > < massiv o‘zgaruvchisi >[< element soni >]={ boshlang’ich qiymatlar }; Bunda massiv elementlari oldindan berilgan holatlarda ishlatilishi mumkin. Massiv elementlari soni aniq bo‘lib, uning elementlarining boshlang’ich qiymatlari to‘liq bo‘lmagan holatlarda quyidagicha e’lon qilinadi. int a[5]={2, 3,-4}; Yuqoridagi holatda massiv 5 ta elementan tashkil topgan, lekin uning uchta qiymatining boshlang’ich qiymatlari berilgan, qolgan ikkitasini boshlang’ich qiymatlari berilmagan. Agar massiv elementlarining boshlang’ich qiymatlari berilmagan bo‘lsa, uning boshlang’ich qiymatlari 0 deb qaraladi. !!! Shuni e’tiborga olish kerakki, massivning boshidagi elementlarini boshlang’ich qiymatlari berilmasdan uning o‘rtadagi yoki oxiridagi elementlarini boshlang’ich qiymatlarini berish mumkin emas. Massiv elementlari soni berilmasdan uning boshlang’ich qiymatlarini berish yo’li bilan e’lon qilish. int a[]={2, 3, -4, 5,6}; Agar massiv elementlari soni berilmasa, albatta, uning boshlang’ich qiymatlari berilishi kerak. Massivning elementlar soni berilmaganda dastur komplyatori massiv elementlari sonini boshlang’ich qiymatlar soni bilan aniqlaydi. Misol : Butun sonlardan iborat a[8] massiv berilgan uning juft elementlarini 2 ga ko‘paytirib toq elementlarini 3 ga ko’paytirib ekranga chiqaring. Misol: 10 ta elementdan tashkil topgan massiv berilgan uning eng katta elementini aniqlang. IKKI O’LCHOVLI MASSIVLAR C++ dasturlash tilida ba’zi hollarda bir nechta o‘lchamlari va turi bir xil bo‘lgan bir o’lchovli massivlardan foydalanishga to‘g’ri keladi. Bir nechta bir o‘lchovli massivlarni birlashtirish natijasida ikki o‘lchovli massivlarni hosil qilish mumkin. Ikki o‘lchovli massivlarni tarkibida ma’lumotlar satrlarning satri ko‘rinishida tasvirlanadi. Ikki o‘lchovli massivlarning tarkibi ham bir o‘lchovli massivlar kabi tartiblangan bir turga mansub bo&#39;lishi kerak. Ikki o‘lchovli massivlarga matematikadagi matritsalar misol bo‘lishi mumkin. Ikki o‘lchovli massivlar tarkibidagi elementlar xuddi matritsani elementlari kabi tasvirlanadi.04383804 Ta’rif : Bir turga mansub bo&#39;lgan yagona nom bilan saqlangan matritsa ko‘rinishdagi tartiblangan ma’lumotlar majmuasi ikki o’lchovli massivlar deyiladi. Ikki o’lchovli massivning barcha elementlari aniq turga mansub bo’ladi va uning elementlari bir nechta satrlar ko‘rinishda bo’ladi. Ikki o’lchovli massivlar quyidagi shaklda bo’ladi. Yuqoridagi shakldan ko‘rinib turibdiki ikki o‘lchovli massiv bir o‘lchovli massivlarning bir nechtasi yoki matritsa ko‘rinishida tasvirlanar ekan. Ikki o‘lchovli massivlarning kompyuter xotirasiga har bir satr uchun alohida tartib nomer bilan saqlanadi. Ikki o‘lchovli massivlarning har bir elementiga o’zining indeksi bo‘yicha murojat qilinadi. Ikki o‘lchovli massivlarni C++ dasturlash tilida e’lon qilish va uning umumiy ko&#39;rinishi quyidagicha. Ikki o‘lchovli massivlarni C++ dasturlash tilida e’lon qilish uchun massiv turi, massiv nomi, massiv satrdagi elementlar soni va massiv ustunidagi elementlar soni beriladi. Agar a[5,2] massiv berilgan bo’lsa, uni C++ dasturlash tilida a[2][5] ko’rinishda e’lon qilinadi. C++ dasturlash tilida massivlarni yozilishi, matematikadan bir oz farq qilinadi, ya’ni ustun va satrlari joyi almashtiriladi.<tur> <massivo‘zgaruvchisi> [<satrlar_soni>][<ustunlar_soni>]; Ikki o’lchovli massivlarni C++ dasturlash tilida e’lon qilinishi. Massivlarni elementlariga murojaat qilish uchun uning har bir elementining o’z indeksi bo‘yicha murojaat qilinadi. Massiv elementlariga murojat qilishni quyidagi shakl orqali bajariladi. Quyidagi ikki o‘lchovli massiv berilgan bo‘lsin. C++ dasturlash tilida ikki o‘lchovli massivlarning elementlarini boshlang’ich qiymatlarini quyidagi tartibda berilishi mumkin. Ikki o‘lchovli massiv elementlari boshlang’ich qiymatlari oldindan berilmasa, albatta, uning elementlar sonini oldindan berish kerak bo‘ladi. Ikki o‘lchovli massiv elementlari soni aniq, lekin uning elementlarini boshlang’ich qiymatlari berilmaganda, massiv elementlarini shakllantirish quyidagicha amalaga oshirish mumkin. BELGILI O’ZGARUVCHILAR. CHAR TOIFASIDAGI SATRLAR 1. Belgi va satrlar; 2. Satr uzunligini aniqlash; 3. Satrlarni nusxalash; 4. Satrlarni ulash; 5. Satrlarni teskari tartiblash; 6. Satrdan belgini izlash; 7. Satr ichidan satr qismini izlash. Belgini (simvolni) saqlash uchun mo&#39;ljallangan o’zgaruvchilarga belgili o’zgaruvchilar deyiladi. C++ tilida bu o’zgaruvchilar uchun char toifasi keltirilgan. char toifasidagi o’zgaruvchi ASCII kodidagi 255 ta belgidan ixtiyoriy birisi bo’lishi mumkin. Belgili o&#39;zgaruvchilarni e’lon qilish quyidagicha bo&#39;ladi: char c, s; belgili o&#39;zgaruvchilar apostraf ichida yoziladi. a=&#39;q&#39;; c=&#39;*&#39;; s=&#39;/&#39;; char toifasini oshkor ravishda butun toifaga o&#39;tkazish orqali, berilgan belgiga mos ASCII kodini aniqlash mumkin. char a=&#39;A&#39;; cout<<(int) a; ASCII kodi jadvaliga e&#39;tibor bering. Katta va kichik lotin harflari alifbo tartibida joylashtirilgan. Bu esa sikl orqali char toifasini tashkil qilish imkoniyatini beradi. Belgi va satrlar C++ dasturlash tilida satrlarni belgilar massivi sifatida ishlatish imkoniyati mavjud. Ta’rif: Alohida nom bilan saqlanuvchi bir nechta belgilardan tashkil topgan belgilar majmuasi satr deyiladi. Satrlarni belgilar massivi sifatida qarab ular ustida amallar bajarish mumkin. C++ dasturlash tilida satrlar nol(‘\\0’) terminatori bilan tugaydi. Nol terminatori bilan tugaydigan satrlar ASCIIZ –satrlari deyiladi. Satrlardan foydalanish va ular ustida amallar bajarish uchun albatta oldin ularni e’lon qilish kerak. Satr turiga mansub bo‘lgan o‘zgaruvchilarni char xizmatchi so‘zi orqali e’lon qilinadi. Satrlarni e’lon qilish uchun quyidagi dasturlarga etibor bering. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[10]; // s satrli o‘zgaruvchini e’lon qilish return 0; } Yuqoridagi dastur tarkibida s[10] satr o‘zgaruvchisi 9 ta elementga va bitta nol terminatoriga mo‘ljallangan. Satrlarni boshlang’ich qiymatlarini berish jarayonida uning elementlar sonini berish shart emas. Agar satrlarni elementlar soni berilmasa dastur avtomatik ravishda uning elementlar soniga boshlang’ich qiymatdagi elementlar sonidan bitta ortiq qilib ta’minlaydi, chunki oxiriga bitta nol terminatorini hisobga oladi. Doim satrlarni kiritishda uning elementlar soni e’lon qilinganidan oshib ketmasligi kerak aks holda faqat e’lon qilingan elementlar soniga teng elementlarni saqlab qolinib qolganlari olinmaydi. Satrlarni kiritish jarayonida >> oqim bo‘yicha kiritishdan foydalanmasdan getline() funksiyasidan foydalanish maqsadga muvofiq bo‘ladi. Agar oqim bo‘yicha kiritishdan foydalanilsa unda probellar inkor qilinib satrni ikkinchi qismlari qabul qilinmaydi. getline(s,n) funksiyasi ikkita parametrni o‘z ichiga oladi, birinchisi s satr o‘zgaruvchisi ikkinchisi n satr elementlar soni. Getline funksiyasi satr elementlaridan ortiq qiymatlarni ham kiritish imkoniyatini yaratadi, natijada satr elementlari ortadi. Kiritish jarayonini amalga oshirish uchun quyidagi dasturlarga etibor bering. Kiritish jarayonini amalga oshirish uchun quyidagi dasturlarga e’tibor bering. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[10]; // s satrli o‘zgaruvchini e’lon qilish cin.getline(s,10); cout<<s; return 0; } Kiritish ma’lumotlari Absdefghl Dastur natijasi Absdefghl Satr uzunligini aniqlash Satrlar ustida amallar bajarish vaqtida albatta satrlarning uzunligi kerak bo‘ladi. Satr uzunligini aniqlash uchun string.h kutubhonasiga murojat qilish kerak aksariyat satr uchun ishlatiladigan funksiyalarni string.h kutubhonasiga murojat qilib ishlatishimiz mumkin. Satr uzunligini aniqlashni ikki hil usuli mavjud. -satr tarkibidagi mavjud elementlar sonini nol terminatorisiz aniqlash; -tarkibidagi elementlarga ajratilgan sonini nol terminatori bilan aniqlash; Satr tarkibidagi mavjud elementlar sonini nol terminatorisiz aniqlash funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. strlen(<satrli o‘zgaruvchi>); Strlen funksiyasi o‘z tarkibiga satrli o‘zgaruvchi yoki satr o’zini qabul qilishi mumkin. Masalan strlen (“absd”) bo‘lsa uning natijasi 4 ga teng bo‘ladi. Misol: Berilgan satr tarkibidagi elementlar sonini aniqlang.. Demak strlen(s) funksiyasi s satrni tarkibidagi mavjud elementlari sonini aniqlaydi. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[10]; int x; cin.getline(s,10); x=strlen(s); cout<<x; return 0; } Kiritish ma’lumotlari Dastur Dastur natijasi 6 Satr tarkibidagi elementlarga ajratilgan sonini nol terminatori bilan aniqlash uchun sizeof(s ) funksiyasidan foydaliniladi. Sizeof(s) funksiyasi s satr uchun ajratilgan elementlar sonini aniqlaydi, s satrni 10 ta elementga moslab e’lon qilib lekin 5 ta element kiritilsa ham sizeof funksiyasi 10 qiymatni qaytaradi. Satr tarkibidagi elementlarga ajratilgan sonini nol terminatori bilan aniqlash funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. sizeof(<satrli o‘zgaruvchi>); Sizeof funksiyasi o‘z tarkibiga satrli o‘zgaruvchi yoki satr uzini qabul qilishi mumkin. Masalan strlen (“absd”) bo‘lsa uning natijasi 5 ga teng bo‘ladi. Misol: Berilgan satr tarkibidagi elementlar sonini aniqlang. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[10]; int x; cin.getline(s,10); x=sizeof(s); cout<<x; return 0; } Kiritish ma’lumotlari Salom Dastur natijasi 10 Demak sizeof(s) funksiyasi s satrni tarkibidagi mavjud elementlari sonini emas balki unga ajratilgan qiymatni aniqlaydi. Agar sizeof funksiyasi tarkibida o‘zgaruvchi emas satr uzini kiritsa unda sizeof funksiyasi tarkibidagi elementlardan bitta ko‘p qiymatni qaytaradi chunki nol terminatorini ham qo‘shadi. Quyidagi dasturga e’tibor bering. int main() { cout<<sizeof(&#34;dastur&#34;); return 0; } Dastur natijasi 7 Misol: Berilgan s satr tarkibidan p element necha marta ishtirok etganligini aniqlang. #include <iostream.h> #include <string.h> using namespace std; int main() { int x,n=0; char s[100]; cin.getline(s,10); //s satrni kiritish char p; cin>>p; //p belgini kiritish x=strlen(s); for(int i=0;i<=x-1;i++) if(s[i]==p) n++; cout<<n; return 0; } Kiritish ma’lumotlari s=assalom p=a Dastur natijasi 2 Satrlarni nusxalash C++ dasturlash tilida satrlarni bir biriga nusxalashni bir qancha usullari mavjud. Satrlarni nusxalash uchun strcpy() funksiyasidan foydalanish mumkin, strcpy() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. strcpy(satr1, satr2); strcpy(satr1, satr2) funksiyasi satr2 dagi elementlarni to‘laligicha satr1 ga nusxalaydi. Satr1 ni elementlar soni doimo satr2 elementlar sonidan katta bo‘lishi kerak. Misol: Berilgan s satr elementlarini p satrga nusxalang. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); char p[10]; strcpy(p,s); cout<<p; return 0; } Kiritish ma’lumotlari s=dastur Dastur natijasi Dastur Misol: Berilgan s satr elementlarini p satrga nusxalang. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); char p[10]; strcpy(p,s); cout<<p; return 0; } Kiritish ma’lumotlari s=dastur Dastur natijasi Dastur Satrlarni nusxalash uchun strncpy() funksiyasidan foydalanish mumkin, strncpy() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. strncpy(satr1, satr2,n); strncpy(satr1, satr2,n) funksiyasi satr2 dagi elementlarni n tasini satr1 ni boshiga nusxalaydi. Strncpy() funksiyasini strcpy() funksiyasidan farqi satr2 ni nta elementini satr1 ni boshiga nusxalaydi. Misol: Berilgan s satrni 3 ta elementini p satrga nusxalang. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); char p[10]; cin.getline(p,10); strncpy(p,s,3); cout<<p; return 0; } Kiritish ma’lumotlari s=algoritm p=dastur Dastur natijasi Algtur Satrlarni ulash Bir nechta satrlarni ulash natijasida yangi satrlarni hosil qilish mumkin. C++ dasturlash tili tarkibida satrlarni bir biriga ulashni bir nechta usullari mavjud, satrlarni bir biriga ulab yangi satrlar hosil qilinadi. C++ dasturlash tilida strcat() funksiyasi yordamida satrlarni bir biriga ulash imkoniyati mavjud, strcat() funksiyasining umumiy ko‘rinishi quyidagicha ko‘rinishda bo‘ladi. strcat(satr1, satr2); C++ dasturlash tilida strcat(satr1, satr2) funksiyasi satr2 ni satr1ni oxiriga ulaydi. Misol: Berilgan s satrni p satrga birlashtiring. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); char p[10]; cin.getline(p,10); strcat(p,s,3); cout<<p; return 0; } Kiritish ma’lumotlari s=ali p=vali Dastur natijasi Valiali C++ dasturlash tilida strncat() funksiyasi yordamida satrlarni bir biriga faqat n ta elementini ulash imkoniyati mavjud, strncat() funksiyasining umumiy ko‘rinishi quyidagicha ko‘rinishda bo‘ladi. strncat(satr1, satr2,n); C++ dasturlash tilida strncat(satr1, satr2, n) funksiyasi satr2 ni n ta boshlang’ich elementlarini satr1ni oxiriga ulaydi. Misol: Berilgan s satrni boshidagi 3 ta elementini p satr oxiriga birlashtiring. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); char p[10]; cin.getline(p,10); strncat(p,s,3); cout<<p; return 0; } Kiritish ma’lumotlari s=algoritm p=dastur Dastur natijasi Dasturalg Satrlarni teskari tartiblash Satrlarni teskari tartiblash uchun C++ dasturlash tilidan tashqari boshqa dasturlash tillarida takrorlanish jarayonlari orqali bajariladi. C++ dasturlash tilida satrlarni teskari tartiblash uchun strrev() funksiyasi yordamida bajarish mumkin. Strrev() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. strrev(<satrO‘zgaruvchisi>); Strrev(s) funksiyasi s satrni teskari tartibda jaoylashtiradi. Misol: Berilgan s satrni teskari tartiblang. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); cout<<strrev(s); return 0; } Kiritish ma’lumotlari s=algoritm Dastur natijasi Mtirogla Satrdan belgini izlash Satr tarkibidan birorta belgini qidirish uchun C++ dasturlash tilining string.h kutubxonasi ichidan strchr() funksiyasidan foydalanish kerak. Strchr() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. strchr(<s,p>); Strchr(s) funksiyasi s satr ichida p belgini izlaydi agar topilsa shu elementdan keyingi qismni aks holda nullni qaytaradi. Misol: Berilgan s satrdan p belgini qidiring. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,10); char p; cin>>p; cout<<strchr(s,p); return 0; } Kiritish ma’lumotlari s=algoritm p=t Dastur natijasi Tm Satr ichidan satr qismini izlash Satr tarkibidan birorta qism satrni qidirish uchun C++ dasturlash tilining string.h kutubxonasi ichidan strstr() funksiyasidan foydalanish kerak. Strstr() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. strstr(<s,p>); Strstr(s) funksiyasi s satr ichida p qism satrni izlaydi agar topilsa shu satrdan keyingi qismni aks holda nullni qaytaradi. Misol: Berilgan s satrdan p satrni qidiring. #include <iostream.h> #include <string.h> using namespace std; int main() { char s[100]; cin.getline(s,100); char p[100]; cin.getline(p,100); cout<<strstr(s,p); return 0; } Kiritish ma’lumotlari s=aliakbar p=ak Dastur natijasi Akbar string tipidagi satrlar va ular ustida amallar C++ dasturlash tilida satrlar uchun belgilar massividan tashqari string turi ham ishlatiladi. String turiga mansub bo‘lgan satrlar nol terminatori bilan tugallanmasdan u oddiy belgilar massivi sifatida qaraladi. String turida satrlar uzunligining bajariladigan amalllar natijasida dinamik ravishda o’zgarib turishi, uning tarkibida bir qator funksiyalar aniqlanganligi bu tur bilan ishlashda ma’lum bir qulayliklar yaratadi. string tipidagi satrlar 171B0C0B 091B0B C++ dasturlash tilida string turidagi o‘zgaruvchilarni e’lon qilish uchun string xizmatchi so‘zi orqali amalga oshiriladi. string s, sl; C++ dasturlash tilida string turiga mansub bo’lgan satrlarni boshlang’ich qiymatlarini bir nechta usullarda berish mumkin. String turidagi satrlarni boshlang’ich qiymatlarini berish jarayonini quyidagi dastur orqali qaraymiz: string tipidagi satrlar 171B0C0B 091B0B String turidagi satrlar ustida amallar bajarish uchun uning elementlari bilan ishlashga to‘g’ri kcladi. String turidagi satrlarni har bir elementlariga murojaat qilish uchun at() funksiyasi yoki oddiy [] orqali murojaat qilinadi. Masalan s.at(3) yoki s[3] - s satrning uchinchi elementiga murojaat qilinadi. Satrlarning ixtiyoriy elementiga murojat qilish uchun doimo bitta kam qilib buyruq berish kerak, chunki satrlar belgili massiv bo‘lganligi uchun boshlang’ich element nolinchi o&#39;rindan boshlanadi. string tipidagi satrlar 171B0C0B 091B0B String turidagi satrlarni kiritish uchun getline funksiyasidan foydalanamiz. getline(cin,s); string tipidagi satrlar #include <iostream.h> #include <string.h> using namespace std; int main() { string s; getline(cin,s); cout<<s.at(3)<<s[4]; return 0; }171B0C0B 091B0B String turidagi satrlarni nusxalash String turidagi satrlarni nusxalash uchun assign() funksiyasidan foydalaniladi. Assign() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi: <s1>.assign(<s2>); Assign funksiyasi s2 satrni s1 satrga nusxalash amalini bajaradi. string tipidagi satrlar ustida amallar 17 09 Misol: s2 satmi s1 satrga nusxalash amalini bajaring.string tipidagi satrlar ustida amallar 17 09 Satrning biror qismidan nusxa olish funksiyasi Bu amalni bajarish uchun satr1.substr(n,m) funksiyasidan foydalaniladi. Funksiyaning quyidagicha ko‘rinishlari mavjud. a) satr1.substr(n,m). Bunda satr1 qismidan nusxa olinayotgan satr bo‘lib, funksiya shu satrning n- belgisidan keyingi m ta belgisidan nusxa oladi; b) satr1.substr(n) ko‘rinishida foydalanilsa satrl satrning n-belgisidan oxirigacha nusxa olinadi; string tipidagi satrlar ustida amallar 17 09 string tipidagi satrlar ustida amallar 17 09 Satrning oxiriga boshqa satrni o‘rnatish String turidagi satrni qismiga boshqa satrni o‘matish uchun append() funksiyasidan foydalaniladi. append() funksiyasining umumiy ko‘rinishi quyidagicha bo&#39;ladi. s1.append(s2,n,m); append funksiyasi s2 satrni n-elementidan m ta elementni s1 satr oxiriga o‘rnatish amalini bajaradi. string tipidagi satrlar ustida amallar 17 09 Misol: s2 satrni ikkinchi elementidan uchtasini s1 satrga o‘rnatish amalini bajaring. string tipidagi satrlar ustida amallar 17 09 Satr tarkibiga boshqa satrni joylashtirish String turidagi satrni qismiga boshqa satrni o‘rnatish uchun insert() funksiyasidan foydalaniladi. insert() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi. satr2.insert (n,satr1,m,k) Funksiyaning quyidagi ko‘rinishlaridan foydalaniladi: string tipidagi satrlar ustida amallar 17 09 a) satr2.insert(n,satr1); ko‘rinishidan foydalanilganda funksiya satr2 ning n-o‘rnidan boshlab satr1 ni joylashtiradi. b) satr2.insert(n,satr1,m,k); ko‘rinishidan foydalanilganda funksiya satr2 ning n- belgisidan keyin satr1 ning m-belgisidan keyingi k-ta belgisini joylashtiradi. m - belgisi kirmaydi. s) satr2.insert(n,satrl,m); ko‘rinishidan foydalanilganda funksiya satr2 ning n-belgisidan keyin satr1 ning dastlabki m ta belgisini joylashtiradi. string tipidagi satrlar ustida amallar 17 09 Satr qismini o‘chirish String turidagi satrni qismini o‘chirish uchun erase() funksiyasidan foydalaniladi. erase() funksiyasining umumiy ko&#39;rinishi quyidagicha bo&#39;ladi: s1.erase(n,m); erase funksiyasi s1 satrni n-elementidan m ta elementni o‘chirish amalini bajaradi. string tipidagi satrlar ustida amallar 17 09 Misol : s1 satrni ikkinchi elementidan uchtasini o’chirish amalini bajaring. string tipidagi satrlar ustida amallar 17 09 Matn qismini boshqa matn qismi bilan almashtirish funksiyasi Bu amalni bajarish uchun satr1.replace(n,m,satr2,i,j) funksiyasidan foydalaniladi. Funksiyaning quyidagicha ko‘rinishlari mavjud. a) satrl.replace(n,m,satr2) ; ko‘rinishidan foydalanilganda satrl ning n-belgisidan keyingi m ta belgisi satr2 bilan almashtiriladi. b) satrl.replace(n,m,satr2,i,j); ko‘rinishidan foydalanilganda satrl ning n-belgisidan keyingi m ta belgisi satr2 ning i-belgisidan keyingi j ta belgisi bilan almashtiriladi. string tipidagi satrlar ustida amallar 17 09 s) satrl.replace(n,m,satr2,k); ko‘rinishidan foydalanilganda satr1 ning n- belgisidan keyingi m ta belgisi satr2 char turli massivning dastlabki k ta belgisidan tashkil topgan qismini string turiga aylantirib almashtiriladi. string tipidagi satrlar ustida amallar 17 09 Satr tarkibidan satr qismini izlash String turidagi satr tarkibidan satr qismini izlash uchun find() funksiyasidan foydalaniladi. find() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi: sl.find(s2); Find funksiyasi s1 satr ichidan s2 satrni izlash amalini bajaradi, agar topilsa, s2 ning boshlanish indeksini saqlaydi aks holda -1 natija qaytaradi. string tipidagi satrlar ustida amallar 17 09 Misol : s1 satr tarkibidan s2 satrni izlash amalini bajaring. string tipidagi satrlar ustida amallar int main() { string s,a; int i; getline(cin,s); getline(cin,a); i=s.find(a); cout<<i; return 0; }17 09 Misol : Agar satr tarkibida izlanadigan qism bir necha marta bajarilsa, oxirgi qismning indeksini aniqlash uchun rfind() funksiyasidan foydalaniladi. rfind() funksiyasini ishlash jarayoni find() funksiyasini ishlash jarayoni bilan bir xil. string tipidagi satrlar ustida amallar 17 09 Misol : Agar satr tarkibida izlanadigan qism bir necha marta bajarilsa, oxirgi qismning indeksini aniqlash uchun rfind() funksiyasidan foydalaniladi. rfind() funksiyasini ishlash jarayoni find() funksiyasini ishlash jarayoni bilan bir xil. string tipidagi satrlar ustida amallar 17 09 Satming xossalarini aniqlash uchun quyidagi funksiyalardan foydalaniladi. x=satr.size(); funksiyasi satr ning o‘lchamini aniqlaydi. x=satr.length(); funksiyasi satr ning belgilari sonini aniqlaydi. x=satr.max_size(); funksiyasi satr ning maksimal o‘lchamini aniqlaydi. x=satr.capacity(); funksiyasi satr ning xotirada egallagan joyi hajmini aniqlaydi. x=satr.empty(); funksiyasi qiymati bool turli bo‘lib, agar satr bo‘sh bo‘lsa, funksiya qiymati true, aks holda false bo‘ladi. Satr xossalarini aniqlash funksiyalari03 STRUKTURALAR . STRUKTURA FUNKSIYA ARGUMENTI SIFATIDA Dasturlashtirish masalalarida biron bir tashkilot yoki muassasalarning ma’lumotlar bazasini hosil qilish va ma’lumotlar bazasi tarkibidagi ma’lumotlarni qayta ishlashga to‘g’ri keladi. Ma’lumotlar bazasini hosil qilishda bitta ob’ekt uchun bir nechta parametrlar saqlanadi, bunday holatlar uchun bitta ob’ekt uchun bir nechta parametrlarni birlashtirilish kerak bo’ladi. C++ dasturlash tilida bir nechta turlarni birlashtirib yangi tur hosil qilish jarayoni strukturalar yaratish deb ataladi. C++ dasturlash tilida ma’lumotlar bazasini hosil qilish uchun strukturalardan foydalaniladi . STRUKTURA03 Struktura tarkibida bitta turga bir nechta turlar birlashadi. Masalan talaba haqida ma’lumotlar bazasi hosil qilishda talaba deb nomlangan struktura tarkibida talaba familyasi, ismi, reytingi, tug’ilgan vaqti kabi parametrlari saqlanish kerak. Demak, har bir talaba uchun yuqoridagi barcha parametrlar inobatga olinishi kerak bo’ladi. Struktura tarkibida bitta o’zgaruvchini bir nechta qiymatlari bo’lishi mumkin. Bir nechta talabalar haqida ma’lumotlami qayta ishlash davrida bitta talaba uchun bir nechta parametrlar mavjud, bunday holatlarni hal etish uchun strukturalardan foydalaniladi. STRUKTURA03 Ta’rif: C++ dasturlash tilida hir yoki bir nechta turlar jamlanmasini birlashtirish struktura deb nomlanadi. Strukturalarni ba’zi hollarda yozuvlar ham deb ataladi, strukturalar tarkibidagi turlarning har biri maydon deb nomlanadi. Та’ rif: Ob’ektning bitta xususiyatini o’zida saqlaydigan parameter maydon deb nomlanadi.STRUKTURA031E0740 Talaba haqida ma’lumotlar strukturasi hosil qilinishda quyidagi maydonlar bo‘lishi mumkin: Talabani familyasi, ismi, otasining ismi, tug’ilgan vaqti, telefoni, manzili va hakoza. Strukturalar maydonlardan tashkil topgan ekan, struktura tarkibidagi har bir maydon strukturani bitta parametrini o‘zida saqlaydi. Struktura maydoni uchun xotira hajmi, mayon uzunligiga teng bo‘ladi. Struktura maydoni qiymatlari ifodalarda ishlatilishi mumkin. Struktura03 C++ dasturlash tilida strukturalami e’lon qilishda struct xizmatchi so‘zidan foydalaniladi. Struktura e’lon qilingandan so‘ng dastur tarkibida o‘zgaruvchilarni struktura nomi bilan e’lon qilinadi. C++ dasturlash tilida strukturalarni tasvirlashning umumiy ko’rinishi quyidagicha ko’rinishda bo’ladi: Strukturalarni e’lon qilish031B0C210F Strukturalarni tasvirlashda struct xizmatchi so‘zidan keyin struktura nomi va figurali qavsda uning maydonlari kiritilishi shart. Struktura nomi masala mohiyatiga qarab tanlansa, maqsadga muvofiq. Masalan, talabalar haqida ma’lumotlar bazasida struktura nomini talaba yoki supermarket mahsulotlari narxlari bazasida esa narx deb nomlash mumkin. Strukturalar tarkibidagi maydonlarni e’lon qilish xuddi oddiy o‘zgaruvchilarni e’lon qilishdek bajariladi va oxiri blok yopilishidan so‘ng, albatta, nuqtali vergul qo‘yilishi shart. Strukturalarni e’lon qilish031B0C210F Strukturalar yartish jarayonini tushunish uchun C++ dasturlash tilida talabalar haqida ma’lumotlar bazasini struktura yordamida quyidagicha hosil qilinadi: Misol: Talabalar ( familyasi , ismi , telefoni , reytingi , tug’ilgan_yili ) haqida ma’lumotlarga asosan C++ dasturlash tilida struktura hosil qiling. Strukturalarni e’lon qilish031B0C210F #include <iostream> #include <string> using namespace std; struct talaba { string fam ; // familiyani saqlovchi maydon string ism ; // ismni saqlovchi maydon char tel[10] ; // telefonni saqlovchi maydon int t_y ; // tug&#39;ilgan yilini saqlovchi maydon int baho ; // bahosini saqlovchi maydon }; Strukturalarni e’lon qilish int main() { return 0; }031B0C210F C++ dasturlash tili tarkibida yaratilgan strukturalardan foydalanish uchun struktura o‘zgaruvchisini e’lon qilishda tur sifatida struktura nomi beriladi. Talaba haqida ma’lumotlar bazasini hosil qilishda talaba deb nomlangan struktura yaratiladi, talabalar ma’lumotlar bazasini esa A o’zgaruvchiga saqlanadi, A o’zgaruvchini turini talaba deb nomlanadi. Struktura o’zgaruvchisini e’lon qilishning umumiy ko’rinishi quyidagicha bo’ladi: <struktura nomi> <struktura o‘zgaruvchisi>Strukturalarga murojaat qilish va ulardan foydalanish031B Talaba ma’lumotlar bazasini qayta ishlash uchun talaba nomi bilan struktura yaratib, ma’lumotlarni esa A o’zgaruvchiga saqlanish holatini e’lon qilish jarayonini quydagi dastur yordamida ko’rib chiqamiz:Strukturalarga murojaat qilish va ulardan foydalanish …………………… using namespace std; struct talaba { string fam ; …………………………….. }; int main() { talaba A; return 0; }031B C++ dasturlash tilida struktura maydoniga murojaat qilish uchun struktura nomi va maydon nomi nuqta bilan birlashtirilgan holda amalga oshiriladi. Struktura ma’lumotlarini dastur tarkibiga kiritish vaqtida har bir maydon elementlarini kiritish tavsiya etiladi. C++ dasturlash tilida strukturalarga murojaat qilishning umumiy ko‘rinishi quyidagicha bo‘ladi: <struktura o‘zgaruvchisi>. <maydon nomi>Strukturalarga murojaat qilish va ulardan foydalanish031B Misol . Talaba haqidagi ma’lumotlar berilgan, agar talaba 2001 –yilda tug’ilgan bo’lsa uning ismini chiqarsin, aks holda 2001-yil tug’ilmagan degan ma’lumot chiqarsin.Strukturalarga murojaat qilish va ulardan foydalanish int main() { talaba A; getline(cin,A.fam); getline(cin,A.ism); cin.getline(A.tel,10); cin>>A.t_y>>A.baho; if (A.t_y == 2001) cout<<A.ism; else cout<<A.fam<<&#34; &#34;<<A.ism<<&#34; 2001-yil tug&#39;ilmagan&#34;; return 0; }031B Biror bir tashkilot yoki mussasa ma’lumotlar bazasi yaratish uchun struktura o‘zgaruvchisini ko‘p qiymatidan foydalanishga to’g’ri keladi. Struktura o&#39;zgaruvchisini ikki va undan ortiq qiymatlariga murojaat qilish uchun struktura o&#39;zgaruvchisini massiv sifatida qarash mumkin. Struktura massivini e’lon qilish, xuddi oddiy massiv kabi e’lon qilinadi, faqatgina massiv turiga struktura nomi ko‘rsatiladi. C++ dasturlash tilida struktura massivlarini e’lon qilishning umimiy ko’rinishi quyidagicha bo’ladi: STRUKTURA MASSIVI <struktura nomi> <struktura massivi> [<qiymatlar soni>]03 Struktura massiviga murojaat qilish uchun massiv elementlariga murojat qilishdek bajariladi faqatgina massiv elementlari maydon nomi bilan birga murojat qilinadi. Talabalar haqida ma’lumotlar yaratish va ularni qayta ishlash uchun struktura massividan foydalanish kerak, chunki bitta talaba uchun bir nechta parametr ishlatiladi va ma’lumotlar bazasida n ta talaba haqida ma’lumot saqlanadi. Misol : N ta talaba haqida ismi, familyasi, tug’ilgan yili haqida mа’lumot berilgan 20 yoshdan katta bo&#39;lgan talabalarning ismi va familyasini ekranga chiqaruvchi dastur tuzing. STRUKTURA MASSIVI03 #include <iostream> #include <string> using namespace std; struct talaba { string fam; // familiyani saqlovchi maydon string ism; // ismni saqlovchi maydon char tel[10]; // telefonni saqlovchi maydon int t_y; // tug&#39;ilgan yilini saqlovchi maydon int baho; // bahosini saqlovchi maydon }; int main() { int n; cout<<&#34;Talabalar sonini kiriting&#34;<<endl; cin>>n; talaba A[n]; for (int i=0; i<n; i++) { cout<<i+1<<&#34;- talaba familiyasini kiriting&#34;<<endl; cin>>A[i].fam; cout<<i+1<<&#34;- talaba ismini kiriting&#34;<<endl; cin>>A[i].ism; cout<<i+1<<&#34;- talaba telefonini kiriting&#34;<<endl; cin>>A[i].tel; cout<<i+1<<&#34;- talaba tug&#39;ilgan yilini kiriting&#34;<<endl; cin>>A[i].t_y; cout<<i+1<<&#34;- talaba bahosini kiriting&#34;<<endl; cin>>A[i].baho; } cout<<&#34; 20 yoshdan katta talabalar &#34;<< endl ; for (int i=0; i<n; i++) { if (2021-A[i].t_y > 20) cout< <A[i].fam<<&#34; &#34;<< A[i].ism <<endl; } return 0; } Birlashmalar va ular ustida amallar. Birlashmalar xotiraning bitta sohasida (bitta adres bo’yicha) har xil turdagi bir nechta berilganlarni saqlash imkonini beradi. Birlashma e’loni union kalit so’zi, undan keyin identifikator va blok ichida har xil turdagi elementlar e’lonidan iborat bo’ladi, masalan: union birlashma { int n; char a[20]; float b; }; Birlashmalar va ular ustida amallar0A Birlashmaning bu e’lonida kompilyator tomonidan birlashma uchun uning ichidagi eng ko’p joy egallovchi elementning – a massivning o’lchamida, ya’ni 10 bayt joy ajratiladi. Vaqtning har bir momentida birlashmada, e’lon qilingan maydonlarning faqat bittasining turidagi berilgan mavjud deb hisoblanadi. Yuqoridagi misolda birlashma ustida amal bajarilishida uning uchun ajratilgan xotirada yoki int turidagi n yoki char tipidagi a satr yoki haqiqiy turdagi b qiymati joylashgan deb hisoblanadi. Birlashmalar va ular ustida amallar0A Birlashma maydonlariga xuddi struktura maydonlariga murojaat qilgandek . (nuqta) orqali murojaat qilinadi. Strukturalardan farqli ravishda birlashma e’lonida faqat uning birinchi elementiga boshlang’ich qiymat berish mumkin: Birlashmalar va ular ustida amallar Bu misolda birlashma birlashmasining n maydoni boshlangich qiymat olgan hisoblanadi.union birlashma { int n; char a[20]; float b; };0A Birlashmalar va ular ustida amallar #include <iostream> using namespace std; struct talaba1 { int id; char name[40]; int phone; }; union talaba2 int id; char name[40]; int phone; }; int main() { talaba1 s1; talaba2 u1; cout << &#34;size of structure : &#34; ; cout<< sizeof(s1) << endl; cout << &#34;size of union : “; cout << sizeof(u1) << endl; return 0; }0A Berilganlar ustida ishlashda ularning miqdori qancha bo’lishi va ularga xotiradan qancha joy ajratish kerakligi oldindan noma’lum bo’lishi mumkin. Programma ishlash paytida berilganlar uchun zarurat bo’yicha xotiradan joy ajratish va ularni ko’rsatkichlar bilan bog’lash orqali yagona struktura hosil qilish jarayoni xotiraning dinamik taqsimoti deyiladi. Bu usulda hosil bo’lgan berilganlar majmuasiga berilganlarning dinamik strukturasi deyiladi, chunki ularning o’lchami programma bajarilishida o’zgarib turadi. Programmalashda dinamik strukturalardan chiziqli ro’yxatlar (zanjirlar), steklar, navbatlar va binar daraxtlar nisbatan ko’p ishlatiladi. Ular bir - biridan elementlar o’rtasidagi bog’lanishlari va ular ustida bajariladigan amallari bilan farqlanadi. Har qanday berilganlarning dinamik
Купить
  • Похожие документы

  • Operatsion tizimlarda journaling file system
  • I/O scheduling algoritmlari
  • O‘rta Osiyo kutubxonalarining o‘rganilish masalalari
  • Funksiyalar va arrow function
  • Tashkilot xodimlari ma’lumotlarini jamlovchi tizim

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha