Matritsalar ustida amallar
Massivlarni bir butun xolatda ishlatilgan paytda massiv nomlaridagi indekslaridagi kvadrat kavsga olinmay ishlatiladi. Massivlar kiritish operatorlarida “teng” yoki “teng emas” opearsiyalarida ishlatilishi mumkin.
Bu amallarda ishlatiladigan massivlar bir xil tipdagi indeks va komponentalarga ega bulib, strukturasi bir-biriga uxshash bulishi kerak.
Masalan: A va B massivlari Var A, B : array[1..20] of real; Ko’rinishida ifodalangan bulsa, unda natija kuyidagicha buladi:
Ifoda
|
Natija
|
A = B
A <> V
A := V
|
True, agarda A massivining elementlarining kiymatlari V massiv elementining kiymatlariga mos ravishda teng bulsa.
True, Agarda A massiv elementining biron bir kiymati V massiv elementining kiymatlariga mos raviщda teng bulmasa.
V massiv elementining xamma kiymatlari A massiv elementlari tomonidan uzlashtirilsa V massiv elementlarining kiymatlari uzgarmasdan koladi.
|
Massiv elementlari ustida amallar
Massiv elementlarini indeksatsiyalash, massivlardan nusxa olish
Massivni e’lon kilingandan keyin uni elementlarini nomlari kvadrat kavs ichida ko’rsatilgan xolda ishlatish mumkin.Masalan: Mas[2], VectorZ[10] massivning ikkinchi va uninchi elementlariga murojaat etishni bildiradi.
Ikki ulchovli massivlarda ikkita indeks, n ulchovlilarda esa n ta indeks ko’rsatiladi.
Masalan, MatrU[4,4] bu yozuv Matr U massivining 4 ta kator 4 ta ustunidagi elementini bildiradi. Array tipidagi kiymatlar bilan ishlashda kuyidagi xolatlar bulishi mumkin:
VAR
A,D : array[1..4] of real;
B : array[1..10,1..15] of integer;
I,J : integer; K : integer; S: real;
Bu operatsiyani FOR operatori yordamida xam bajarish mumkin:
FOR I := 1 TO 4 DO A[I] := 0;
Ikki ulchovli massivlarga indeks kuyish uchun ichma-ich joylashgan operatorlar ishlatiladi:
FOR I := 1 TO 10 DO
FOR J := 1 TO 15 DO
B[I,J] := 0;
Paskal algloritmik tilida massiv elementlarini birdaniga kiritish - chiqarish imkoniyati yukligi sababli elementlar bittadan kiritiladi.
Massiv elementiga kiymatni uzlashtirish operatori yordamida beriladi,initsalizatsiya misolda ko’rsatilgandek,lekin kup xollarda READ yoki READLN operatori yordamida uzlashtiriladi va sikl operatoridan foydalanamiz.
FOR I:=1 TO 10 DO
FOR J:=1 TO 15 DO
READLEN(D[I,J];
WRITELN operatori ishlatilishi sababli xar bir kiymat yangi katordan kiritiladi. Aloxida elementlarni kiymatlarini kiymatlarini xam kiritish mumkin. Bunda kuyidagi operatorlardan foydalaniladi:
READ(A[3];
READ(B[6,9]);
Bu yerda A vektori 3- elementninig kiymati va V matritsaning 6-katori 9- ustunida joylashgan elementlari kiymatlarini kiritadi.
Ikkala kiymat xam ekranning bitta katorida , kursorning joriy pozitsiyasidan teriladi.
Massiv elementlari kiymatini chiqarish xam xuddi shunday bajariladi, lekin bunda Write yoki Writeln operatorlari kullaniladi.
FOR I: =1 TO 4 DO
Writeln (A[I]); { A massivi elementlari kiymatini chiqarish}
Yoki
FOR I: =1 TO 10 DO
FOR J:= 1 TO 15 DO
Writeln (V[I,J]); { B massivi elementlari kiymatini chiqarish}
Misol:
5 ta elementdan xosil bulgan X massivining elementlarini kiriting.
Xar bir elementning kvadrati va ildizini ekranga chiqaring.
Yechilishi:
PROGRAM P7_2;
VAR
Sum,I: integer;
Sr: real;
X: array[1..5] of integer;
Kor, Kv: array[1..5] of real; { Natija kasr yoki Integer bulishi mumkin }
BEGIN
Sum:=0;
Writeln('5 ta butun kiymatlarni kiriting: ');
FOR I:= 1 TO 5 DO BEGIN
Write('I- sonni kiriting: ');
Readln(X[I]);
Kor[I]:= Sqrt(X[I]); { ildizni xisoblash }
Kv[I]:= Sqr(X[I]); { kvadratini xisoblash }
END;
FOR I:= 1 TO 5 DO Write(Kor[I]:8:2);
Writeln;
FOR I:= 1 TO 5 DO Write(Kv[I]:8:2);
Readln;
END.
Massivlar bilan ishlashda konstantalar xam ishlatilishi mumkin.
CONST
G1 = 4; G2 = 6;
VAR
MasY : array[1..G1,1..G2] of real;
Massiv elementlari xotirada ketma-ket joylashadi. Indekslari kichkina bulgan elementlar xotiraning pastki adreslarida saklanadi. Kup elementli massivlarda ung tarafdagi indeks birinchi bulib usib boradi. Masalan; Agarda
A : array[1..5,1..5] of integer; bulsa u xolda massiv elementlari adreslarning usishi buyicha joylashadi:
A[1,1]
A[1,2]
...
A[1,5]
A[2,1]
A[2,2]
Massivlarni bir butun xolatda ishlatilgan paytda massiv nomlaridagi indekslaridagi kvadrat kavsga olinmay ishlatiladi. Massivlar kiritish operatorlarida “teng” yoki “teng emas” opearsiyalarida ishlatilishi mumkin.
Bu amallarda ishlatiladigan amallar bir xil tipdagi indeks va komponentalarga ega bulib, strukturasi bir-biriga uxshash bulishi kerak.
Masalan: A va B massivlari Var A, B : array[1..20] of real; Ko’rinishida ifodalangan bulsa, unda natija kuyidagicha buladi:
Ifoda
|
Natija
|
A = B
A <> V
A := V
|
True, agarda A massivining elementlarining kiymatlari V massiv elementining kiymatlariga mos ravishda teng bulsa.
True, Agarda A massiv elementining biron bir kiymati V massiv elementining kiymatlariga mos raviщda teng bulmasa.
V massiv elementining xamma kiymatlari A massiv elementlari tomonidan uzlashtirilsa V massiv elementlarining kiymatlari uzgarmasdan koladi.
|
Massivni e’lon kilingandan keyin uni elementlarini nomlari kvadrat kavs ichida ko’rsatilgan xolda ishlatish mumkin.Masalan:
Mas[2], VectorZ[10] massivning ikkinchi va uninchi elementlariga murojaat etishni bildiradi. Ikki ulchovli massivlarda ikkita indeks, n ulchovlilarda esa n ta indeks ko’rsatiladi.
Masalan, MatrU[4,4] bu yozuv Matr U massivining 4 kator 4 ustunidagi elementini bildiradi. Array tipidagi kiymatlar bilan ishlashda kuyidagi xolatlar bulishi mumkin:
VAR
A,D : array[1..4] of real;
B : array[1..10,1..15] of integer;
I,J : integer; K : integer; S: real;
Bu operatsiyani FOR operatori yordamida xam bajarish mumkin:
FOR I := 1 TO 4 DO A[I] := 0;
Ikki ulchovli massivlarga indeks kuyish uchun ichma-ich joylashgan operatorlar ishlatiladi:
FOR I := 1 TO 10 DO
FOR J := 1 TO 15 DO
B[I,J] := 0;
Paskal algloritmik tilida massiv elementlarini birdaniga kiritish - chiqarish imkoniyati yukligi sababli elementlar bittadan kiritiladi.
1 Misol:
5 ta elementdan xosil bulgan X massivining elementlarini kiriting.
Xar bir elementning kvadrati va ildizini ekranga chiqaring.
Yechilishi:
PROGRAM P7_2;
VAR
Sum,I: integer;
Sr: real;
X: array[1..5] of integer;
Kor, Kv: array[1..5] of real; { Natija kasr yoki Integer uchun juda katta bulishi mumkin }
BEGIN
Sum:=0;
Writeln('5 ta butun kiymatlarni kiriting: ');
FOR I:= 1 TO 5 DO BEGIN
Write('I- sonni kiriting: ');
Readln(X[I]);
Kor[I]:= Sqrt(X[I]); { ildizni xisoblash }
Kv[I]:= Sqr(X[I]); { kvadratini xisoblash }
END;
FOR I:= 1 TO 5 DO Write(Kor[I]:8:2);
Writeln;
FOR I:= 1 TO 5 DO Write(Kv[I]:8:2);
Readln;
END.
2 Misol:
3x3 massiv elementlarini kiriting va xar bir kator yigindisini xisoblang va xar bir kator yigindisini xisoblang
Yechilishi:
PROGRAM P7_8;
VAR
X: array[1..3,1..3] of integer;
Sum: array[1..3] of integer;
I, J: integer;
BEGIN
Randomize;
FOR I:= 1 TO 3 DO
FOR J:= 1 TO 3 DO BEGIN
X[I,J]:=Random(300); {massivning tasodifiy kiymatlari bilan tuldiramiz}
END;
FOR I:= 1 TO 3 DO
Sum[I]:= 0; { yigindini 0 ga tenglashtiramiz }
FOR I:= 1 TO 3 DO
FOR J:= 1 TO 3 DO
Sum[I]:= Sum[I]+X[I,J];
FOR I:=1 TO 3 DO
Write(Sum[I]:3); { yigindini chiqaramiz}
Readln;
END.
Massivdan nusxa olish deb,bitta massiv elementlari kiymatlarini boshqa massiv elementlari uzlashtirishiga aytiladi. Nusxa olishni bitta uzlashtirish operatori yordamida amlga oshirish mumkin,masalan A:=D yoki FOR operatori yordamida.
FOR I:= 1 TO 4 DO A[I]:= D[I];
Ikkala xolda xam massiv elementlari kiymatlari uzgarmaydi, A massivi elementlarining kiymatlari D massivi elementlari kiymatiga teng bulib koladi.Ko’rinib turibdiki, ikkala massiv xam strukturasi buyicha bir- biriga uxshash. Kupchilik xolatlarda massiv da kaysidir elementlarini izlashga tugri keladi. Masalan, A massivining nechta elementi nol kiymatga ega ekanligini bilish talab etiladi. Buning uchun kushimcha uzgaruvchi K ni kiritamiz va FOR, IF operatorlaridan foydalanamiz:
K:=0;
FOR I:=1 TO 4 DO
IF A[I] = 0 THEN K : = K+1;
Sikl bajarilgandan keyin K uzgaruvchi A massivining nolga teng bugan kiymatlarini uz ichiga oladi.Massiv elementlari kiymatlarini joyini almashtirish massivning bazali tipiga uxshash tipdagi yerdamchi uzgaruvchi yordamida amalga oshiriladi. Masalan, A massivining birinchi va beshinchi elementlari kiymatlarini joyini almashtiring:
Vs : =A[5] { Vs- yordamchi uzgaruvchi }
A[5] :=A[1];
A[1]: =Vs;
Tayanch so`z va iboralar: Massiv, massiv elementlari, massivlarni ifodalash, bir ulchovli massiv, kup ulchovli massiv,array
Nazorat savollari
1.Massiv deb nimaga aytiladi?
2.Massiv qanday e’lon kilinadi?
Do'stlaringiz bilan baham: |