Salam. İnşAllah bu
gündən etibarən bir neçə yazıda asandan mürəkkəbə doğru müəyyən alqoritmləri
izah etməyə və hər hansı bir məsələnin kompüterdə həlli zamanı nələrə diqqət
etməli olduğumuz haqqında bəzi məsələləri qeyd etmək istəyirəm. Alqoritm
haqqında nəzəri məlumatlarla tanış olduqdan sonra növbəti yazıda C# proqramlaşdırma dili ilə bəzi alqoritmlərlə tanış
olacağıq.
Alqoritm – qarşıya qoyulan
məsələni həll etmək üçün yerinə yetirilməsi vacib olan əməliyyatlar
ardıcıllığıdır.Latınca qayda-qanun deməkdir. Alqoritm 783- 850-ci illərdə Xorezmdə (indiki Özbəkistanda şəhər) yaşamış 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.
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
Biz bunları alqoritm olaraq adlandırmasaqda gündəlik fəaliyyətlərimizdə də müəyyən alqoritmləri icra edirik. Yemək bişirərkən, maşın sürərkən , yolun qarşı tərəfinə keçərkən bu cür işləri müəyyən ardıcıllıq ilə yerinə yetirdiyimizdən və sonlu bir fəaliyyət olduğundan bunlara alqoritm deyə bilərik. Deməli nizam və sonluluq olan istənilən bir hərəkəti alqoritmik şəkildə təsfir etmək mümkündür. Nizam sözündən qəsdimiz yalnız bir mənalı olaraq xətti şəkildə bir hadisənin təkrarlanması deyil. Məlum ehtimallı bir hərəkətdə bu nizama daxildir. Necə ki yuxarı doğru atılan bir qəpiyin 2 üzündən birinin düşmə ehtimalı kimi. Bu cür hadisələrin müxtəlifliyini nəzərə alaraq alqoritimləri ümumi olaraq 3 qrupa bölmək olar.
Xətti alqoritmlər – Ardıcıl şəkildə heç bir istisnanın olmadığı alqoritimlərdir. Üçbucağın sahəsinin hesablanmasını nümunə göstərmək olar. (Şəkil 1)
Şəkil 1
Budaqlanan alqoritmlər – Məsələnin ardıcıllığının müəyyən şərtlər daxilində dəyişdiyi alqoritimlərdir. Kvadrat tənliyin köklərinin tapılması və ya piyadanın işıqfordan keçməsi bu cür alqoritimdir. . (Şəkil 2)
Şəkil 2
Dövrü alqoritmlər – Hər hansı bir hadisənin və ya hesablama prosesinin təkrar-təkrar icra olunması ilə gedən alqoritimlərdir. Nümunə kimi 1-dən 100 kimi ədədlərin cəminin hesablanması, faktoriyalın hesablanması və ya birinin sizə “HƏƏƏ” deyənə qədər onun adını təkrar etməniz . (Şəkil 3)
Şəkil 3
Şəkil 4
İstifadə olunan qaynaqlar : (https://az.wikipedia.org/wiki/Alqoritm)
Etiketlər:
Algorithm