6-Amaliy mashg‘ulot: Ma’lumotlarni saralash algoritmlari va dasturlarini ishlab
chiqish.
Ishdan maqsad: Ushbu amaliyot ishining maqsadi talabalar qanday saralash
usullari va algoritmlari mavjudligini va ularning samaradorliklarini baholashni
o‘rganishlari kerak. Shu asosda saralash usullarini qiyosiy tahlil qilishlari, C++
dasturlash tilida fayllar bilan ishlashni va ularga oid dasturlar tuzishni o‘zlashtirishlari
kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos saralash usuli yordamida
masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
1.
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
2.
Berilgan topshiriqning algoritmini ishlab chiqish;
3.
C++ dasturlash muhitida dasturni yaratish;
4.
Natijalarni tekshirish;
5.
Hisobotni tayyorlash va topshirish.
Pufakchali usuli bilan saralash algoritmi.
Bunday usul karta o‘yinida keng qo‘llaniladi. Elementlar (kartalar) hayolan
“tayyor” a(1),...,a(i-1) va boshlang‘ich ketma-ketliklarga bo‘linadi. Har bir qadamda
(i=2 dan boshlanib, har bir qadamda bir birlikka oshirib boriladi) boshlang‘ich ketma-
ketlikdan i-chi element ajratib olinib tayyor ketma-ketlikning kerakli joyiga qo‘yiladi.
Pufakcha orqali saralash algoritmi quyidagicha bo‘ladi:
for (int i = n-1; i >= 1; i--)
{
for (int j = 0; j < i; j++)
{
if (a[j] > a[j+1])
{
swap(a[j],a[j+1]);}}
for (int i = 0; i < n; i++)
cout< Amaliy qism:
Ixtiyoriy nomdagi ro’yxat elementlari e’lon qilinsin va ixtiyoriy qiymatlar bilan
kiritilsin. Insert() funksiyasida foydalangan xolda qo’shimcha qiymatlar kiritilsin.
Unique() funksiyasidan foydalanibelementlar saralansin, natijalar ekranga chop etilsin.
7-Amaliy mashg‘ulot: Chiziqli ma’lumotlar tuzilmalarini qayta ishlash
algoritmlari va dasturlarini tuzish.
Ishdan maqsad: Ushbu amaliyot ishining maqsadi talabalar ma’lumotlar
tuzilmalarini qayta ishlash algoritmlari va dasturlarini tuzishni va va ularga oid
dasturlar tuzishni o‘zlashtirishlari kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos ro‘yxatlar yordamida
masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
1.
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
2.
Berilgan topshiriqning algoritmini ishlab chiqish;
3.
C++ dasturlash muhitida dasturni yaratish;
4.
Natijalarni tekshirish;
5.
Hisobotni tayyorlash va topshirish.
Amaliy qism:
1.
Navbat konteyneri asosida push()funksiyasidan foydalanib string tipidagi
ma’lumotlar kiritilsin, birinchi va oxirgi elementlari ekranga chiqarilsin, hajmi topilsin.
8-Amaliy mashg‘ulot: Chiziqli bog‘langan ro‘yxatlar bilan ishlash algoritmlari va dasturlarini tuzish.
Ishdan maqsad: Ushbu amaliyot ishining maqsadi talabalar ro‘yxatlar
mavjudligini va ularning samaradorliklarini baholashni o‘rganishlari kerak. Shu asosda
sinflar usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida ro‘yxatlar bilan ishlashni
va ularga oid dasturlar tuzishni o‘zlashtirishlari kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos ro‘yxatlar yordamida
masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
6. Tajriba ishi nazariy ma’lumotlarini o‘rganish;
7. Berilgan topshiriqning algoritmini ishlab chiqish;
8. C++ dasturlash muhitida dasturni yaratish;
9. Natijalarni tekshirish;
10. Hisobotni tayyorlash va topshirish.
Array va Vector bir-biriga yaqin konteynerlardir, ya’ni ular o‘zlarining
ma’lumotlarini doimiy xotirada saqlaydilar, shuning uchun vektor / massivning
o‘rtasiga qo‘shib qo‘yish juda qimmatga tushadi (operaton soni va ishlov berish vaqti
bo‘yicha), chunki biz barcha elementlarni almashtirishimiz kerak, bog‘langan ro‘yxat
ushbu muammoni engib chiqadi. Bog‘langan ro‘yxat ro‘yxat konteyneridan
foydalanish orqali amalga oshirilishi mumkin.
Amaliy qism:
Ikki tomonlama navbat tuzilmasidan foydalanib, char tipidagi elementlarini
push_front() va push_back funksiyalari yordamida qo’shing. Front() va back()
funksiyalaridan
foydalaning.
9-Amaliy mashg‘ulot: Stek, navbat va dek bilan ishlash algoritmlari va
dasturlarini tuzish.
Ishdan maqsad. Ushbu amaliyot ishida talabalar STL komponentalaridan biri
bo‘lgan stek bilan tanishib chiqishi hamda stekda mavjud bo‘lgan funksiyalar bilan
ishlashni o‘rganishlari kerak.
Qo‘yilgan masala. Talabalar topshiriq variantiga mos ravishda steklar ustida
berilgan funksiyalar bilan ishlash ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Stakning barcha elementlari bir xil bo‘lganligi sababli, C yoki C ++ dagi Arrays
yordamida stekni amalga oshirish juda oson. Stakning birinchi elementini birinchi qator
uyasiga, stackning ikkinchi elementini ikkinchi qator uyasiga va hokazolarni qo‘yish
mumkin. Stekning yuqori qismi bu stekka qo‘shilgan so‘nggi elementning indeksidir.
Stekni amalga oshirishda stack elementlari massivda saqlanadi.
STACK bu ma’lumotlar strukturasi bo‘lib, unda elementlarga faqat bitta uchida,
ya’ni Last In First Out ma’lumotlar tuzilmasida kirish mumkin (ochilgan yoki
itarilgan). Shunday qilib, stack elementiga faqat tepadan kirish mumkin, pastki yoki
o‘rtadan emas.Stekning bu xususiyati juda muhimdir va uni yaxshi tushunish kerak.
Massivning yuqori holatini kuzatib borish uchun biz shunchaki Top of Stack deb
nomlangan boshqa o‘zgaruvchini e’lon qilishimiz mumkin.
Stack LIFO algoritmini, ya’ni Last In First Out (LIFO) tuzilmasidan foydalanadi.
Yangi boshlanuvchilar uchun bu biroz chalkash, ammo bu juda oson tushuncha(5-rasm)
Amaliy qism:
1.
Ikki tomonlama navbat tuzilmasidan foydalanib, char tipidagi elementlarini
push_front() va push_back funksiyalari yordamida qo’shing. Front() va back()
funksiyalaridan foydalaning.
10-Amaliy mashg‘ulot: Daraxtsimon ma’lumotlar tuzilmalarini qayta ishlash
algoritmlari va dasturlarini tuzish.
Ishdan maqsad. Ushbu amaliyot ishida talabalar daraxtsimon ma’lumotlar
tushunchasi bilan tanishib chiqishi hamda daraxt balandligi va binar daraxtlar ustida
amallar bajarish
Qo‘yilgan masala. Talabalar topshiriq variantiga mos ravishda binar darxtlar
ustida berilgan amallar bilan ishlash ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi:
Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Amaliy qism:
vector list; dan foydalangan xolda swap() va emplace() funksiyalaridan
foydalaning va natijalar ekranga chiqarilsin.
|