İ N F O R M A T İ K A
____________________________________________________________ 161
F Ə S İ L VIII. ALQORİTM NƏZƏRİYYƏSİ
ALQORİTMLƏŞMƏNİN ƏSASLARI VƏ
PROQRAMLAŞDIRMA. MƏSƏLƏLƏRİN KOMPÜTERDƏ
HƏLLİ MƏRHƏLƏLƏRİ
İnsanın zehni fəaliyyətinin, o cümlədən hesablama işlərinin formalaşdırılması
problemi qədim zamanlardan alimləri məşğul etmişdir. Əsas məsələ hesablama
prosesini elə elementar əməllərə bölməkdən ibarətdir ki, hər bir əməl mütləq
şəkildə formal təyin edilmiş olsun və hər əməldən sonra hansı əməlin icra
ediləcəyi birmənalı bəlli olsun. Bu əməllər ardıcıllığına məsələnin
həll alqoritmi
deyilir. Məsələnin alqoritminin qurulmasına məsələnin alqoritmləşdirilməsi deyilir.
Alqoritm anlayışı informatikanın mərkəzi anlayışıdır. Alqoritm sözü IX əsrdə
yaşamış özbək riyaziyyatçısı əbu Abdulla Məhəmməd ibn Musa əl-Xörəzmin adı ilə
bağlıdır. Alqoritmi alqoritm icraçısı (operator) reallaşdırır.
Özbək riyaziyyatçısı əbu Abdulla Məhəmməd ibn Musa əl-Xörəzmi, əsərindən bir
parça və onun haqqında yazılmış əsər
QEYD:
Alimin yaşadığı Xörezm şəhəri Amu-Dərya çayı sahilində yerləşir.
Alim öz əsərində hind riyaziyyatını ətraflı şərh etmişdi. Üç yüz il sonra (1120-ci
ildə) alimin əsərini latın dilinə tərcümə edirlər. Kitabı avropa alimləri “Alqoritmi de
numero İndorum” (“Hind hesablamaları üçün alqoritm”) adlandırırlar. Kitab uzun
illər ilk dərslik kimi Avropanınn elmi və tədris müəssisələrində istifadə olunur. Bu
İ N F O R M A T İ K A
____________________________________________________________
162
ərəfədə hind rəqəmlərindən ərəb ölkələrində də istifadə etməyə başlayırlar.
Məhəmməd əl-Xörezminin riyazı məsələləri tənliklərin köməkliyi ilə həll
etmək üçün yazdığı kitab təxminən 850-ci ildə çap olunmuşdu. Alim kitabı “Kitabi
əl-Cəbr” adlandırmışdı. Kitab bu sahəni araşdıran elmin Cəbr adlandırılmasının
təməlini qoyur.
Alqoritmin əsas xüsusiyyəti qoyulmuş məqsədə çatmaqdır. Maşın üçün
yazılmış alqoritm
proqram
adlanır. Kompüter proqramla işləyir. Proqramı
olmayan məsələnin maşında həlli mümkün deyil.
Müasir dövrdə kompüterlərin saniyədə milyardlarla əməliyyatlar aparmasına
baxmayaraq məsələlərin kompüterdə həlli prosesi hələ də mürəkkəb bir proses
olaraq yenə də qalmadadır. Bu prosesdə istifadəçi kompüterlə dialoq rejimində
işləyir, yəni kompüterlərin tərkibində səsi və qrafikanı emal edən qurğuların
olmasına baxmayaraq istifadəçi məsələnin şərtini oxumaq və ya qrafiki şəkildə
göstərməklə qarşıya çıxan bütün məsələlərin həllini tamamilə kompüterin köməyi
ilə həll edə bilmir.
Kompüterdə məsələlərin həlli aşağıdakı mərhələlər ardıcıllığı ilə aparılır:
məsələnin qoyuluşu;
həll alqoritminin seçilməsi və alqoritmin blok-sxem təsviri;
alqoritmin hər hansı bir alqoritmik dildə (Paskal, TurboPaskal, Fortran,
Beysik və s.) təsviri (ilkin modulun yaradılması);
ilkin modulun translyasiyası (maşın dilinə çevrilməsi), redaktə edilməsi və
yükləyici modula çevrilməsi;
yükləyici modulun kompüterdə icrası, nəticələrin alınması və təhlili.
Müəyyən tip məsələlərin həllində bu mərhələlərdən bəziləri yerinə
yetirilməyə də bilər (məsələn, sistem proqram təminatının yaradılmasında
məsələnin riyazi təsviri bir çox hallarda tələb olunmur).
Göstərilən mərhələlər bir-biri ilə əlaqəlidir. Məsələn, nəticələrin təhlili
proqramda və hətta məsələnin qoyuluşunda müəyyən dəyişikliklərin aparılmasına
səbəb ola bilər. Bu cür dəyişikliklərin sayını azaltmaq üçün hər mərhələdə sonrakı
mərhələlərin tələblərinin mümkün qədər nəzərə alınması lazımdır. Bəzi hallarda
müxtəlif mərhələlər arasındakı əlaqələr o qədər sıx olur ki, (məsələnin qoyuluşu
ilə həll üsulunun seçilməsi, alqoritmin və proqramın yaradılması mərhələləri və s.)
onları bir-birindən ayırmaq çətin olur.
Məsələnin qoyuluşu
. Məsələ həllinin tam və dəqiq ifadə olunması həllin
sonrakı mərhələlərinin kompüterdə icrası üçün müvəffəqiyyətli zəmin yaradır. Bu
mərhələdə aşağıdakıları yerinə yetirmək lazımdır:
məsələ həllində iştirak edəcək verilənlərin, massivlərin siyahısı tutulmalı,
kəmiyyətlərin ölçüsü, tip və dəqiqliyi təyin olumalıdır;
məsələ həllində iştirak edəcək dəyişənlərin dəyişmə sərhədləri, təqribi
olaraq başlanğıc və son şərtləri, həmçinin çıxışa ötürüləcək dəyişənlərin
tipi və ölçüsü təyin edilməlidir.
İ N F O R M A T İ K A
____________________________________________________________ 163
Bu mərhələdə müəyyən sinif məsələlər üçün onların formalaşdırılması da
aparılır, yəni tədqiq edilən prosesin baxılan halda əlverişli olan formal dildə,
formatda riyazi modeli qurulur, ədədi hesablama üsulu seçilir və ya yaradılır. Bu
və ya digər həll üsulunun seçilməsi məsələlərin həllinə qoyulan tələblərdən
asılıdır.
Həll alqoritminin yaradılması
. Bu mərhələdə seçilən həll üsuluna uyğun
məsələnin həll alqoritmi tətbiq edilir. Məsələnin həlli ayrı-ayrı müstəqil bloklara
bölünür və həmin blokların yerinə yetirilmə ardıcıllığı təyin edilir. Nəticədə
alqoritmin blok-sxemi qurulur.
Proqramlaşdırma dilinin seçilməsi və ilkin proqramın yaradılması
.
Hazırda proqramlaşdırma üçün müxtəlif dillər mövcuddur. Həll olunan məsələnin
xarakterinə, tətbiq olunan kompüter üçün mövcud olan translyatorlara,
proqramçının hazırlıq səviyyəsinə görə proqramlaşdırma dili seçilir. Sonra isə
məsələnin həll alqoritmi əsasında seçilən dildə proqram yazılır. Ona ilkin modul da
deyilir.
İlkin proqramın maşın dilinə çevrilməsi və sazlanması
. Bildiyimiz
kimi, kompüter yalnız "öz" dilində ifadə olunan proqramı icra edir. Kompüterin
"öz" dili əvvəlcədən təyin edilmiş əmrlərdən ibarətdir. Kompüter dilində proqram
isə alqoritmə uyğun olaraq yazılmış əmrlər ardıcıllığıdır. Bu mərhələdə
proqramlaşdırma dilində yazılmış ilkin proqram kompüter dilinə çevrilir. Bu
translyator (interpretator və ya kompilyator) adlanan proqram vasitəsilə yerinə
yetirilir. Alqoritmik dillərin translyatorları maşın proqramlarının alınması prosesini
avtomatlaşdırır.
İlkin proqramda buraxılmış morfoloji və sintaksis səhvlər aşkar edilib,
proqramçıya çatdırılır. Səhvlər aradan qaldırıldıqdan sonra tərcümə prosesi davam
etdirilir və kompüter dilində proqram alınır. Bu proqrama mütləq və ya işçi
proqram deyilir.
Sonra işçi proqramın düzgün işləməsini yoxlamaq məqsədilə yoxlama
misalında o sınaqdan keçirilir. Proqramdakı məntiqi səhvlərin aşkarlanıb, aradan
qaldırılması prosesinə proqramın sazlanması deyilir.
İşçi proqramın icrası, nəticələrin alınması və təhlili.
Proqram
sazlandıqdan sonra ondan tətbiqi məsələnin həlli üçün istifadə etmək olar. Bu
zaman proqram müxtəlif ilkin verilənlər üçün bir neçə dəfə icra olunur. Alınmış
nəticələr mütəxəssis və ya məsələni qoyan istifadəçi tərəfindən təhlil olunur. Əgər
təhlil prosesində nəticələr istifadəçini təmin etmirsə o, yeni tələblər qoya bilər və
ya əvvəlki tələblərdə dəyişiklik də edə bilər. Bu halda yeni tələblərin
xarakterindən asılı olaraq məsələnin qoyuluşunda, alqoritmdə və ya proqramda
müəyyən dəyişikliklər edilir.