Alqoritm
və proqram anlayışı.
Gündəlik həyatımızda hər hansı bir işi icra edərkən bir
sıra qayda və qanunları yerinə yetiririk. Bir misala baxaq. Tutaq
ki, biz kofe hazırlamaq istəyirik. Onda biz, ardıcıl aşağıdakı
işləri yerinə yetirməliyik.
-
Suyu qaynadırıq;
-
Qaynar suyu bir stəkana tökürük;
-
Stəkana lazımı qədər kofe tökürük;
-
Lazımı miqdarda şəkər tozu əlavə edib qarışdırırıq;
Dörd
bənddən ibarət bu hərəkətlər ardıcıllığı kofe
hazırlamaq alqoritmidir.
Alqoritm
–
latınca qayda-qanun deməkdir. Alqoritm sözü IX əsrin məşhur
özbək riyaziyyatçısı Məhəmməd İbn Musa əl-Xarəzminin (yəni
Xarəzmli Musa oğlu Məhəmməd) adının latın hərflərilə olan
“alqoritmi” yazılışıyla bağlıdır. Əl-Xarəzminin yazdığı
traktatın XII əsrdə latın dilinə tərcümə olunması sayəsində
avropalılar mövqeli say sistemi ilə tanış olmuş, onluq say
sistemini və onun hesab qaydalarını alqoritm adlandırmışlar.
Ümumiyyətlə,
alqoritm-verilmiş məsələnin həlli üçün lazım olan
əməliyyatları müəyyən edən və onların hansı ardıcıllıqla
yerinə yetirilməsini göstərən formal yazılışdır.
Hesablama
maşınlarının əsas fərqləndirici xüsusiyyətlərindən biri
də onun proqramla idarə olunmasıdır. Yəni, istər sadə, istərsə
də mürəkkəb məsələni maşının həll etməsi üçün proqram
tərtib edilməlidir.
Proqram
-
maşının addım-addım yerinə yetirəcəyi təlimatlar və yaxud
əmrlər toplusudur. Hər bir proqram tərtib edilərkən müəyyən
bir alqoritmdən istifadə edilir. Yəni, proqram hər bir alqoritmi
maşının başa düşəcəyi formada ifadə edir. Başqa sözlə
proqram
– maşının girişinə verilən informasiyaları çıxış
informasiyalarına çevirən, xüsusi şəkildə tərtib olunmuş
sonlu sayda ardıcıl əmrlərdən ibarət alqoritmdir.
3.2.
Alqoritmin xassələri. Məsələnin
maşında həlli üçün tərtib edilən alqoritm bir çox şərtləri
ödəməlidir. Bu şərtlərə alqoritmin xassələri deyilir. Həmin
xassələr aşağıdakılardır:
-
Alqoritm sonlu sayda mərhələdən sonra qurtarmalıdır. Buna, alqoritmin sonluluq xassəsi deyilir.
-
Alqoritmin hər bir addımı dəqiq və birqiymətli təyin olunmalıdır. Bu alqoritmin müəyyənlik xassəsidir.
-
Alqoritmin müəyyən sayda giriş qiymətləri (məsələnin başlanğıc şərtləri) olmalıdır. Bu şərtlər proqram icra olunmamış və ya olunduqca maşına daxil edilə bilər.
-
Alqoritmin yerinə yetirilməsi nəticəsində giriş qiymətlərindən asılı olan bir və ya bir neçə çıxış qiymətləri alınmalıdır.
-
Alqoritm sadə və səmərəli olmalıdır, yəni alqoritmin nəticəsi (cavabı) mümkün qədər sadə əməliyyatlar vasitəsilə və ən qısa yolla alınmalıdır.
-
Alqoritm ümumi olmalıdır, yəni müəyyən məsələ üçün tərtib olunmuş alqoritm, həmin tipdən (sinifdən) olan bütün məsələlər üçün yararlı olmalıdır. Bu alqoritmin kütləvilik xassəsidir
3.3.
Alqoritmin təsvir vasitələri. Alqoritmi
mümkün qədər əyani şəkildə göstərmək üçün aşağıdakı
təsvir vasitələrindən istifadə olunur:
-
Adi dildə;
-
Blok-sxemlə;
-
Alqoritmik dildə.
1.
Alqoritmin adi dildə təsviri (nəqli). Bu zaman əməliyyatlar,
icra olunacaq hərəkətlərin nəqli şəkildə ardıcıl
sadalanması kimi verilir. Məsələn, kofenin hazırlanmasını
ifadə edən alqoritmin təsviri buna misal ola bilər.
2.
Alqoritmin blok-sxem təsviri. Mürəkkəb alqoritmlərin təsviri
zamanı blok-sxemlərdən istifadə olunması daha geniş
yayılmışdır, çünki bu halda alqoritmin blok-sxem şəklində
təsviri daha əyani olur. Bu zaman, adətən alqoritmin bir addımına
bir blok uyğun olur. Lakin bir blokda bir neçə eyni tipli mərhələ
və ya bir mərhələ bir neçə blokda təsvir oluna bilər. Bloklar
standart işarələr şəklində ifadə olunur və bir-birləri ilə
şaquli və ya üfüqi xətlərlə birləşdirilir. Birləşdirici
xətlərin uclarında istiqaməti göstərən ox işarəsi qoyulur.
Alqoritmin
blok-sxem vasitəsilə təsviri zamanı istifadə olunan əsas
standart simvollar aşağıdakılardır:
-
proqramın (alqoritmin) başlanğıcı və sonu;
-
giriş-çıxış əməliyyatları;
-
hesablama bloku;
-
keçid (budaqlanma);
-
çapetmə; və s.
3.
Alqoritmin proqramlaşdırma dili vasitəsilə təsvir edilməsi
(alqoritmik dildə).
Alqoritmin
proqramlaşdırma dilində təsviri, maşının icra edəcəyi hər
bir kiçik əməliyyatın müəyyən əmrlərlə göstərilməsindən
ibarətdir. Proqramlaşdırma dili vasitəsilə təsvir çox dəqiq
olmalıdır, çünki maşın ancaq ona verilmiş proqramdakı əmrləri
icra edə bilir. Çox vaxt proqramı yazmamışdan əvvəl məsələnin
həll alqoritminin blok-sxemini qururlar, sonra isə ona uyğun
proqram yazılır. Alqoritmin proqramlaşdırma dili vasitəsilə
təsviri onun ixtiyari proqramlaşdırma dilində yazılmasının
mümkünlüyünü göstərir. Yəni tam kvadrat tənliyin alqoritmini
istənilən proqramlaşdırma dili vasitəsilə təsvir edə
(proqramlaşdıra) bilərik. Proqramlaşdırma dilləri haqqında bir
qədər sonra məlumat veriləcək. Tam kvadrat tənliyin həll
alqoritminin (a-A, b-B, c-C olmaqla) FORTRAN dilində yazılışını
belə göstərmək olar:
PROGRAM
TKT
READ
(5,1) A,B,C
1 FORMAT
(3F8.2)
D=B**2-
4. *A*C
İF
(D=O) 2,3,4
2
WRİTE
(6,10)
10
FORMAT (2X,”həlli yoxdur”)
GO TO 11
3 X= -
B/(2. *A)
WRITE
(6,20) X
20
FORMAT (2X,F10.4)
GO TO 11
4 X1=
-B+SQRT (D)
X2=
-B+SQRT (D)
WRITE
(6,30) X1,X2
30
FORMAT (2X, F10.4 , 5X, F10.4)
11
CONTİNUE
END
3.4.
Alqoritmin tipləri.
EHM- də müxtəlif tipli məsələləri həll edərkən əsasən üç
tipli alqoritmlərdən istifadə olunur: xətti
(düz), budaqlanan və dövri.
Xətti
alqoritmlər
sadə
hesablama prosesini ifadə edən bir neçə ardıcıl əməliyyatlardan
ibarət olur və onlar yazıldığı ardıcıllıqla da icra olunur.
Misal
1.
İkiməchullu birdərəcəli iki tənlik sisteminin həlli
alqoritminin blok-sxemini tərtib etməli.
Kramer
qaydasına görə D=
,
Budaqlanma
alqoritmlərin
tərkibində bir və ya bir neçə məntiq mərhələsi olur. Bu
mərhələdə müəyyən kəmiyyətlərin hər hansı bir şərti
ödəyib-ödəmədiyi yoxlanılır və ona uyğun olaraq sonrakı
gedişin istiqaməti seçilir. Yəni nəzərdə tutulan şərt
ödənilirsə, bir istiqamətə, həmin şərt ödənilmirsə, başqa
istiqamətə doğru hərəkət edilir. Beləliklə, alqoritmdə
budaqlanma baş verir.
Misal
2.
tam kvadrat tənliyin həll alqoritminin blok-sxemini qurun. (Sxem
2).
Proqramlaşdırmada
tez-tez eyni əməliyyatlar qrupunun çoxlu sayda təkrar olunması
lazım gəlir. Bu halda dövr
alqoritmindən istifadə olunur. Dövrlər sadə və mürəkkəb
olur. Sadə dövrlü alqoritmin bir dövrü olur. Əgər hər hansı
bir alqoritmdə bir neçə daxili dövr iştirak edirsə, onda belə
dövrlərə mürəkkəb dövr deyilir. Mürəkkəb dövrləri əmələ
gətirən sadə dövrlər kəsişə bilməz.
Misal
3.
cəmini hesablayan alqoritmin blok-sxemini qurmalı. (Sxem3).
Misal
4.
y=
ifadəsini hesablayan alqoritmin blok-sxemini qurmalı. (Sxem 4).
Yaxsi izah olunub ama misallar azdi
YanıtlaSilAlqoritim mueyenli xasseleri daha aciq izah olunsaydi ela olardi pis deil xosuma geldi
YanıtlaSil