{ n - matri sa satrlari soni, m - ustunlar soni} var i, j: integer; A, B, C: array [1..n,1..m] of real; begin {A, V matri sa hadlarini kiritish} for i : = 1 to n do for j: =1 to m do readln (A[i,j], B[i,j]); for i : = 1 to n do for j: = 1 to m do begin C[i,j] := A[i,j] + B[i,j]; writeln (C[i,j]) end end.
2. Matri sani vektorga ko’paytirish.
Program L3; const n =3; m = 4; type matr = array [1..n, 1..m] of real; vect = array [1..m] of real; var i, j: byte; A: matr; B: vect; C: array[1..n] of real; begin writeln (‘A matri sa hadlarini kiriting’);
for i:=1 to n do for j:=1 to m do readln (A[i,j]); writeln (‘B vektor hadlarini kiriting’);
for i:=1 to m do readln (B[i]); for i:=1 to n do begin C[i]:=0; for j:=1 to m do C[i]:= C[i] + A[i,j] * B[j]; writeln (C[i]); end end.
3. Matri sa hadlarining eng kattasini topish va uning joylashgan joyini aniqlash.
Program L4; const n=3; m=4; var A: array [1..n, 1..m] of real; R: real; i, j: byte; K, L: byte; begin {A matri sa hadlarini kiritish} for i: =1 to n do for j: =1 to m do readln (A[i,j]); R:= A[1,1]; L:= 1; K:= 1; for i: =1 to n do for j: =1 to m do begin if R< A[i,j] then begin R: =A[i,j]; L: = i; K: =j; end; end; writeln (‘max A=’, R); writeln (‘satr=’,L,’ustun =’,K); end.
Prosedura - operatorlar Programma tuzish jarayonida, uning turli joylarida ma’nosiga ko’ra bir xil, mustaqil xarakterga ega bo’lgan va echilayotgan asosiy masalaning biror qismini hal qilishni o’z bo’yniga olgan murakkab algoritmdan bir necha marotaba foydalanishga to’g’ri keladi. Masalan, matri salarni ko’paytirish, matri sani vektorga ko’paytirish, chiziqsiz tenglamani echish, chiziqli algebraik tenglamalar sistemasini echish, faktorial hisoblash, yig’indi hisoblash va hokazo kabi masalalarni hal qilish algoritlari juda ham ko’p masalalarni echishning bosh algoritmlarida qayta-qayta, turli boshlang’ich ma’lumotlar bilan qatnashishi mumkin. Bunday hollarda, malakali programmachi programma matnini ixchamlashtirish, programmaning ishonchlilik darajasini oshirish, programmani taxrirlash (otladka) ni tezlashtirish va programmaning umumiyligini (universalligini) ta’minlash uchun prosedura va funksiyalardan kengroq foydalanib, mukammal programma yaratishga harakat qiladi.
Prosedura va funksiyalar mustaqil programmali ob’ektlar hisoblanadi. Bu mustaqil programmali ob’ektni programmachi o’z hoxishiga va undan olinadigan natijalariga ko’ra pro sedura yoki funk siya ko’rinishida aniqlashi mumkin. Odatda olinadigan natija yagona qiymatli bo’lsa funk siyadan, olinadigan natijalar soni bir nechta bo’lsa pro seduradan foydalanish maqsadga muvofiqdir.
Prosedurani yozish strukturasi xuddi asosiy programma strukturasi kabi bo’lib, faqat sarlavhalari bilangina farq qiladi xolos:
procedure ();
label;
const;
type ;
var ;
;
begin end;
Proseduralar va funksiyalarni aniqlash asosiy programmaning var (o’zgaruvchilarning tiplarini e’lon qilish) bo’limida bajariladi. Proseduradan programmada foydalanish uchun uning ismi va faktik parametrlar ro’yxati yoziladi. Shunda prosedura o’ziga belgilangan ishni bajarib, o’zining parametrlari orqali asosiy programmaga natijasini beradi.
Proseduraning e’loni va unga murojaat qilishni keyinchalik ko’riladigan misollar orqali o’zlashtirib olamiz.