program P;
var
s, s1: string;
k, i: Integer;
begin
Write (‘İlkin sətri daxil edin: ’);
ReadLn (s);
Write (‘Axtarılan sözü daxil edin: ’);
ReadLn (s1);
k := 0;
while Pos(s1, s) > 0
do
begin
k := k + 1;
Delete(s, Pos(s1, s), Length(s1));
end;
WriteLn (k);
end.
1. Sətir nədir və onun üzərində hansı əməliyyatlar aparılır?
2. Tutaq ki,
Temp1 := ‘Abra’ və Temp2 := ‘kadabra’
.
Aşağı dakı funksiya və prosedurların nəticəsini müəyyənləşdirin.
a) Magic := Concat(Temp1, Temp2)
b) Length(Magic)
c) HisMagic := Copy(Magic, 1, 8)
d) Delete(HisMagic, 4, 3)
e) Insert(Temp1, HisMagic, 3)
f) Pos(Temp2, Magic)
g) Pos(Temp1, Magic)
h) Val(‘1.234’, RealNum, Error)
i) Str(1.234 :3:1, RealStr)
3.
Sətrin polindromu onun özündən və tərs yazılışından ibarətdir. İstəni lən sətrin
polindromunu yaradan funksiya yazın. Yəni bu funksiyanın girişinə ‘abc’ ver -
dikdə, çıxışda ‘abccba’ alınmalıdır.
4. Sətirdə olan saitlərin sayını hesablayan proqram yazın.
50
ALTPROQRAMLAR.
FUNKSİYALAR VƏ PROSEDURLAR
İnsan həcmi bir neçə yüz sətir olan alqoritmdən “baş çıxara“ bilər. Proqram
sətirlərinin sayı artdıqca işin ümumi məntiqi itir. Konkret operatorların yerinə
yetirdiyi əməliyyatlar elementar olsa da, onların
ümumi məqsədini başa düşmək
çətinləşir. Proqramın strukturu və onun yerinə yetirilmə ardıcıllığı aydın olmur.
Belə alqoritmi dəyişdirmək, yaxud düzəltmək çox çətin olur.
Bu problemi həll etmək üçün alqoritm sadə əməliyyatları yerinə yetirən ayrı-
ayrı alqoritmlərə bölünür. Belə ayrıca alqoritmlərə
yardımçı alqoritmlər deyilir.
Proqramlaşdırma dillərində yardımçı alqoritm termininin yerinə
altproqram ter-
minindən istifadə olunur. Yardımçı alqoritmə (altproqrama)
müraciət etmək üçün
onu
çağırmaq lazımdır.
Adətən orta ölçülü proqramları hər biri çox da çətin olmayan əməliyyatı ye -
rinə yetirən kiçik altproqramlara bölürlər. Yekun alqoritm ayrı-ayrı operatorlar-
dan deyil, hər birinin öz adı olan bitkin kod bloklarından ibarət olur. Bu halda alt-
proqramlara proqramçıların təyin etdiyi yeni operatorlar kimi baxmaq olar.
Standart altproqramlar. Bir çox yardımçı alqoritmlərdən tez-tez və müx-
təlif məsələlərdə istifadə edilir. Məsələn, tez-tez tipik riyazi funksiyaları hesab la -
maq, yaxud sətirlər üzərində standart əməliyyatlar aparmaq tələb olunur. Belə
alqoritmləri hər proqramçı
özü yazsa idi, bu çox böyük vaxt itkisinə səbəb olardı.
Bu problem standart altproqramlar tətbiq etməklə aradan qaldırılır.
Standart altproqramlar adətən proqramlaşdırma dilində deyil, proqramlaşdır-
ma sistemində (mühitində) təyin edilir. Onlar translyatora əlavə edilən altproq -
ramlar kitabxanasına daxil olur. Standart altproqramların geniş kitabxanaları işi
əhəmiyyətli dərəcədə yüngülləşdirir.
Yardımçı alqoritmlərin tipləri. Altproqramlar adətən, iki kateqoriyaya
bölürlər:
prosedurlar və
funksiyalar.
Bəzi proqramlaşdırma dillərində (məsələn, C-də) altproqramları prosedur və
funksiyalara bölmürlər. Onların hamısına funksiya kimi baxılır.
Belə dillərdə
prosedur heç bir qiymət qaytarmayan funksiyadır.
Prosedur, sadəcə hər hansı operatorlar ardı cıl lığını yerinə yetirir.
Funksiya isə müəy yən qiyməti hesablayır və həmin qiy məti çağıran proqrama (yaxud
altproqrama) ötürür (qaytarır).
1.12.
1.
PASCAL
proqramlaşdırma dili
51
Altproqramın parametrləri. Altproqramın işinin bir mənası olması üçün
o, onu çağıran proqramdan verilənlər almalıdır. Verilənlər altproqrama
parametr-
lər şəklində ötürülür. Hər bir altproqram parametr kimi konkret tipli müəyyən
verilənlər yığınını almağı gözləyir. Parametrlərə ehtiyacı olmayan altproqramlar
da mümkündür.
Altproqram yaradılarkən onun parametrlərinə ötürülən qiymətlər hələ məlum
olmur. Təsvir zamanı altproqramın başlığında
formal parametrlər göstərilir. For -
mal parametrlər ötürülən verilənlərin tipini müəyyən edən ixtiyari iden
tifi
-
katorlar dır. Onlar yalnız altproqramın yerinə yetirdiyi əməliyyatları təsvir etmək
üçün lazımdır.
Altproqram çağırılarkən ona ötürülən
faktik parametrlər göstərilir. Altproq -
ramın operatorlarının yerinə yetirilməsi zamanı
formal parametrləri faktik
qiymətlər təmsil edir.
Altproqramın çağırılması. Altproqramı çağıran operatorun növü altpro-
qramın tipindən və konkret proqramlaşdırma dilinin sintaksisindən asılıdır.
Altproqramı çağırmaq üçün onun adını göstərmək lazımdır. Ondan sonra mötə -
rizədə faktik parametrlərin siyahısı gəlir. Faktik parametrlərin tipi və onların sayı
altproqramda formal parametrlərin təsvirinə uyğun gəlməlidir. Faktik parametrlər
təkcə dəyişənlər deyil,
həm də konstantlar, yaxud ifadələr ola bilər.
Funksiyanı proqramın istənilən yerindən çağırmaq olar. Aşağıdakı misalda
z
dəyişəninə katetləri
x
və
y
olan düzbucaqlı üçbucağın hipotenuzunun uzunluğu
mənimsədilir. Hesablama üçün standart funksiyaya müraciət olunub.
z := sqrt(x*x + y*y);
Prosedurun çağırılması adətən ayrıca operator kimi göstərilir. Pascal dilində
bunun üçün heç bir açar söz tələb olunmur. Məsələn,
parametr kimi iki tam ədədi
qəbul edən
P
proseduru belə çağırıla bilər:
P(1, 2);
Yardımçı alqoritmlərin proqramlaşdırılması. Yardımçı alqoritmlərin
təsviri proqramın ilkin mətninə daxil edilir. Proqramlaşdırma dillərinin əksəriy -
yətində altproqramın ilk çağırılmadan öncə təsvir olunması tələb olunur.
Parametrlər
Formal parametrlər
Faktik parametrlər
52