Bajardi: Eshboyev Xumoyun Xushvaqt og’li



Download 230,5 Kb.
Sana26.05.2023
Hajmi230,5 Kb.
#944251
Bog'liq
1- Labaratoriya mashg\'uloti

O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI


TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI














KOMPYUTER INJINIRING FAKULTETI


KI-14-20  guruh talabasining
1-LABARATORIYA ISH

Bajardi:Eshboyev Xumoyun Xushvaqt og’li


1-laboratoriya mashg’uloti




Statik ma’lumotlar tuzilmasini o’rganish.


Ishdan maqsad: Statik ma’lumotlar tuzilmasini o‘rganish va ularni tadqiq qilish.


Qo‘yilgan masala: C++ tilida statik toifadagi ma’lumotlar tuzilmalarini yaratish va ularga doir misollarning dasturini ishlab chiqish.


Ish tartibi:

  • Tajriba ishi nazariy ma’lumotlarini o‘rganish;







  • C++ dasturlash muhitida dasturni yaratish;




  • Natijalarni tekshirish;




  • Hisobotni tayyorlash va topshirish.



Nazariy qism.


Massiv va uni aniqlash. Massiv elementlariga murojaat qilish. Bir hil tipdagi miqdorlar ustida biror amalni (amallar ketma-ketligini) bajarish talab etilganda massivlardan foydalaniladi. Shuni aytish kerakki agar ushbu miqdorlarning har biriga dastur ishi davomida faqat bir marta murojaat qilinsa, unda bunday masalalarni massivlardan foydalanmasdan ham ishlab chiqish mumkin. Masalan sonlar ketma-ketligning maksimumi, minimumi, yig‘indisi yoki o‘rta arifmetigini topish talab etilsa, massivdan foydalanish shart emas, chunki bunjay masalalarda har bir miqdorga bir marta murojaat kilish yetarli. Lekin berilgan miqdorlar ketma-ketligida nechta miqdor ularning o‘rta arifmetik qiymatidan katta ekanligini aniqlash uchun massivdan foydalanish zarur, chunki o‘rta arifmetik miqdor hisoblab topilgandan so‘ng o‘rta arifmetik miqdordan katta sonlarni aniqlash uchun miqdorlarga yana bir marta murojaat qilish zarur.

Massiv – bir tipga tegishli miqdorlarning nomerlangan ketma-ketligi bo‘lib, massivning har bir elementiga murojaat qilish uchun massivning nomi, shu elementning ketma-ketlikdagi nomeri (indeksdan) foydalaniladi. Massiv elementlari kompilyator tomonidan xotirada ketma-ket joylashtiriladi va shu sababli uning biror elementiga murojaat qilishda, massivning boshlanish adresi va element nomerini


bilish yetarli. C++ tilida massiv quyidagicha e’lon qilinadi

int A[10];


Yuqoridagi misolda 10 butun tipdagi sondan tashkil topgan massiv e’lon qilingan. C++ tilida massiv elementlari 0 dan boshlab indekslanadi. Demak massivda 10 element mavjud bo‘lsa, birinchi elementning nomeri 0 va oxirgi elementning nomeri 9 ga teng bo‘ladi.



XOTIRA



1620

1624




1628




1632




1636




1640




1644




1648




1652




1656




1660




1664

1672

1676

























































































































































Massiv indeksi










0







1







2







3







4







5







6







7







8







9































































































































Massiv qiymati










8







13







24







6







-8







19







31







-13







66







105













































































































































































































Keltirilgan rasmda A massivning xotirada joylashishining mumkin bo‘lgan holatlaridan biri keltirilgan. Massiv elementlarini joylashtirish 1624 – adresdan boshlanadi, har bir element butun tipda bo‘lgani uchun xotirada 4 baytdan joy egallaydi, shu sababli butun massiv 40 bayt joyni band qiladi. 0 – indeksli element 1624, 1625, 1626, 1627 baytlarni egallaydi, 1 – element 1628 baytdan boshlab 4 ta ketma-ket baytni egallaydi va xakozo. Eng oxirgi 9 – indeksli element xotirada 1660 baytdan boshlab joylashtiriladi va 1660, 1661, 1662 hamda 1663 baytlarni egallaydi. 1664 baytdan boshlab xotida boshqa o‘zgaruvchilar uchun ajratilishi mumkin. Kompilyator massivning ixtiyoriy element adresini quyidagi formula asosida aniqlaydi:


( [ ]) = ( ) + ( ) ∗
Bu yerda = ( ) massining boshlanish adresi keltirilgan misolda 1624 ga teng, shuning funksiyasi tipning uzunligini (aniqrog‘i shu tipga tegishli qiymatlarning xotirada egallaydigan joyini) aniqlaydi, int tipi uchun bu 4 baytni tashkil etadi. Masalan 7 elementning adresi yuqoridagi formulaga ko‘ra
( [7])= ( )+ ( )∗7=1624+4∗7=1624+
28 = 1652

Umumiy holda agar A massiv


anytype A[N];

yuqoridagi formula quyidagicha yoziladi:


( [])= ( )+ ( )∗ , =0… −1
Keltirilgan xususiyatlar massivni bir hil tipdagi va bir hir tarzda qayta ishlanadigan ma’lumotlarni saqlash uchun ajoyib vositaga aylantiriladi.

Massiv elementiga murojaat qilish uchun indeks qiymati sifatida istalgan manfiy bo‘lmagan (ishorasiz) butun tipdagi miqdordan (hususan, sondan, butun tipdagi o‘zgaruvchidan, butun tipdagi qiymatni qaytaruvchi arifmetik ifoda yoki funksiyadan) foydalanish mumkin.




Laboratoriya topshirig‘i. Berilgan masalani yechish uchun algoritm va mos dasturni ishlab chiqing. Algoritmni blok-sxema shaklida ifodalang va zarur bo‘lsa algoritmik dekompozitsiyani amalga oshiring. Zarur hollarda qism masalalarni yechish uchun qism dasturlardan foydalaning.


Dastur namunasi. Biz quyida namuna sifatida massivlarni qayta ishlash (tahlil qilish) bilan bog‘liq masalani qaraymiz. Masalani yechish algoritmini (psevdokod shaklida) ishlab chiqamiz va uni C++ tilidagi dasturga o‘tkazamiz.


Labotoriya topshirig‘i sharti. O‘rin almashtirishlardan iborat bo‘lgan N (N<=100) o‘lchamli A butun sonli massiv berilgan. Ushbu o‘rin almashtirishlardagi inversiyalari soni, ya’ni > , < shartni qanoatlantiruvchi barcha ,

juftliklar soni topilsin.




Masalani yechish algoritmi. Masalani yechish algoritmi massivning har bir A[i] elementini undan keyin joylashgan barcha A[j] elementlar bilan solishtirib, A[i]>A[j] shartni qanoatlantiradigan juftliklar sonini aniqlashga asoslangan. Bu g‘oyani quyidagi psevdokod orqali ifodalash mumkin:

juda sodda bo‘lgani uchun, uning C++ dagi dasturi matnini keltiramiz:


#include


using namespace std;


ifstream cin("input.txt");


ofstream cout("output.txt");

{


const int NMax=1000;

int A[NMax];


int N;

int Count=0;

cin >> N;


for (int i=0; i

cin >> A[i];


for (int i=0; i

for(int j=i+1; j

if (A[i]>A[j])


Count++;

cout << Count;

return 0;


}


Nazorat savollari



  1. Standart malumotlar tuzilmalari qanday tuzilmalar?




  1. Standart ma’lumotlar tuzilmalariga qanday tuzilmalar kiradi?



Topshiriqlar


Laboratoriya ishini bajarish tartibi. Laboratoriya ishini bajarishda quyidagi tartibga amal qiling:



  1. Guruh jurnalidagi nomerga ko‘ra o‘z variantingizni aniqlang




  1. Masalani yechish uchun algoritm va dastur quring.




  1. Kichik hajmdagi ma’lumotlar uchun dasturning to‘g‘ri ishlayotganligiga ishonch hosil qiling.




  1. Bajarilgan ishlar xaqida hisobot tayyorlang

Laboratoriya topshiriqlari variantlari
5 . N o`lchamli massiv berilgan. Uning local maksimumlari ichida eng kichigi topilsin. (Agar bunday element bo`lmasa 0 chiqarilsin.)

#include


using namespace std;


int main(){

long n, i, j;


cin >> n;

long a[n];


long min = a[n];

for (i = 1; i <= n; i++)


cin >> a[i];

for (i = 1; i < n; i++)


for (j = i + 1; j <= n; j++)

{
if (a[i] < min)


{
min = a[i];


}
}

cout <

return 0;


}

Download 230,5 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish