1-mavzu: algoritmlar reja: Algoritmlarning xossalari. Algoritmlarning turlari. Tayanch so‘z va iboralar



Download 3,29 Mb.
bet45/72
Sana11.03.2023
Hajmi3,29 Mb.
#918066
1   ...   41   42   43   44   45   46   47   48   ...   72
Bog'liq
Ma\'ruzalar

Massivlarning kerakliligi
Nima uchun bizga massivlar kerak? Quyidagi misolni qaraymiz:
#include< iostream.h >
void main( )
{
int a = 10; // a oddiy o`zgaruvchi
a = 20;
cout << a; // natija 20 bo`ladi
}
Yuqoridagi misolda a ning chiqarilgan natijasi 20. Yuqorda ko`rsatilganidek 10 a ga 20 biriktirilganidan oldin biriktirilgan. Biz a ga 20 ni biriktirganda a da saqlangan qiymat 10 yangi qiymat 20 bilan almashtiriladi. Bundan oddiy o`zgaruvchilar bir vaqtning o`zida faqatgina bitta qiymatni qabul qilish imkoniga ega. Bu fakt hamma tipdagi berilganlar uchun shundaydir. Ammo amaliyotda o`zgaruvchilarga bittadan ko`p qiymatlar biriktirilishi kerak. Bunga massivlar yordamida erishish mumkin. Massiv o`zgaruvchilari bir vaqtni o`zida bir xil (berilganlar) tipdagi bittadan ko`p elementlarni saqlash va chaqirish uchun ishlatiladi.
Massivlar ikki tipda bo`ladi:
(i) Bir o`lchovli massiv77
(ii) Ko`p o`lchovli massiv (2 yoki undan ortiq).
Aniq chegara (o`lchovning), agar ixtiyoriy bo`lsa, siz ishlatadigan kompilyator tomonidan aniqlanadi.
Ushbu bob massivlar va satrlar diqqat markada bo`ladi.
2. Bir O`lchovli Massiv
Massivning eng sodda tipi bu bir o`lchovli massivlar.
2.1 Bir o`lchovli massivning aniqlanishi/initsialisatsiyasi
Boshqa o`zgaruvchilar kabi massivlar shunday oshkor aniqlangan bo`lishi kerakki kompilyator ular uchun xotiradan joy ajrata olsin. C++ da bir o`lchovli massivni aniqlanishi quyidagicha berilgan:
type arr-name[size];
Bu yerda type massivning asosiy tipini aniqlaydi, bu massivning har bir elementining tipidir.
arr-namemassivga murojaat qilinadigan massivning nominini aniqlaydi va sizemassive elementlar sonini aniqlaydi. Masalan,
int a[5]; //5 hajmga ega 'a' massiv aniqlandi
C++ da massivning indeksi har doim 0 dan boshlanadi. Shuning uchun a[2]a massivning uchinchi elementiga murojaat qiladi, bunda 2 bu massivning indeksi.
a dagi har bir element butun bo`lgani uchun u 2 baytni egallaydi. Birinchi element 0 indeksga egaligini eslatamiz. Shunday qilib, beshta element bo`lgani uchun oxirgisining nomeri 4. Massivni xotirada saqlash uchun kerak bo`ladigan xotira kattaligi uning tipi va hajmiga to`g`ridan-to`g`ri bog`liq. Bir o`lchovli massiv uchun umumiy hajm quyida ko`rsatilgandek hisoblanadi:
Total bytes = sizeof (base type) x size of array
Sizeof operator berilganlar tipining hajmini sistemada baytlarda qaytaradi.
Massiv birinchi marta aniqlanganida siz massivni initsializatsiya qilishingiz mumkin (ya’ni massivning har bir elementiga qiymat berib). Masalan?,
int a[5]= {55,90,17,88,36};
a initsalizatsiya qilinishidagi qiymatlar vergul bilan ajratilib qavslar ichiga olinadi. Ular massiv ifodasiga = belgisi bilan bog`langan.
Butun qiymatning hajmi 2 bayt deb olib, Rasm 9.1 da ko`rsailgan massiv xotirada Rasm 9.2 dagidek saqlanadi. (Faraz qilaylik, a ning boshlang`ich adresi 2000 bo`lsin).
Eslatamizki massivning tarkibi haqiqatda xotirada ikkilik shaklda saqlanadi. Yuqorida ko`rsatilgan massiv uchun kerak bo`ladigan umumiybaytlar 2 x 5 = 10baytlar.
Initsalizatsiyada biz massiv elementlarini ta’minlasak massiv hajmining spetsifikatsiyasi eng yaxshi bo`lmaydi. Massivga xotirada joy egallash uchun elementlar soninikompilyator avtomatik hisoblaydi.78
Shunday qilib biz quyidagicha yozishimiz mumkin
int a[ ] ={55,90,17,88,36); //Ragged array
Agar siz massivning oshkor hajmidan foydalansangiz lekin u massiv hajmiga teng bo`lmagan elementlar sonidan iborat bo`lsa, qolgan elementlar 0 deb o`rnatiladi. Agar elementlar soni massivning aniqlangan hajmidan katta bo`lsa xato haqida ekranga xabar chiqadi. Massivni initsializatsiya qilishga yana bir oz misollar qaraymiz:
float marks[ ] = {80.5,90.6,78.3,59.7,100.0,62.0);
long int salary[4] = {50000,18000,25000};
Oxirgi misolda salary[3]element 0 ga initsializatsiya qilinishini eslatamiz.


Download 3,29 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   72




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©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