10) bi = z; 11) bk =c; 12) i = i+1;
13) agar ( j <= n-1 ) shart bajarilsa, u holda =(3) 14) muhrlash (bi ).
Natijada, B = {bi}– massiv elementlari o‘sish (kamayish) tartibida qayta joylashtiriladi.
3-misol. A={aij} matritsaning satr elementlari ko‘paytmalarining yig‘indisini hisoblash algoritmi tuzish talab etilsin. Bu masalaning matematik modeli quyidagicha ko‘rinishga ega:
m
n
S ai j . i1 j1
Xususiy holda, agar n=3 va m=4 bo‘lsa, u holda {aij} matritsaning ko‘rinishi
a11a12a13a14 quyidagicha bo‘ladi: A a21a22a23a24
a31a32a33a44
Demak, masalaning echimi S= (a11*a12*a13*a14)+(a21*a22*a23*a24)+ (a31*a32*a33*a34) bo‘ladi.
Tashqi (satrlar) bo‘yicha takrorlash jarayonini – i indeks bilan, (i=1,2,3), ichki (ustunlar) bo‘yicha j - indeks bilan (j=1,2,3,4) belgilanadi. Tashqi indeks i bo‘yicha yig‘indi bajariladi, demak, uning boshlang‘ich qiymati S=0 deb olinadi. Tashqi indeksning har bir qiymatida ichki indeksning barcha qiymatlari bajariladi. Endi, ichki takrorlash jarayonida satr elementlarining ko‘paytmasi bajarilishi kerak bo‘ladi. Ko‘paytmaning boshlang‘ich qiymati uchun yordamchi R=1 o‘zgaruvchi ishlatiladi, va joriy amal P = P * aij ifoda yordamida satr elementlarining ko‘paytmasi hisoblanadi. Tashqi takrorlash jarayonining joriy amali S=S+R dan iborat. Shunday qilib, masalani yechish algoritmini so‘zlar orqali ifodalangan usulidan foydalanilsa, quyidagi ko‘rinishga ega:
1) kiritish (n, m, a i j); 2) S = 0;
3) i = 1; 4) P = 1; 5) j =1;
6) P = P * a i j ;
36
7) j = j + 1;
8) agar ( j <= m) bo‘lsa, u holda =(5); 9) S = S + P;
10) i = i + 1;
11) agar ( i <= n) bo‘lsa, u holda =(4); 12) muhrlash (S).
m
n
Yuqoridagi keltirilgan munosabat ancha murakkab ma’noga va ko‘rinishga ega. SHu sababli masalani yechish uchun dekompozitsiya usulidan foydalanib, berilgan murakkab masalani ikki sodda masala ketma-ketligi ko‘rinishda tasvirlash mumkin, ya’ni
1) pi aij, i1
i 1,2,...,n; 2) S pi . i1
Bunda, avval mos satr elementlarning yig‘indisi {ri} oraliq massivga jamlanib, so‘ngra uning elementlari yig‘indisi S da hisoblanadi.
4-misol. Matritsani va vektorga ko‘paytmasini – C=A*B ni hisoblash masalasini ko‘riladi. Natija vektorning har bir elementi matritsa satr elementlarining vektorga skalyar ko‘paytmasidan iborat.
Bu yerda: A={a i j }, b={b j }, C={c i }, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
m
Matematik modeli: ci a i j bj , i 1,2,...,n. j1
Bu masalani yechish algoritmi quyidagi amallardan iborat: 1) kiritish (n, m, a i j , bj );
2) i = 1; 3) P = 0; 4) j = 1;
5) P = P + a i j* bj ; 6) j = j + 1;
7) agar ( j <= m) bo‘lsa, u holda =(5); 8) C i = P;
37
9) i = i + 1;
10) agar ( i <= n) bo‘lsa, u holda =(3); 11) muhrlash ( C i ).
5-misol. Matritsani va matritsaga ko‘paytmasini – C=A*B hisoblash
masalasi ko‘riladi. Bu yerda:
A={aik }, B={bkj }, C={cij }, 1 ≤ i≤ n, 1 ≤ j≤ m, 1 ≤ k≤ l.
Hisoblash formulasi:
|