57
Burada, tipin adı- massivə verilən addır, massivin ölçü göstəriciləri-massivin ele-mentlərinin
sayını, sətir və sütunlarının sayını göstərən göstəricilərdir, tip-massiv element-lərinin tipidir və Turbo
Paskal dilinin LONGİNT tipindən başqa istənilən tipi ola bilər. Adətən məsələlərin həllində ən çox rast
gəlinən massivlər birölçülü və ikiölçülü massivlərdir. Başqa sözlə daha çox ardıcıllıq vəya matrislərdən
istifadə olunur. Əgər A= ARRAY [1..14] of real; verilibsə bu o deməkdir ki, massivin adı A-dır, onun 14
elementi var və elementlər həqiqi tipli ədədlərdir. Bu massivin elementləri yaddaşda ardıcıl yerləşir və
müraciət vaxtı ünvana uyğun olaraq çağrılır. Elementlərə qiymət aşağıdakı kimi mənimsədilir:
A[1]:=1.2; A[2]:=76.9 və sair. Əgər
massiv ikiölçülüdürsə onda o, aşağıdakı kimi göstəriləcək:
B= ARRAY [1..3,1..5] OF INTEGER;
Burada B-massivin adıdır, onun 3 sətri, 5 sütunu var və elementləri tam tiplidirlər.Bu şəkildə
massivin elementləri aşağıdakı kimi mənimsədilir: B[1,2]:=2; B[3,4]:=24;
Bu o deməkdir ki. B ikiölçülü massivinin 1-ci sətrinin 2-ci sütununun elementi 2; 3-cü sətirinin 4-cü
sütununun elementi isə 24-ə bərabərdir.
Nümunə1. a
1
, a
2
, ..., a
10
ardıcıllığının elementləri içərisində 10-dan kiçik olanların cəmini tapan
proqramı qurun.
PROGRAM ARDICILLIQ;
USES CRT, PRINTER;
VAR A:ARRAY [1..10] OF REAL;
I:INTEGER; S:REAL;
BEGIN
FOR I:=1 TO 10 DO READLN(A[I]);
FOR I:=1 TO 10 DO WRITE(‘ ‘,A[I]:3:2); WRITELN;
S:=0;
FOR I:=1 TO 10 DO IF A[I]<10 THEN S:=S+A[I];
WRITELN(‘S=’,S:6:2); END.
Nümunə2. B(4,4) massivinin 3-cü sətrinin elementlərinin 10-larla əvəz etməklə yeni C(4,4)
massivini alan proqramı qurun.
PROGRAM MASSIV;
USES CRT, PRINTER;
VAR B,C:ARRAY[1..4,1..4] OF REAL; I,J:INTEGER;
BEGIN
FOR I:=1 TO 4 DO BEGIN FOR J:=1 TO 4 DO READLN(B[I,J]); END;
CLRSCR;
WRITELN(‘ B MASSIVI:’); WRITELN;
FOR I:=1 TO 4 DO BEGIN
FOR J:=1 TO 4 DO WRITE(‘ ‘,B[I,J]:3:2); WRITELN; END;
WRITELN; RITELN(‘ C MASSIVI:’); WRITELN;
FOR I:=1 TO 4 DO BEGIN
FOR J:=1 TO 4 DO BEGIN IF I:=3 THEN C[I,J]:=10 ELSE C[I,J]:=B[I,J];
WRITE(‘ ‘,C[I,J]:3:2]); END; WRITELN; END; END.
Yazılar:
Turbo Paskal dilində yazı yazı sahələri adlanan qeyd olunmuş sayda komponentlərdən ibarət
verilənlər strukturudur. Yazılar aşağıdakı kimi elan edilir:
Ad= RECORD yazılar sahəsi END;
Ad- yazıya verilən ad olub düzgün identifikatordur; RECORD, END- açar sözləridir (yazı, son);
Yazılar sahəsi- yazılar bölməsini göstərməklə bir-birindən “;”-lə ayrılırlar.
Məsələn:
VAR DG= RECORD
GUN, AY: BYTE; İl: İNTEGER; END;
Burada, DG- yazının adı, GUN, AY, İl- yazı sahələridir. Yazı sahələrilə işləməni asanlaşdırmaq
məqsədilə aşağıdakı operatordan istifadə edilir: WITH yazı sahələri DO operator
Yazı sahələri- yazı tipli dəyişənlərdir; operator- Turbo Paskalın istənilən operatorudur.
Çoxluqlar:
58
Çoxluq- bir-biri ilə müəyyən qaydada əlaqəli olan eyni tipli obyektlər yığımıdır. Turbo Paskal
dilində çoxluqlar aşağıdakı kimi elan edilir:
Ad= SET OF tip
Burada. Ad- çoxluğun adı; SET (çoxluq), OF (-ın, -in, -un, -ün)- açar sözləri; tip- çoxluq element-
lərinin tipidir.
Məsələn:
VAR
A1, A2: SET OF 0..5;
A3, A4: SET OF 3..8;
Burada A1, A2, A3, A4 çoöluqların adıdır. A1 və A2 çoxluqları 0-dan 5- qədər rəqəmləri, A3, A4
çoxluqları isə 3-dən 8-ə qədər rəqəmləri özündə birləşdirir.
Çoxluqlar üzərində aşağıdakı əməliyyatları aparmaq olar:
*- çoxluqların kəsişməsi; Məsələn, A1*A3 kəsişməsi [3]-ə bərabərdir.
+ - çoxluqların birləşməsi; Məsələn, A1+A2 birləşməsi [1, 2, 3, 4, 5]-ə bərabərdir.
- - çoxluqların fərqi; birinci yazılmış çoxluğun ikinciyə aid olmayan elementlərindən ibarət çoxluq.
Çoxluqlar arasındakı münasibətləri öyrənmək məqsədilə aşağıdakı əməliyyatlardan istifadə edilir:
=- çoxluqların ekvivalentliyinin yoxlanması; <>-çoxluqların ekvivalent olmamasının yoxlanması;
<=-birinci çoxluğun ikinciyə daxil olmasının yoxlanması; >=-ikinci çoxluğun birinciyə daxil
olmasının yoxlanması;
in- elementin çoxluğa daxil olmasının yoxlanması: əgər element çoxluğa daxildirsə TRUE (doğru),
əks halda isə FALSE (yalan) qaytarılır.
Sətir tipli dəyişənlərlər və onlar üzərində əməllər:
Sətir tipli dəyişənlər aşağıdakı kimi elan edilirlər: Dəyişən: STRING [N]; Burada, N- sətirin
uzunluğudur. Onun maksimum qiyməti 256 ola bilər, başqa sözlə sətirdəki simvolların sayı maksimim
256 ola bilər. Əgər sətirdəki simvolların sayı göstərilməyibsə (sadəcə olaraq Dəyişən: STRING; kimi elan
edilibsə) onda sətirin uzunluğu 255 qəbul edilir.
Məsələn, VAR S1:STRİNG[10]; S2:STRING [20];
Burada S1 dəyişəni 10, S2 dəyişəni 20 simvoldan ibarət sətir tipli dəyişənlərdir.
Sətir tipli dəyişənlər üzərində aşağıdakı əməliyyatları aparmaq olar:
CONCAT (S1, S2, ..., SN)- S1, S2, ..., SN sətirlərini ardıcıllığa uyğun olaraq birləşdirir;
COPY (S, N, M)- S sətrindən N nömrəli simvoldan başlayaraq M sayda simvolların surəti
köçürülür;
DELETE(S, N, M)- S sətrində N nömrəli simvoldan başlayaraq M sayda simvol silinir:
İNSERT(ST, S, N)- S sətrinin N-ci mövqeyindən başlayaraq ST alt sətri əlavə edilir;
LENGTH (S)- S sətrinin uzunluğunu (simvolların sayını) təyin edir:
POS (ST,S)- S sətrində ST alt sətrinin daxil olduğu mövqeyə uyğun qiyməti veriri;
UPCASE (simvol) – simvolun yuxarı registrdəki qiymətini qaytarırı. Əgər belə qiymət yoxdursa,
onda simvolun özünü qaytarır.
Nümunə:
PROGRAM STR;
USES CRT, PRINTER;
VAR S1, S2:STRING [18];
S3: STRING [2];
S4: STRING[60];
BEGIN
S3:=’ ‘; READLN(S1);
READLN(S2);
S4:=CONCAT(S1, S3, S2); WRITELN(S4); END.
MÖVZU 12. PROSEDURA VƏ FUNKSIYALAR
Turbo Paskal dilində də digər alqoritmik dillərdə olduğu kimi tez- tez təkrarlanan proqram
hissələrinin verilməsi məqsədilə sərbəst proqram hissələri olan prosedura və funksiyalardan istifadə edilir.