Ia9 -fesil-1: 9 qxd



Yüklə 9,12 Kb.
Pdf görüntüsü
səhifə12/29
tarix08.10.2017
ölçüsü9,12 Kb.
#3616
növüDərs
1   ...   8   9   10   11   12   13   14   15   ...   29

array
açar sözündən sonra kvadrat mötərizələrdə massiv indekslərinin iki
nöqtə (
..
) ilə ayrılmış diapazonu göstərilir. Sonra 
of
açar sözü və massiv ele-
mentlərinin tipi gəlir. Verilmiş misalda massiv 10 tam ədəddən ibarətdir.
Massivin elementinə müraciət. Proqramda massivin elementinə mü 
-
raciət etmək üçün onun adını və indeksini göstərmək lazımdır. Məsələn, aşağı-
dakı operator massivin indeksi 7 olan elementinə indeksi 6 olan elementinin qiy -
mə tini  mə nimsədir. 
a[7]  :=  a[6];
Proqramlarda çox vaxt massiv bir tam kimi emal olunur. Eyni bir əməli ardıcıl
olaraq massivin bütün elementlərinə tətbiq etmək üçün sayğaclı dövrdən istifadə
etmək olar. Bu halda massivin elementinə müraciət edəndə dövr dəyişənindən
indeks kimi istifadə olunur. Məsələn, tutaq ki, 
b
massivi 10 elementdən ibarətdir.
Aşağıdakı dövr massivin elementlərinin qiymətini sıfra bərabər edir.
for
i  :=  1 
to 10  do
b[i]  :=  0;   
Belə bir məsələyə baxaq. Tutaq ki, 
n
elementdən ibarət tam ədədlər massivi
verilib və massivin ən kiçik elementini tapmaq tələb olunur. Proqramda ən kiçik
elementi 
min
, həmin elementin indeksini isə
imin 
dəyişəni ilə işarə etsək, ve -
ri  lən məsələnin həlli üçün proqram fraqmentini aşağıdakı kimi yazmaq olar:
imin  :=  1;
min    :=  a[imin];
for i  :=  2  to n  do
if a[i]  <  min  then  begin
min    :=  a[i];
imin  :=  i;
end;
WriteLn    (min,  ‘  ən  kiçik  element,  ’,
imin,  ‘  həmin  elementin  massivdə
indeksidir.’);
42


İkiölçülü massivlər. Birindeksli massivə birölçülü massiv deyilir. Bir çox
məsələlər üçün belə massivlər yetərli olmur. Proqramlaşdırma dillərinin hamısın-
da bir neçə indeksli çoxölçülü massivlər yaratmaq imkanı vardır. Məsələn, iki öl -
çülü massivə bir indeksi sütunun nömrəsini, o biri indeksi isə sətrin nömrəsini
gös tərən cədvəl kimi baxmaq olar.
İkiölçülü massivi elan etmək üçün onun hər iki indeksinin dəyişmə diapazo-
nunu göstərmək lazımdır. Bu diapazonlar vergüllə ayrılır. Məsələn, şahmat tax-
tasını təsvir edən tam ədədlər massivini belə elan etmək olar.
var t:  array  [1..8,  1..8]  of  integer;
Pascal dilində ikiölçülü massivə “massivlər massivi” kimi də baxmaq olar.
Yuxarıdakı elanetmə tamamilə belə yazılışla ekvivalentdir:
var t:  array  [1..8]  of  array  [1..8]  of  integer;
İkiölçülü massivin elementinə müraciət etmək üçün vergüllə ayırmaqla hər iki
indeksi göstərmək lazımdır. Pascal dilində hər iki indeksi ayrıca da göstərmək
olar. 
Məsələn, şahmat taxtasının e4 xanasına uyğun olan massiv elementinə belə
müraciət etmək olar:
t[5,4], 
yaxud 
t[5][4].
1.
PASCAL
proqramlaşdırma dili
43


İç-içə dövrlər. İkiölçülü massivi emal edərkən hər iki indeksin qiymətini
vahid dövr sayğacı əsasında hesablamaqla bir dövrlə də keçinmək olar. Ancaq bu
halda proqramı başa düşmək çətinləşir.
Bir alqoritmi ikiölçülü massivin elementlərinə tətbiq etmək üçün adətən iki
dövrdən istifadə edilir. Hər dövrün sayğacı uyğun indeks üzrə bütün mümkün
qiymətləri alır. Bu zaman bütün massivi əhatə etmək üçün dövrlərdən biri
digərinin içərisində yerləşməlidir. Belə dövrlərə iç-içə dövrlər deyilir. Məsələn,
şahmat taxtasının bütün elementlərinə sıfır qiyməti mənimsətmək üçün dövrü
aşağıdakı kimi qurmaq olar:
for
i  :=  1 
to 8  do
for j  :=  1  to 8  do
t[i,j]  :=  0;   
Daxili dövr yerinə yetirilərkən xarici dövr sayğacının qiyməti sabit qalır.
Sonra o, bir vahid dəyişir və daxili dövr tamamilə yenidən təkrarlanır. Proq -
ramlaşdırmada iç-içə dövrlərdən istifadə təkcə massivlərlə işləmək üçün deyil,
başqa işlərdə də çox əlverişli olur.
Tutaq ki, 
n
sətri və 
m
sütunu olan ikiölçülü 
a
massivi verilib. Həmin mas-
sivdə, heç olmasa, bir mənfi elementin olub-olmamasını müəyyənləşdirən pro-
qram fraqmentini son şərtli dövrdən istifadə etməklə (həmin dövrün iş prinsipini
yada salın!) aşağıdakı kimi yazmaq olar:
i  :=  0;
repeat
j  :=  0;
i  :=  i  +  1
repeat
j  :=  j  +  1;
until (j  =  m)  or (a[i,j]  <  0);
until (i  =  n)  or (a[i,j]  <  0);
if a[i,j]  <  0  then
WriteLn(‘Hə,  mənfi  element  var!’)
else
WriteLn(‘Mənfi  element  yoxdur!’);
44


1. Massiv nədir və o, Pascal dilində necə elan olunur?
2. Birölçülü a massivində indeksləri 
k
-dan 
m
-dək olan elementlərin maksimumunu
he sablayan proqram yazın. Tapılmış qiyməti 
j
dəyişəninə mənimsədin.
3. Verilmiş tam ədədlər massivi 10 elementdən ibarətdir. Onların içərisində iki ədəd
bərabərdir.  Həmin ədədlərin indeksini müəyyənləşdirən proqram yazın. Tapılmış
qiymətləri  



dəyişənlərinə mənimsədin.
4. Aşağıdakı proqram fraqmentinin icrasından sonra 
L
dəyişəninin qiyməti nə ola-
caq? Düzgün cavabı seçin.
var  a:  array  [1..4,  1..4]  of  integer;
L,  f,  g,  v:  integer;
...
L  :=  0; 
for  g  :=  1  to  4  do
begin
v  :=  0;
for  f  :=  1  to  4  do
if  a[f,g]  <  0  then  v:=  v  +  1;
L  :=  L  +  v;
end;
a) 
a
massivində müsbət elementlərin sayı
b) 
a
massivində müsbət olmayan elementlərin sayı
c) 
a
massivində mənfi elementlərin sayı
d) 
a
massivinin birinci sətrindəki mənfi elementlərin sayı
e) 
a
massivinin sütunundakı mənfi elementlərin maksimal sayı
1.
PASCAL
proqramlaşdırma dili
45


Yüklə 9,12 Kb.

Dostları ilə paylaş:
1   ...   8   9   10   11   12   13   14   15   ...   29




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə