Masala. Matritsani transponirlang.
Transponirlash masalasida quyidagi dastur kodidan foydalanish qulay:
A = [ [21, 1, 3], [3, 1, 5] ]
# B matritsani nol elementlar bilan to’ldirish
B = [[0 for j in range(len(A))] for i in range(len(A[0]))]
# A matritsani transponirlash
for j in range(len(A)):
for i in range(len(A[0])):
B[i][j] = A[j][i]
print(' A:', A)
print(' B:', B)
Natija:
[[0, 0], [0, 0], [0, 0]]
A: [[21, 1, 3], [3, 1, 5]]
B: [[21, 3], [1, 1], [3, 5]]
Matritsani transponirlashning boshqa usullari ham mavjud. Masalan, elementlari satr ko’rinishidagi 3×4 o’lchovli matritsa berilgan. Matritsani transponirlang.
matritsa = [['Olma', 'Anor', 'Shaftoli', 'Behi'],
['Qovun', 'Osqovoq', 'Handalak', 'Tarvuz'],
['sabzi', 'piyoz', 'Pomidor', 'Bodring']]
yangi_matritsa = []
for j in range(len(matritsa[0])):
yangi_matritsa_satr = []
for i in range(len(matritsa)):
yangi_matritsa_satr.append(matritsa[i][j])
yangi_matritsa.append(yangi_matritsa_satr)
print (yangi_matritsa)
Masala. Elementlari butun sonlardan tashkil topgan n×m o’lchovli matritsaning har bir satr elementlari yig’indisi topilsin.
Dastur kodini yozishda n×m o’lchovli matritsa satrlari sonini n o’zgaruvchi orqali, ustunlari sonini m o’zgaruvchi orqali belgilab olaylik.
Matritsa elementlarini kiritish uchun ro’yxatdan foydalanamiz. Buning uchun albatta ichma ich joylashgan sikllardan foydalanamiz. Avvalo elementlari soni va tipi noma’lum bo’lgan a=[] ro’yxatni e’lon qilamiz. Tsikl ichida ikkinchi oraliq a1=[] ro’yxatni e’lon qilamiz va ichki sikl yordamida bu ro’yxatga a1.append(int(input())) satri yordamida m ta elementni joylashtiramiz. Ichki sikl yakunlangach, a1 da hosil bo’lgan elementlarning barchasini a ga olib o’tamiz, ya’ni qo’shamiz. Natijada a da yaratilayotgan matritsaning birinchi satri paydo bo’ladi. Shu tariqa qolgan satrlar ham ketma-ket qo’shib boriladi.
Dasturning asosiy qismida ichma-ich joylashgan sikl yordamida s o’zgaruvchida har bir satr elementlari jamlanadi va oynaga chiqarib boriladi.
# Matritsa har bir satr elementlari yug'indisi
n=int(input('Satrlar sonini kiriting - '))
m=int(input('Ustunlar sonini kiriting - '))
a = []
for i in range(n):
a1q[]
for j in range(m):
print('a[', i, ',', j, ']=', end = ' ')
a1.append(int(input()))
a.append(a1)
print (a)
for i in range(n):
s = 0
for j in range(m):
s = s + a[i][j]
print (i, "satr elementlari yug'indisi ", s,"ga teng")
Masala. Elementlari haqiqiy sonlardan iborat bo’lgan n×m o’lchovli matritsa berilgan. Matritsadagi eng kichik va eng katta element va ularning indekslari topilsin.
Matritsaning minimum elementini topishda quyidagi algoritmdan foydalanishimiz mumkin. Avvalo matritsaning birinchi elementini, a[0][0] elementini eng kichik element deb qabul qilib uni min o’zgaruvchi orqali ifodalab olamiz. Ya’ni min = a[0][0] va uni matritsaning har bir elementi bilan solishtirib chiqamiz. Agar joriy element min qiymatidan kichik bo’lsa, min qiymati bilan almashtiramiz. Jarayonni matritsaning oxirgi elementigacha davom ettiramiz.
Matritsaning maksimum elementini topishda ham shu algoritmdan foydalanishimiz mumkin, faqat bu holda matritsaning birinchi elementini max o’zgaruvchi orqali ifodalab, joriy element max qiymatidan katta bo’lsa, max qiymatini joriy element qiymati bilan almashtiramiz. Shu holda jarayon davom ettiriladi.
Maksimum va minimum elementlarning indeskini aniqlashda k, l, s, t o’zgaruvchilardan foydalanamiz va ularning boshlang’ich qiymatini 0 ga tenglab olishimiz mumkin, ya’ni k=l=s=t=0
n=int(input('Satrlar sonini kiriting - '))
m=int(input('Ustunlar sonini kiriting - '))
a = []
for i in range(n):
a1 = []
for j in range(m):
print('a[', i, ',', j, ']=', end = ' ')
a1.append(int(input()))
a.append(a1)
print (a)
k=l=s=t=0
min = a[0][0]
max = a[0][0]
for i in range(n):
for j in range(m):
if a[i][j]< min:
min = a[i][j]
k=i; l=j
if a[i][j] > max:
max = a[i][j]
s=i; t=j
print("Minimum kiymat=", min, " uning indeksi a[",k,",",l,"]")
print("Maksimum kiymat=", max, " uning indeksi a[",s,",",t,"]")
Natija:
Satrlar sonini kiriting - 2
Ustunlar sonini kiriting - 3
a[ 0 , 0 ]= 5
a[ 0 , 1 ]= 7
a[ 0 , 2 ]= 2
a[ 1 , 0 ]= 6
a[ 1 , 1 ]= 8
a[ 1 , 2 ]= 7
[[5, 7, 2], [6, 8, 7]]
Minimum kiymat = 2 uning indeksi a[ 0 , 2 ]
Maksimum kiymat = 8 uning indeksi a[ 1 , 1 ]
Do'stlaringiz bilan baham: |