O‘zbekiston respublikasiaxborot texnologiyalari va


Download 0.55 Mb.
Pdf ko'rish
Sana26.12.2022
Hajmi0.55 Mb.
#1066748
Bog'liq
3-amaliy-ish MTA Nafisa



O‘ZBEKISTON RESPUBLIKASIAXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
SAMARQAND FILIALI
"Axborot texnologiyalari" kafedrasi
Amaliy ish
Fan: “Ma’lumotlar tuzilmasi va algoritmlar (A)”
Guruh: KI 21-15
Talaba: Xudoynazarova
Nafisa
Rahbar: Xolmatov O. A.
Samarqand-2022


3-Amaliy mashg’ulot bo’yicha
1. Ishdan maqsad
2. Mavzu bo’yicha qisqacha tushunchalar
3. Masalani yechish (algoritm, dastur kodi, natija)
4. Xulosa
5. Foydalanilgan adabiyotlar
Nazariy qismi
Stack bu yana bir chiziqli ma’lumot tuzilmasi bo’lib, u ham Linked
listning maxsus bir ko’rinishi hisoblanadi. Stackda har bir tugunda
ma’lumot va o’zidan oldingi tugun adresi saqlanadi. Shuning uchun unda
faqat oxirgi qo’shilgan ma’lumot ustidagina qandaydir amal bajarish
mumkin.
Ko’pchilikni “hayotini saqlab qolgan” CTRL+Z operatsiyasini ko’z
oldingizga keltiring. Har safar bu tugmalarni bosganda oxirgi qilgan
ishlaringiz orqadan oldinga qarab chiqib keladi (bekor qilinadi). Huddi shu
yerda stack tuzilmasi ishlatilganini ko’rishimiz mumkin.
Stackga hayotiy misol sifatida bir uchi yopiq bo’lgan trubani keltirish
mumkin. Trubaga do’stingiz bir nechta turli rangdagi sharlar tashladi. Endi
siz sharlar rangini bilish uchun faqatgina do’stingiz oxirgi bo’lib truba ichiga
tashlagan sharning ranginigina ko’ra olasiz. Qolgan sharlarni ko’rish uchun
do’stingiz tashlagan tartibdan teskari tartibda ularni olib chiqishingiz kerak
bo’ladi.
Rekursiv funksiyalar ham huddi shunday ishlaydi. Oxiriga yetmagan
funksiyalar (return bo’lmagan) kelgan joyidan rekursiya stekiga tashlab
ketilaveradi
va
keyin
ular
orqadan
oldinga
qarab
bajariladi.
Operatsiyalarning bunday ko’rinishda bajarilish jarayoni LIFO (Last In First
Out) deb ataladi.
Stacklar bilan ishlashda doim eng oxirgi element adresi “esda
saqlanadi” va bu element ko’pincha top deb ataladi. Massiv so’zining


ma’nosi o’lcham, o’lchov demakdir. Massivning barcha elementlari bitta
turga mansub bo’lib, ular bitta nom bilan nomlanadi va bir-birlaridan
nomerlari (indekslari) bilan farq qiladi. Endi dasturdagi ma’lumot
strukturalari bilan tanishishni boshlaymiz. Dasturda ikki asosiy tur
ma’lumot strukturalari mavjuddir. Birinchisi statik, ikkinchisi dinamikdir.
Statik deganimizda xotirada egallagan joyi o’zgarmas, dastur boshida
beriladigan strukturalarni nazarda tutamiz.
Mavz
: Dekning toq elementlaridan navbat, juft elementlaridan
stek hosil qiling.
Statik massivlar elementlar soni oldindan ma’lum bo’lgan va
initsializatsiyalangan (qiymat belgilangan) massivlar hisoblanadi. Dinamik
ma’lumot tiplari dastur davomida o’z hajmini, egallagan xotirasini
o’zgartirishi mumkin. Dinamik massivlar esa elementlari soni oldindan
ma’lum bo’lishi va uni initsializatsiyalash (qiymat belgilash) shart emas.
Statik massivlarning kamchiliki shundaki, agar ularning o’lchamini oldindan
juda katta olinsa-yu, uning ko’p qismi keraksiz qolib ketsa, u holda xotira
behuda sarflanishiga olib keladi. Shu muammoni hal qilish maqsadida
massivlar C# tilida asosan dinamik tarzda e’lon qilinadi. Massivlar
dasturlashda eng ko’p qo’laniladigan ma’lumot tiplaridir. Massivlar hotirada
ketma-ket joylashgan, bir tipdagi o’zgaruvchilar guruhidir. Alohida bir
o’zgaruvchini ko’rsatish uchun massiv nomi va kerakli o’zgaruvchi
indeksini yoziladi.
M1 va M2 nomli massivlarning elementlari uchun 10 va 100 ta joy
ajratilgan. Ular ham dinamik massiv hisoblanadi. M3 massiv uchun
xotiradan qancha joy ajratish foydalanuvchining o’ziga havola qilingan,
ya’ni n o’zgaruvchisi klaviaturadan kiritiladi, bu o’zgaruvchi qiymati esa M3
massiv o’lchami sifatida qabul qilinadi. M3 massiv dinamik massivga
yorqin misoldir.
Dinamik massiv o’lchami ham statik massiv kabi aniqlanishi lozim,
faqat bunda u dastur ishlashi davomida anqlanishi bilan static massivdan


farq qiladi.
Indekslar massiv elementlariga murojat qilish uchun ishlatiladi.
Indeks massivdagi element sonini bildiradi .Massivdagi to’rtinchi
elementga murojat qilish uchun biz 3 indeksidan foydalanishimiz kerak.
Misol uchun :num[3]. Massiv elementlarining qiymatlarini olish va o’rnatish
uchun indekslardan foydalanamiz.
Va bizda faqat 4 ta element uchun belgilangan massiv mavjud
bo’lgani uchun , masalan oltinchi elementni qo’llay olmaymiz nums[5]=5;.
Agar biz buni qilishga harakat qilsak biz IndexOutOfRangeException-ni
olamiz.
Statik massivlar elementlar oldindan aniqlanadi. Buning uchun sikl
operatorlariga murojaat qilamiz. Masalan, quyidagi misolda dinamik
massivga qiymat berish hamda uning elementlarini chop etish amallar
ko’rsatilgan. Biz massiv elementlari bilan ishlashimiz uchun for sikl
operatori kerak buladi. Bu haqida yetarlicha bilimga ega bo’lmasayiz
quyidagi link orqali o’tsangiz Starter bulimida Suxrob Xayitmurodov
yetarlicha malumot bergan. Agar for sikl operatori haqida malumotga ega
bulsayiz davom etamiz. Bu dasturda A massivning elementlari sifatida i
ning qiymatlari kelmoqda. Xuddi shunday massiv elementlarini klaviatura
orqali ham kiritish mumkin. Buning uchun quyidagi kodni ko’raylik.


Amaliy ish jarayoni
Tartib raqam: 28
Dekning toq elementlaridan navbat, juft elementlaridan stek hosil
qiling.
Dastur kodi
#include
#include
using namespace std;
int a[10],n,R=0;
bool isEmpty(){
if(R==0) return true; else return false;
}
bool isFull(){


if(R>=10) return true; else return false;
}
int kirit_left(int s){
if(isFull()){cout<<"\ndek to'ldi";n=R;return EXIT_SUCCESS;}
for(int i=R;i>0;i--)
a[i]=a[i-1];
a[0]=s;R++;
}
int olish_left(){
if(isEmpty()){cout<<"\ndek bo'sh";return EXIT_SUCCESS;}
int t=a[0];
for(int i=0;i
a[i]=a[i+1];
R--;
return t;


}
int kirit_right(int s){
if(isFull()){cout<<"\ndek to'ldi";n=R;return EXIT_SUCCESS;}
a[R]=s;R++;
}
int olish_right(){
if(isEmpty()){cout<<"\ndek bo'sh";return EXIT_SUCCESS;}
R--;
return a[R];
}
int print(){
cout<
cout<
}
int main(int argc, char *argv[])


{ int n,s;cout<<"n="; cin>>n;
for(int i=0;i
if(!isFull()){
cout<<"kirit=";cin>>s;
if(i>=n/2) kirit_right(s);
else kirit_left(s);}
else {cout<<"dek to'ldi\n";break;}
}
print();
int b[n/2],k=0,c[n/2],p=0;
while(!isEmpty()){
int q=olish_left();
if(q%2==0) b[k++]=q;
if(isEmpty()) break;
int p=olish_right();


if(p%2==0) b[k++]=p;
}
int i=0;
while(i
kirit_right(b[i]);
i++;
}
print();
system("PAUSE");
return EXIT_SUCCESS;
}
Dastur natijasi
n=8
kirit=1
kirit=2


kirit=3
kirit=4
kirit=5
kirit=6
kirit=7
kirit=8
dek ele-tlari=4 3 2 1 5 6 7 8
dek ele-tlari=4 8 2 6
Xullosa
Men Xudoynazarova Nafisa hozirgi kunda men o’zim qiziqgan fanim
Malumotlar tuzulmasi va Algoritm amaliy fani menga juda qiziqarli bo’lib
o’tilmoqda ayniqsa bizga hayotimizda kerak bo’ladigan amaliy
mashg’lotlarga
judaham qiziqishim ortib bormoqda bu fanga bundan keyingi ishlarimda
yanada
o’zimni ustumda ishlagan holda mukammal tarzda o’rganmoqchiman.
Kompyuterda har qanday dastur ustuda ishlamoqchiman va yaxshilab
o’rganmoqchiman.
C++ dasturlash tilini judaham chuqur tarzda o’rganmoqchiman.
Foydalanish uchun adabiyotlar ro‘yxati


1. «Axborotlashtirish to‘g‘risida».O‘zbekiston Respublikasining qonuni.
Toshkent
shahri, 2003 yil 11 dekabr.
2. Zamonaviy axborot-kommunikatsiya texnologiyalarini yanada joriy etish
va
rivojlantirish chora-tadbirlari to‘g‘risida. O‘zbekiston Respublikasi
Prezidentining
Qarori, 2012-yil 21-mart, PP-1730.
3. O‘zbekiston Respublikasi Prezidentining «Oliy ta’lim tizimini yanada
rivojlantirish
chora-tadbirlari to‘g‘risida»gi PQ -2909-sonli Qarori, 2017 yil 20
aprel//O‘zbekiston
Respublikasi qonun hujjatlari to‘plami, 2017 y.
4. Talaba mustaqil ishini tashkil etish to‘g‘risida. O‘zR OO‘MTVning 2009 yil
21-
fevraldagi 286 - sonli buyrug‘i.
5.Muhammad al-Xorazmiy nomidagi Toshkent axborot texnologiyalari
universitetida
kadrlar tayyorlash tizimini tubdan takomillashtirish va samaradorligini
oshirish chora tadbirlari to‘g‘risida. O‘zbekiston Respublikasi Vazirlar
Mahkamasining qarori.
Toshkent sh., 2018 yil 24 iyul, 569-son.

Download 0.55 Mb.

Do'stlaringiz bilan baham:




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