Hamroyeva Sevinch
Masalaning qo’yilishi.
Bir o’lchovli massivga oid quyidagi misolning dasturini tuzing.
Elementlari soni N (1 ≤ N ≤ 10000 ) ta bo’lgan butun sonli massiv
berilgan. Ushbu massivning elementlarining qarama-qarshisini hamda
necha marta ishora almashish amalga oshganligini aniqlovchi dastur
tuzing. Massiv elementlarini qiymatlari [-
10
−9
,
10
9
] oraliqda joylashgan.
Bunda N=1 va
𝑎
1
= 38, 𝑎
2
= 9,
𝑁𝑎𝑡𝑖𝑗𝑎: 0.
Ishora almasishlar soni:
3
Ishdan maqsad.
Bir o’lchovli massivlar va ular ustida amalllar bajarish ko’nikmalarini
oshirish. Dasturini tuzish.
Nazariy qism.
Bir o’lchovli massivlarni e’lon qilish va ular ustida
amallar.
Xotirada ketma-ket (regulyar)
joylashgan bir xil turdagi
qiymatlarga massiv deyiladi. Odatda massivlarga zarurat, katta
hajmdagi, lekin cheklangan miqdordagi va tartiblangan qiymatlarni
qayta ishlash bilan bog’liq masalalarni yechishda yuzaga keladi. Faraz
qilaylik, talabalar guruhining reyting ballari
bilan ishlash masalasi
qo’yilgan. Unda guruhning o’rtacha reytingini aniqlash, reytinglarni
kamayishi bo’yicha tartiblash, konkret talabaning reytingi haqida
ma’lumot berish va boshqa masala ostilarini yechish zarur bo’lsin. Qayd
etilgan masalalarni yechish uchun berilganlarning (reytinglarning)
tartiblangan ketma-ketligi zarur bo’ladi. Bu yerda tartiblanganlik ma’nosi
15
Bir o`lchamli sonli massivni
M dan kichik elеmеntlarini
kvadratlari yig’indisi hisоblansin.
1
1
38
9
0
2
14
85 15 57 68 18 67
7 45 69 21 1 5 98
34
92
28594
shundaki, ketma-ketlikning har bir qiymati o’z o’rniga ega bo’ladi
(birinchi talabaning reytingi massivda birinchi o’rinda, ikkinchi
talabaniki - ikkinchi o’rinda va hakoza). Berilganlar ketma-ketligini
ikki xil usulda hosil qilish mumkin. Birinchi yo’l - har bir reyting uchun
alohida o’zgaruvchi aniqlash: Reyting1,…,ReytingN. Lekin, guruhdagi
talabalar soni yetarlicha katta bo’lganda, bu o’zgaruvchilar qatnashgan
programmani tuzish katta qiyinchiliklarni yuzaga keltiradi.
Ikkinchi
yo’l - berilganlar ketma-ketligini yagona nom bilan aniqlab, uning
qiymatlariga murojaatni, shu qiymatlarning ketma-ketlikda joylashgan
o’rnining nomeri (indeksi) orqali amalga oshirishdir. Reytinglar ketma-
ketligini Reyting deb nomlab, undagi qiymatlariga Reyting1,…,ReytingN
ko’rinishida murojaat qilish mumkin. Odatda
berilganlarning bunday
ko’rinishiga massivlar deyiladi. Massivlarni matematikadagi sonlar
vektoriga o’xshatish mumkin, chunki vektor ham o’zining individual
nomiga ega va u fiksirlangan miqdordagi bir turdagi qiymatlardan -
sonlardan iboratdir.
Demak, massiv - bu fiksirlangan miqdordagi ayrim qiymatlarning
(massiv elementlarining) tartiblangan majmuasidir.
Barcha elementlar
bir xil turda bo’lishi kerak va bu tur element turi yoki massiv uchun
tayanch tur deb nomlanadi. Yuqoridagi keltirilgan misolda Reyting -
haqiqiy turdagi vektor deb nomlanadi.
Programmada ishlatiladigan har bir konkret massiv o’zining
individual nomiga ega bo’lishi kerak. Bu nomni to’liq o’zgaruvchi
deyiladi, chunki uning qiymati massivning o’zi bo’ladi. Massivning har
bir elementi massiv nomi, hamda kvadrat qavsga olingan va element
selektori deb nomlanuvchi indeksni ko’rsatish orqali oshkor ravishda
belgilanadi. Murojaat sintaksisi:
< massiv nomi > [ < indeks > ]
Bu ko’rinishga xususiy o’zgaruvchi deyiladi, chunki uning qiymati
massivning alohida elementidir. Bizning misolda Reyting massivining
alohida
komponentalariga
Reyting[1],…,Reyting[N]
xususiy
o’zgaruvchilar orqali murojaat qilish mumkin. Boshqacha bu
o’zgaruvchilar indeksli o’zgaruvchilar deyiladi. Massiv indeksi sifatida
butun son qo’llaniladi. Umuman olganda
indeks sifatida butun son
qiymatini qabul qiladigan ixtiyoriy ifoda ishlatilishi mumkin va uning
qiymati massiv elementi nomerini aniqlaydi. Ifoda sifatida o’zgaruvchi
ham olinishi mumkinki, o’zgaruvchining qiymati o’zgarishi bilan
murojaat qilinayotgan massiv elementini aniqlovchi indeks ham
o’zgaradi.
Shunday qilib, programmadagi bitta indeksli o’zgaruvchi
orqali
massivning barcha elementlarini belgilash (aniqlash) mumkin bo’ladi.
Masalan, Reyting[I] o’zgaruvchisi orqali I o’zgaruvchining qiymatiga
bog’liq ravishda Reyting massivining ixtiyoriy elementiga murojaat qilish
mavjud.
Haqiqiy turdagi (float, double) qiymatlar to’plami cheksiz
bo’lganligi sababli ular indeks sifatida ishlatilmaydi. C++ tilida indeks
doimo 0 dan boshlanadi va uning eng katta qiymati massiv e’lonidagi
uzunlikdan bittaga kam bo’ladi.
Massiv e’loni quyidagicha bo’ladi:
< tur > < nom > [ < uzunlik > ] = {boshlang’ich qiymatlar}
.
Bu yerda
- o’zgarmas ifoda. Misollar: