C++ Tilida navbat, stek, dek
MAVZU: C++ Tilida navbat, stek , dek . Reja: 1. C++ dasturlash tili haqida umumiy tushuncha. 2. C++ dasturlash tilida navbat. 3. C++ dasturlash tilida stek. 4. C++ dasturlash tilida dek. 5. Xulosa. C++ dasturlash tili haqida umumiy tushuncha . C++ dasturlash tili 1990 yilda C++ standarti ishlab chiqildi va bu standart hozir ANSI C nomi bilan mashxur. Bu til juda kengayib ketdi va hozirgi kunda bu tilning imkoniyatlari juda cheksiz hisoblanadi. C++ funksiya va ob yektlarningʼ boy kutubxonasiga ega. Bundan kelib chiqadiki C++ dasturlash tilini o rganish 2 ʼ qismga bo linadi: dastlab, C++ tili sintaksisi o rganiladi va shundan so ng uning ʼ ʼ ʼ asosiy kutubxonalari birma-bir ko rib chiqib, yodlash lozim bo ladi. Bundan ʼ ʼ ko rinib turibdiki, bu til juda katta hajmni o z qamroviga oladi. C++ tilining egasi ʼ ʼ yo q u hech kimga tegishli emas. Bu til S tilidan kelib chiqgani uchun bosh harf S, ʼ ++ esa bu tildagi qiymatni bittaga ko tarish belgisi hisoblanadi va bu belgi C++ ʼ dasturlash tilida paydo bo ldi. C++ dasturlash tili kompilyatsiya qilinadigan til ʼ hisoblanadi bu degani yozilgan kod oldin mashina tiliga o giriladi va keyin ishga ʼ tushiriladi. #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0;
} C++ tilida ma’lumotlarning elementlari . C++ tilida so z deb bir nechta belgilarʼ ketma-ketligi tushuniladi. Xizmatchi so z deb C++ tilidagi standart nom ʼ tushuniladi. Bu maxsus ma noni anglatadi va uni ma lumotlarga berib bo lmaydi. ʼ ʼ ʼ Masalan: int, float, for, while va boshqalar. C++ tilida ma lumotlarning elementlari ʼ bo lib quyidagilar xizmat qiladi: ʼ 1.O’zgaruvchilar 2.O’zgarmaslar 3.Izohlar C++ dasturlash tilida o’zgaruvchilar . O zgaruvchi - xotiraning nomlangan qismi ʼ bo lib, o zida ma lum bir toifadagi qiymatlarni saqlaydi. O zgaruvchining nomi va ʼ ʼ ʼ ʼ qiymatlari bo ladi. O zgaruvchining nomi orqali qiymat saqlanayotgan xotira ʼ ʼ qismiga murojaat qilinadi. Programma ishlashi jarayonida o zgaruvchining ʼ qiymatini o zgartirish mumkin. Har qanday o zgaruvchini ishlatishdan oldin, uni ʼ ʼ e lon qilish lozim. Demak butun sonlardan foydalanish uchun int, haqiqiy ʼ sonlardan foydalanish uchun float, yozuvlarni e lon qilish uchun string va boshqa ʼ ma lumotlarning turlariga qarab o zgaruvchisilar kiritiladi. ʼ ʼ C++ dasturlash tilida o zgarmaslar ʼ . va izohlar O zgarmaslar – deb hisoblash ʼ jarayonida qiymatini o zgartirmaydigan kataliklarga aytiladi. Ular const so zi ʼ ʼ orqali qo llaniladi. Masalan: float const pi = 3.14; Izohlar - programmaning ʼ ma lum qismini tavsiflash uchun ishlatiladi va bu qatorda hech qanday amal ʼ bajarilmaydi, ya ni programmaning biror qismini yaxshiroq tushuntirish uchun ʼ xizmat qiladi. Izoh «/*» va «*/» simvollari orasida beriladi. Bundan tashqari birsatrli izohlardan ham foydalanish mumkin. Buning uchun izoh boshiga «//» belgisi qo yiladi. ʼ C++ dasturlash tilida navbat
Navbat bu shunday tuzilmaki, u elementlar qo’shilishi bilan kengayib boradi va elementlarni faqatgina bir tomondan qabul qiladi. Stekdan farqli holda, navbat tuzilmasi har ikkala tomondan ham ochiq hisoblanadi, lekin element kiritish bir tomondan, chiqarish esa ikkinchi tomonidan amalga oshiriladi. Navbat FIFO(first in first out – birinchi kelgan birinchi ketadi) ko’rinishidagi tuzilmadir. Navbatda ham xuddi stekdagi kabi C++ da alohida kutubxona mavjud. #include Navbatni dasturda e’lon qilish quyidagicha: Queue nav1; Navbat ustida quyidagi amallar bajariladi: - Clear() - navbatni tozalash. - isEmpty() – navbatni bo’shlikka tekshirish - enqueue(el)—el elementni navbatga joylashtirish - dequeue() — navbatdan birinchi elementni olish - firstEl() — navbatning birinchi elementini uni o’chirmasdan qaytaradi Navbatda bajariladigan enqueue va dequeue amallari 4.7 rasmda keltirilgan. Steklardan farqli ravishda navbatlarda o’zgarishlar uning oxirida va boshida bo’lishi nazorat qilinishi lozim. Elementlar navbatga oxiridan joylashtiriladi, olish esa boshidan amalga oshiriladi. Queue (Navbat Queue ham Stack singari chiziqli ma’lumot tuzilmasi bo’lib, hayotdagi oddiy navbat singari ishlaydi. Shu sababli Stackdan farqli o’laroq Queueda eng oxirgi qo’shilgan elementga emas birinchi qo’shilgan elementga birinchi bo’lib “xizmat ko’rsatiladi”. Operatsiyalarni bunday ko’rinishda amalga oshirilishi esa FIFO (First In First Out) deb ataladi. Queueni tasavvur etish uchun quyidagi rasmning o’zi yetarli deb o’ylayman
Queue ustidagi asosiy amallar Elementni navbat oxiriga qo’shish ( Enqueue ) Elementni navbat boshidan chiqarib olish. Element o’chiriladi ( Dequeue ) Navbat boshidagi elementni ko’rish. Element o’chirilmaydi ( Peek ) Navbatni bo’shlikka tekshirish ( isEmpty ) C++ dasturlash tilida Queue obyektlarini yaratish uchun "queue" nomli sinfni ishlatamiz. Quyidagi C++ kodida Queue sinfini qanday yaratish va uningga elementlar qo'shish va o'chirishni ko'ramiz: #include <iostream> #include <queue> using namespace std; int main() { queue<int> myQueue; myQueue.push(10); // 10 ni Queue ga qo'shamiz myQueue.push(20); // 20 ni Queue ga qo'shamiz cout << "Queue ning ilk elementi: " << myQueue.front() <<endl; myQueue.pop(); // Queue ning birinchi elementini o'chiramiz cout << "Queue ning ilk elementi: " << myQueue.front() <<endl;
return 0; } Bu kodda, std::queue sinfi yaratiladi va unda int turidagi ma'lumotlar saqlanadi. push() metodi orqali ma'lumotlar qo'shiladi, front() metodi orqali birinchi elementni olishimiz mumkin, va pop() metodi orqali birinchi elementni o'chirishimiz mumkin. C++ dasturlash tilida stek. Steklar Stek - chiziqli ma’lumotlar tuzilmasi bo’lib, ma’lumotlarni kiritish va chiqarish uning bir tomonidan amalga oshiriladi. Bunday stek kafeteriyadagi tarelkalar to’plamini eslatadi. Yangi elementlar stekning uchiga qo’yiladi va yuqori qismidan olinadi. Oxirgi qo’yilgan element stek uchidan birinchi bo’lib olinadi. Shu sababli, stek LIFO (last in first out) tuzilishidagi ma’lumotlar tuzilmasi bo’ladi, ya’ni, “oxirgi kelgan birinchi ketadi” prinsipi bo’yicha ishlaydi. Stek o’lchami cheklangan bo’lsa, elementni stekka qo’yilishi stekda kamida bitta elementga joy bo’lgan holdagina amalga oshiriladi. Shuning uchun stek ustida amal bajarishdan oldin stek holatini tekshirish lozim bo’ladi,ya’ni - Stekka element kiritilishidan oldin joy borligini tekshirish; - Stekdan elementni o’chirishdan oldin element borligini tekshirish. Steklar bilan ishlash uchun C++ tilida tayyor kutubxona mavjud bo’lib, unga dastur boshida Stek - chiziqli ma’lumotlar tuzilmasi bo’lib, ma’lumotlarni kiritish va chiqarish uning bir tomonidan amalga oshiriladi. Bunday stek kafeteriyadagi tarelkalar to’plamini eslatadi. Yangi elementlar stekning uchiga qo’yiladi va yuqori qismidan olinadi. Oxirgi qo’yilgan element stek uchidan birinchi bo’lib olinadi. Shu sababli, stek LIFO (last in first out) tuzilishidagi ma’lumotlar tuzilmasi bo’ladi, ya’ni, “oxirgi kelgan birinchi ketadi” prinsipi bo’yicha ishlaydi. Stek o’lchami cheklangan bo’lsa, elementni stekka qo’yilishi stekda kamida bitta elementga joy bo’lgan holdagina amalga oshiriladi. Shuning uchun stek ustida amal bajarishdan oldin stek holatini tekshirish lozim bo’ladi,ya’ni