java

Javada massivlar

Massiv bu — bir turdagi o’zgaruvchilarni o’zida saqlovchi biror nom bilan nomlangan o’lchami chegaralangan  o’zgaruvchilari guruhi ya’ni oddiyoq qilib aytganda maxsus idishdir. Bitta yoki ikkita o’zgaruvchi ustida amalarni bajarmoqchisiz, bununig uchun bir yoki ikkita o’zgaruvchi yaratib olib xohlagan amalni bajarish mumkin. Lekin bu o’zgaruvchilar ko’p bo’lsachi? Agar har bir ishlatmoqchi bo’lgan o’zgaruvchi uchun har safar yangidan o’zgaruvchilarni yarataversak bu bir muncha noqulayliklar tug’diradi. Bu vaziyatda esa  massivlarni ishlatish qo’l keladi.

Oddiy va tushunarli bo’lishi uchun har doimgidek hayotiy bitta misol keltirib o`taman. Tasavur qiling, siz do’stingizga bitta yoki ikkita olma bermoqchisiz. Siz bu ishni to’g’ridan-to’g’ri qilishingiz mumkin chunki ikkita olma qo’lingizga bemalol sig’adi. Agar bu olmalar soni ko’p bo’lsachi bunday vaziyatda nima qilasiz. Albatda bu vaziyatda bermoqchi bo’lgan olmalaringizni miqdoriga qarab o’sha miqdorni ko’tarish qobiliyatiga ega bo’lgan idishga solib berasiz. Massiv ham huddi shunday vaziyatlarda o’zgaruvchilar uchun idish vazifasini bajarib beradi. Tasavvur qiling hamma olmalarni hechqanday idishga solmay qo’lingizda ko’tatib ketyapsiz. Keling endi bu vaziyatda qanday noqulayliklar tug’ilishini ko’rib chiqaylik.

  1. Ko’tarishga juda noqulay
  2. O’zimiz mustaqil holda hamma olmalarni ko’tara olmaymiz chunki ikkala qo’limiz ham band bo’ladi .
  3. Yo’lda ketayotgan paytimizda yaqin tanishimiz chiqib qoldi unga olmalarning eng kattasini bermoqchi bo’lsangiz qo’lingizdagi olmalar orasidan eng katasini tanlab berishingiz juda qiyin bo’ladi.

Bunday noqulayliklarni juda ko’p keltirib o’tishimiz mumkun. Bu olmalarning hammasi idishda bo’lsachi? Bunday noqulayliklar aslo kelib chiqmaydi. Bunday vaziyatlarni bir-ikki harakat bilan osongina hal qilish mumkin bo’ladi.

Dasturlashda ham huddi shunday o’zgaruvchilarni massivga joylamasangiz bundanda yomonroq vaziyatlar kelib chiqishi mumkun.

Massivlarning bizga qanday  imkoniyatlarni beradi :

Optimal kodlar: kodlarni optimal darajaga keltirishimiz, qayta yozish yoki saralashlarni juda oson amalga oshirishimiz mumkin.

Ixtiyoriy kirish: har qanday indeks(tartib)dagi qiymatni olish imkoniyati, qidirish imkoniyati.

Kamchiligi: Massivning o’lchami oldindan beriladi shuning uchun uning o’lchami statik bo’ladi. Xohlagancha qiymat qabul qila olmaydi. Bunday holatlarda to’plamlardan foydalaniladi(collection).

Yuqorida keltirgan holatlar uchun bitta misol keltiraylik

  1. class Test{
  2.  
  3. public static void main(String args[]) {
  4.  
  5. int jan=21;
  6.  
  7. int feb=26;
  8.  
  9. int mar=32;
  10.  
  11. int apr=24;
  12.  
  13. int may=28;
  14.  
  15. int jun=43;
  16.  
  17. int jul=35;
  18.  
  19. int aug=29;
  20.  
  21. int sep=23;
  22.  
  23. int oct=19;
  24.  
  25. int nov=21;
  26.  
  27. int dec=11;
  28.  
  29. float rez;
  30.  
  31. rez = (jan+feb+mar+apr+may+jun+jul+aug+sep+oct+nov+dec)/12;
  32.  
  33. System.out.println(rez);
  34.  
  35. }
  36.  
  37. }

Dasturda, 12 ta bir xil tipli o‘zgaruvchi e’lon qilinmoqda va ularga qiymatlar berilgan. So‘ng, bu qiymatlar qo‘shilib, «rez» nomli o‘zgaruvchiga yozildi. Shundan so‘ng, bu o‘zgaruvchi qiymati ekranga chiqarilmoqda. Natija esa, 26.0 ga teng.

Yuqoridagi misolni massiv orqali ifodalaymiz

  1. class Test{
  2.  
  3. public static void main(String args[]) {
  4.  
  5. int temp_mes[]= {21,26,32,24,28,43,35,29,23,19,21,11};
  6.  
  7. float rez = 0;
  8.  
  9. for(int i = 0; i < 12; i++){
  10.  
  11. rez += tem_mes[i];
  12.  
  13. }
  14.  
  15. System.out.println (rez/12);
  16.  
  17. }
  18.  
  19. }

Ko’rib turganingizdek, kodlar anchqa qisqargan va optimallashgan. Bu misolning yechimini qadamma qadam ko’rib chiqsak.

Binchi qadam: rez = 0, i=0 bo’lganida temp_mas[0] = 21 ga teng bo’ladi natijada rez = 0 + 21, rez = 21

Ikkinchi qadam : rez = 21, i=1, temp_mas[1] = 26, rez = 21 + 26

Uchinchi qadam: rez = 47, i=2, temp_mas[2] = 32, rez = 47 + 32

……………………………………………………………………..

O’n ikkinchi qadam: rez = 301, i=11, temp_mas[11] = 11, rez = 301 + 11

Natija rez = 312  va sikl qadami tugaydi.

Massiv tuzilishi

array

Massivlar 2 xil turda bo‘lishi mumkin: bir o‘lchamli va ko‘p o‘lchamli.

Bir o‘lchamli massivlar bitta tipdagi o‘zgaruvchilar ro‘yxatidan iborat bo‘ladi. Bir o‘lchamli massivni e’lon qilish uchun, dastlab, massiv tipi, so‘ng massiv nomi ko‘rsatiladi(undan so‘ng qavslar).

  1. int a[]=new int[5];//massivni e’lon qilish
  2.  
  3. a[0]=10;
  4.  
  5. a[1]=20;
  6.  
  7. a[2]=70;
  8.  
  9. a[3]=40;
  10.  
  11. a[4]=50;

bu yerda uzunligi 5 ga teng bo’lgan massiv e’lon qilinyapti va ularning indexiga mos ravishda qiymatlar o’zlashtirilyapti.

 

  1. class TestArray{
  2.  
  3. publicstatic void main(String args[]){
  4.  
  5. inta[]=new int[5];//massiv e’lon qilinyapti
  6.  
  7. a[0]=10;
  8.  
  9. a[1]=20;
  10.  
  11. a[2]=70;
  12.  
  13. a[3]=40;
  14.  
  15. a[4]=50;
  16.  
  17. //massivni ekrada chiqarish
  18.  
  19. for(inti=0;i<a.length;i++)//length massivning uzunligi
  20.  
  21. out.println(a[i]);
  22.  
  23. }}

 

Natija :

10

20

70

40

50

Massiv elementlari ichida eng kichigini aniqlash dasturi

 

  1. class Testarray2{
  2.  
  3. public static void main(String args[]){
  4.  
  5. int a[]={33,3,4,5};
  6.  
  7. int min=a[0];
  8.  
  9. for(int i=1;i<a.length;i++)
  10.  
  11. if(min>a[i])
  12.  
  13. min=a[i];
  14.  
  15. System.out.println(min);
  16.  
  17. }
  18. }

 

Natija:

3

G'ayratjon Rayimjonov
G'ayratjon Rayimjonov

G'ayratjon Rayimjonovning so'nngi maqolalari (hammasini ko'rish)

(553 marta o'qilgan, bugun 1 marta o'qildi)

O'xshash maqolalar: