366
⎟⎟
⎟
⎟
⎟
⎠
⎞
⎜⎜
⎜
⎜
⎜
⎝
⎛
−
−
−
=
6
5
4
2
3
34
3
32
90
45
23
8
12
98
45
0
9
45
23
1
A
type
vek1:
array [1..5]
of integer;
vek2:
array [1..4]
of vek1;
var
a:vek2;
və ya
var
a:
array [1..4,1..5]
of integer;
Massivin elementlərinə müraciət onun indeksi vasitəsilə yerinə yetirilir.
Bunun üçün massivin adını və kvadrat mötərizənin içərisində indeksi göstərmək
lazımdır. Məsələn, B[2] yazılışı massivin ikinci, B [10] yazılışı massivin onuncu
elementinə, A[2,3] yazılışı A matrisinin ikinci sətrilə üçüncü sütunun kəsişməsində
yerləşən elementə
1
müraciəti təmin edir.
Birölçülü massivin elementləri yaddaşda ardıcıl olaraq yerləşirlər. İkiölçülü
massivin elementləri isə yaddaşda sağ indeksin artmasına uyğun olaraq ardıcıl
yerləşirlər. Məsələn, təyin olunan A massivinin elementlərinin operativ yaddaşda
yerləşmə sxemi aşağıdakı formada olacaq:
A[1,1], A[1,2], A[1,3], A[1,4], A[1,5], A[2,1], A[2,2],
A[2,3], A[2,4], A[2,5], A[3,1], A[3,2], A[3,3], A[3,4],
A[3,5], A[4,1], A[4,2], A[4,3], A[4,4], A[4,5]
Qeyd edək ki, massivlərin elementlərinin sayı indeksin
təyin olunduğu
intervalı aşmamalıdır. Əks halda, proqram yerinə yetirilərkən səhv aşkar olunacaq.
Massiv elan olunduqdan sonra massivin elementləri təyin edilməlidir, yəni,
massivin hər bir elementinə onun baza tipinə uyğun bir qiymət və ya ifadə
mənimsədilməlidir. Bu dövr operatorlarının və
Read,
Readln
daxiletmə
operatorundan istifadə etməklə yerinə yetirilir. Massivin elementlərinin ekrana və
ya kağıza çıxışı isə dövr operatorundan istifadə etməklə
Write, Writeln
prosedurları ilə yerinə yetirilir. Məsələn, A və B massivlərinin elementləri
aşağıdakı operatorlar vasitəsilə daxil edilə və ekranda əks oluna bilər.
var
A: array [1..2,1..2] of integer;
B: array [1..3] of integer;
i,j:integer;
Begin
for i:=1 to 3 do Readln (B[i]);
for i:=1 to 2 do
1
Baxılan misalda 45
367
for j:=1 to 2 do
Readln (A [i, j]);
For i:=1 to 3 do writeln (B [i]);
For i:=1 to 2 do
begin
For j:=1 to 2 do
Write (A[i, j]:4);
Writeln;
End;
End.
Elementləri müəyyən qayda ilə təyin olunan və bir sıra xüsusi tip
massivlərin elementləri mənimsətmə operatoru vasitəsilə də daxil oluna bilər.
Məsələn, vahid matrisin elementləri aşağıdakı operatorlar vasitəsilə təyin oluna
bilər.
var
A: array [1..4,1..4]
of integer;
i,j
:integer;
Begin
for i:=1
to 4
do
begin
Writeln;
for j:=1
to 4
do
begin
if i=j
then A [i, j]:=1
else
A [i, j]:=0;
Write (A[i, j],' ')
;
end;
end;
End.
Qeyd edək ki,
Readln, Read, Write, Writeln
prosedurları ilə
massivin tək bir elementini və ya bir neçə elementini də həm daxil etmək, həm də
çıxışa vermək olar. Məsələn,
Read
(B [2]);
writeln
(A[2,3], A[4,5]);
2.12.1. Massivlər üzərində əməllər
Massivlər üzərində aşağıdakı əməliyyatlar aparmaq olar:
•
Massivləri müqayisə etmək. Bu halda müqayisə edilən massivlər
eynistrukturlu olmalıdır, yəni
indekslərin tipi, elementlərin sayı və tipi eyni
olmalıdır. Müqayisə əməliyyatı massivlərin ekvivalentliyini və ya fərqli olmasını
təyin edir. Massivin ekvivalentliyi “= “ operatoru vasitəsilə təyin edilir. Məsələn,
A=B.
A massivinin hər bir elementinin qiyməti B massivinin uyğun elementinin
qiymətinə bərabər olduqda, əməliyyatın nəticəsi true qiyməti alır. Massivin
368
fərqliliyi isə “<>” operatoru vasitəsilə təyin edilir. Məsələn, A<>B massivinin heç
olmasa bir elementinin qiyməti müqayisə olunan digər massivinin uyğun
elementinin qiymətindən fərqli olduqda əməliyyatın nəticəsi true qiyməti alır.
•
Massivə digər massivi mənimsətmək. Bu əməliyyat mənimsətmə operatoru
“:=” vasitəsilə yerinə yetirilir. Məsələn, A:=B. Bu halda B massivinin bütün
elementinin qiymətləri A massivinin uyğun elementlərinə mənimsədilir. B massivi
dəyişməz qalır.
•
Ədədi massivlər üzərində hesabi əməliyyatlar.
Massivləri toplamaq,
qüvvətə yüksəltmək, onların hasilini tapmaq, transponirə etmək olar. Məsələn,
matrisin transponirə edilməsi proqramına baxaq
Program P_34;
Const n=3;
Var
i, j, Lb, Rb: Integer;
a, b : Array[1..n, 1..n] Of Integer;
Begin
WriteLn( 'A-matrisi');
For i:=1 to n do Begin
For j:=1 to n do Begin
read (a[i, j]) ;
b[j, i]:= a[i, j];
Write(a[i, j]:5)
End;
WriteLn;
End;
Writeln;
WriteLn( 'B-matrisi');
For i:=1 to n do
Begin
For j:=1 to n do Write(b[i, j]:5); WriteLn
End;
End.
Massivlərin nizamlanması. Massivlərin nizamlanması riyaziyyatda ən çox
istifadə olunan əməliyyatlardan biridir. Bir neçə nizamlama üsulu işlənmişdir.
Aşağıdakı misallarda elementləri təsadüfi ədədlər olan
seçmə və yerdəyişmə üsulu
ilə matrislərin nizamlama proqramları verilmişdir:
Misal
1.
Program P_48;
Var
a, b: Array[1..100] Of Integer;
c, d, i, j, k, n, Min: Integer;
Begin
ReadLn(n);
ReadLn(c, d);
WriteLn('Verilen massiv ');
For i:= 1 To n Do
Begin