8 Haziran 2015 Pazartesi

Alqoritm

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.
  1. Suyu qaynadırıq;
  2. Qaynar suyu bir stəkana tökürük;
  3. Stəkana lazımı qədər kofe tökürük;
  4. 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:
  1. Alqoritm sonlu sayda mərhələdən sonra qurtarmalıdır. Buna, alqoritmin sonluluq xassəsi deyilir.
  2. Alqoritmin hər bir addımı dəqiq və birqiymətli təyin olunmalıdır. Bu alqoritmin müəyyənlik xassəsidir.
  3. 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.
  4. 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.
  5. 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.
  6. 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:
  1. Adi dildə;
  2. Blok-sxemlə;
  3. 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= ,

, olur. (Sxem 1).

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).

2 yorum:

  1. Yaxsi izah olunub ama misallar azdi

    YanıtlaSil
  2. Alqoritim mueyenli xasseleri daha aciq izah olunsaydi ela olardi pis deil xosuma geldi

    YanıtlaSil