Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
194
Dastlab massiv e’lon qilindi va unga qiymat berildi. Bu ikki o‘lchamli
massiv
elementlarini ekranga chop etish uchun
for sikl operatoridan foydalanildi.
Birinchi
for sikli qator bo‘yicha ketma – ketlikni ta’minlab bersa, ichma – ich joylashgan
ikkinchi
for sikli esa o‘z navbatida har bir qator bo‘yicha ustunlar ketma –
ketligini
ta’minlab beradi. Har bir jarayon ketma –ketligida bu ikki indeksdan foydalangan
holda elementlar konsolga chop etiladi (qator va ustun bo‘yicha).
Bu kod ishga
tushishi natijasi quyidagicha:
6.7 Matritsa elementlarini konsoldan o‘qish
Bu misolda ikki o‘lchamli massivni konsoldan qanday qilib o‘qib olish
ko‘rsatilgan. Dastlab ikki o‘lchamli massiv qiymati (uzunligi) o‘qib olinadi. Ichma – ich
joylashgan sikl operatoridan foydalangan holda har bir element qiymati kiritiladi (va
kiritilgan qiymatlar yana ekranga chiqariladi).
1 2 3 4
5 6 7 8
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
195
Yuqoridagi dastur natijasi quyidagicha bo‘ladi ( bu misolda massiv 3
ta qator
va 2 ta ustunlardan iborat):
6.8 Matritsani maksimal qiymat
Keyingi misolda yana bir boshqa bir qiziqarli misolni ko‘ramiz. Bizga
elementlari butun son bo‘lgan ikki o‘lchamli to‘rtburchakli massiv berilgan bo‘lib,bu
ko‘p o‘lchamli massiv ichidan shunday ikkiga ikki massiv
olishimiz kerakki ushbu
massiv elementlari boshqa bir ikki o‘lchamli massiv elementlaridan katta bo‘lsin, va
uni hamda elementlari yig‘indisini chop etishimiz kerak.
Bu masal1aning yechimi quyidagicha:
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
196
Agar dastur amalga oshirilsa, quyidagi natija olinadi
Algoritm quyidagicha tushintiriladi. Dastlab, elementlari butun son bo‘lgan
o‘lchamli massiv yaratiladi. bestSum, bestRow, bestCol nomlanuvchi yordamchi
o‘zgaruvchilar e’lon qilinadi va bestSum ning qiymati sifatida long tipli eng kichik son
beriladi. 4 ta butun sonni yig‘indisi
int tipga sig‘masligini inobatga olgan holda,
long
tipidan foydalanildi.
bestRow, bestCol o‘zgaruvchilarida elementlari boshqa ikki o‘lchamli massiv
elementlaridan katta bo‘lgan massiv elementlari ularni yig‘indisi esa
bestSum
o‘zgaruvchisida saqlanadi
.
2 x 2 massiv elementlarini kiritish uchun birinchi
element indekslari kerak
bo‘ladi. Ularni amalga oshirgach qolgan 3 ta elementlarini ham kiritiladi:
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
197
Ushbu misolda row va col o‘zgaruvchilari
matrix nomli massivga tegishli 2 ga 2
matritsani elementlarini indekslaridir.
Bu orqali 2 x 2 matritsaning birinchi elementining indekslarini bilgan holda
qolgan elementlarni topish mumkin. Bu algoritm elementlari boshqa 2 x 2 massiv
elementlaridan katta bo‘lgan massivni aniqlash uchun foydalaniladi. Bu 2 ga 2
matritsani topish jarayoni matritsani elementlarining yig‘indisi eng katta bo‘lguncha
davom etadi. Bu ish 2 ta ichma – ich joylashgan
for sikl operatori hamda
row va
col
orqali amalga oshiriladi. Shuni yodda tutish kerakki jarayon butun matritsa bo‘yicha
amalga
oshirilmaydi chunki agar row + 1 yoki
col + 1 elementlar kiritilsa,
matritsa
o‘lchamidan
oshib
ketishi
mumkin
va
xatolikka
olib
keladi
va