Alqoritm nezeriyyesi muhazireler


Alqoritmik dil

Kompyuterin bizə lazım olan işi görməsi üçün ona müvafiq proqramlar verilməlidir. Həmin proqramlar ciddi qaydalar əsasında yazılmalı və kompyuter üçün anlaşıqlı olmalıdır. Belə qaydalar toplusuna praqramlaşdırma dili deyilir. Praqramlaşdırma dilində yazılmış praqram qəbul edən kompüter onu hər hansı şəkildə çevirir, öz yaddaşına yerləşdirir, sonra isə həmin proqrama uyğun olaraq komandaları yerinə yetirməyə başlayır.

Çoxlu alqoritmik dil mövcuddur. Onların içərsində FORTRAN, ALGOL, PASCAL, BASİC, ADA, C, LOGO, PROLOG, JAVA, və s. daha popluyardır.

Alqoritm informatika və riyaziyyatın əsas anlayışlarından biridir. Alqoritm qoyulmuş məsələnin  həllinə nail olmaq üçün qabaqcadan müəyyənləşdirilən və yerinə yetirmək üçün mümkün icraçıya verilən sonlu sayda göstərişlər ardıcılığıdır. Alqoritmicrası alqoritmdə verilmiş göstərişləri yerinə yetirən mücərrəd, yaxud gerçək sistemdir. Alqoritmik dilin qaydaları proqramlaşdırma dillərinin qaydalarına əsaslanır. Buna görə də alqoritmik dilin öyrənilməsi gələcəkdə bizə proqramlaşdırma dilini öyrənməkdə kömək edəcək. Hər bir dil kimi alqoritmik dilin də öz sözlüyü olur. Bu sözlüyün əsasını icraçıya verilən komandaların yazılışında istifadə olunan sözlər təşkil edir. Bu sözlərin içərsində məhdud sayda sözlər var ki, onların mənası və tətbiq  olunma qaydası birdəfəlik və həmişəlik təyin olunub. Bu sözlərə xidməti sözlər, yaxud açar sözlər deyilir. Alqoritmin yazılışında xidməti sözlər seçdirilir (qalın şriftlə, rənglə, altından xətt çəkməklə) və adətən, qısaldılmış formada yazılır.

Aiqortmik dildə kəmiyyətlələr

Kompyuterdə bu alqoritmi tərtib edətkən uyğun informasiyanı yadda saxlamaq, dəyiçdirmək və ondan istifadə etmək lazım gəlir. Bunun üçün alqoritmik dildə kəmiyyətlərdən istifadə olunur. Kəmiyyət anlayışı riyaziyyat və fizikada olan anoloji anlayışdan  götürülmüşdür. Bunun səbəbi ondadaır ki, riyazi, yaxud fiziki məsələlərin həlli üçün alqoritm tərtib edərkən alqoritmik dilin kəmiyyətləri riyazi və fiziki kəmiyyətlərə uyğun olur. Hər bir kəmiyyətin adı və tpti olur. Kəmiyyətin adı (məs. n,m,d) alqoritmdə kəmiyyəti işarə etmək üçün nəzərdə tutulub. Alqoritm icra olunarkən hər bir kəmiyyətin qiyməti olur, yaxud bu və ya digər kəmiyyət təyin edilmiş olur. əgər kəmiyyəmtin qiyməti yalnız tam ədəd ola bilərsə, onda o, tam kəmiyyət (tam), istənilən həqiqi ədəd ola bilərsə, həqiqi kəmiyyət (həq) adlanır.

Alqoritm- Funksiyalar

Alqoritmik dildə təkcə ədədlərdən deyil, həm də cəbri ifadələrdən istifadə etmək olar. Alqoritmik dilin qaydaları imkan verir ki, alqoritmdə ədədlərin yazıla bildiyi hər yerdə istənilən cəbri ifadə yaza bilsin. Əgər alqoritimdə 13 ədədinin kvadrat kökündən istifadə etmək lazımdırsa, onda sqrt(13) yazılır. Başqa sözlə, alqoritmik dilin cəbri ifadəsində göstərilən funksiyalardan istifadə etmək lazım gələrsə, sadəcə, funksiyanın adı və mötərizədə onun arqumentləri yazılmalıdır. Alqoritmik dildə yeni funksiyalar yaratmaq və onlardan standart funksiyalar kimi istifadə etmək imkanı vardır. Bununçün funksiyanı hesablayan alqoritm, yaxud, sadəcə, alqoritm-funksiya yazmaq gərəkdir. Funksiyanı hesablayan alqoritm adi qaydada yazılır. O, alqoritmdən yalnız başlığınyazılış formasına  və xüsusi qiym xidməti sözünə görə fərqlənir. Funksiyanı hesablayan

Alq  həq s (arq həq t)

baş

qiym:=t**2/2

son

Alqoritm-funksiyanın “s”adından qabaqdakı həq xidməti sözü s funksiyanın qiymətinin həqiqi ədəd olmasını göstərir. Alqoritmin daxilində funksiyanın qiymətini işarə etmək üçün qiym xidməti sözündən istifadə olunur. Bu kəmiyyətin qiyməti alqoritmin icrası sona çatan  anda funksiyanın da qiyməti hesab olunur.

   Məsələnin kompüterdə həll olunma ardıcılığı.

Həll yolu alqoritmi məlum olan istənilən məsələni kompüterdə həll etmək mümkündür.Xarakterinə görə məsələləri aşağıdakı siniflərə bölmək olar.

-Elmi-texniki məsələr

-İqtisadiyyat-statistika məsələləri

-Informasiya-məntiqi məsələləri

-İdaretmə və modelləşdirmə məsələləri

Kompüterdə məsələlərin həll olunması aşağdakı mərhələlərdə apırılır.

1.Məsələnin qoyluşu

2.Həll olqoritminin yaradılması

3.Proqramlaşdırma dilinin seçilməsi və alqoritmə əsasən ilkin proqramın tərtibi.

4.Proqramın kopüterə daxil edilməsi və sazlanması

5.İlkin verilənlərin kompüterə daxil edilməsi nəticələrin alınması və təhlili

Müəyyən tip məsələlərin həllində bu mərhəllələrdən bəziləri olmaya da bilər.Məsələn sistem proqram təminatının yaradılmasında məsələnin riyazi təsviri tələb olunmur.

Göstərilən mərhələlər bir-birilə əlaqəlidirlər.Bəzi hallarda müxtəlif  mərhələlər arasında əlaqələr o qədər sıx olur ki onları bir-birindən ayırmaq çətin olur.

1.Məsələnin qoyluşu.Məsələnin müvəffəqiyyətli həlli onun düzgün qoyuluşundan çox asılıdır.Məsələnin qoyluşunda sadə hallarda aşağdakılar nəzərdə tutulur.İlkin verilənlərin siyahısı tipi dəqiqliyi ölçüləri başlanğıc və sərhəd sətirləri vəs.

Mühəndis hesabatlarında rast gələn əksər məsələlərin həlli üçün ədədi hesablama üsulları yaradılmışdır.Bəzi məsələlərin həlli üçün bir neçə üsul mövcüdr.Bu və ya digər həll üsulunun seçilməsi məsələnin həllinə qoyulan tələblərdən asılıdır.

2.Həll alqoritminin yaradılması.Bu mərhələdə seçiliş həll metoduna uyğun məsələnin həll alqoritmi tərtib 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ılığı təyin olunur.

Nəticədə alqoritmin blok sxemi qurulur.

3.Proqramlaşdırma dilinin seçilməsi və ilkin proqramın tərtibi.Hazırda proqlamlaşdırma üçün müxtəlif dillər mövcüddur.Həll olunan məsələnin xarakterinə komputerdə mövcud olan transyatorla proqramçının hazırlıq səviyyəsinə görə proqramlaşdırma dili

Alqoritmin analizi

    Alqoritmi analiz etməyin bir çox praktiki səbəbləri vardır.Bunlardan biri alqoritmin  yerinə yetirilməsinə lazım olan maşın vaxtının və yaddaş sahəsinin qiymətləndirilməsindən ibarətdir.Maşın vaxtı və yaddaş sahəsi EHM-in ən bahalı ehtiyatlarıdır.Odur ki,verilmiş alqoritmini tərtib edərkən əvvəlcə onun üçün lazım olan maşın vaxtının və yaddaş sahəsinin qiymətləndirilməsi vacibdir.Əgər yaddaş sahəsi və maşın vaxtı üçün kobod qiymətləndirmə alınarsa,onda yeni və daha səmərəli alqorimin işlən məsi məqsədəuyğun  olar.Alqorimin yaxşı analiz edilməsi nəticəsində eyni bir məsələnin həlli üçün alqoritmlər sinfindən daha effektiv alqoritm müyyən etmək olar.Alqoritmləri analiz etmək üçün aşağıdakı əlamətlərdən istifadə etmək olar.

Tutaq ki,A-hər hansı bir sinifdən olan məsələləri həll etmək üçün olan alqoritmdir,n isə bu sinifdən olan məsələlərin ölçüləridir.Məsələn,n-ardıcıllıqlı elementlərin sayı,matrisin və ya vektorun elementlərinin sayı,verilmiş cümlədə simvolların sayı və s.ola bilər.fA(n) ilə n ölçülü məsələni A alqoritmi ilə həll edən zaman tələb olunan əsas əməliyyatların(toplama,müqayisə,çıxma və s.)maksimal sayını işarə edək.Oxşar olaraq, gA(n) ilə n ölçülü məsələnin A alqoritmi ilə həll edən zaman tələb olunan yaddaş sahələrini göstərən ədədlərdən ən böyüyünü işarə edək.fA(n) və gA(n) funksiyalarına işçi funksiyalar deyilir.Bu funksiyalara uyğun olaraq A alqoritminin  vaxt və tutum mürəkkəbliyi deyilir.

Formal Dillər Nəzəriyyəsi.

      İlk kompüterlər üçün proqramlar ikilik,yaxud səkkizlik kodlarda təsvir olunmuş maşın komandaları ardıcıllığı şəklində yazılırdı.Kompüter proqramlarının yazılışı heç bir ikimənalılığa imkan verməyən,ciddi qaydalara tabe olmalıdır.Kompilyator isə onları səhvsiz olaraq maşın komandaları ardıcıllığına çevirməlidir.Burada elmlərin ən dəqiqi olan riyaziyyatın köməyi olmadan keçinmək olmaz.Proqramlaşdırma dillərinin aid olduğu süni dillərdə düzgün qurulmuş cümlələr çoxluğu formal riyazi konstruksiyaların köməyilə əvvəlcədən təsvir oluna bilər.Ona görə də,belə dilləri formal dillər adlandırırlar.

Əgər aşağıdakılar verilmişdirsə,formal dil müəyyən olunmuş hesab olunur:

1)təkcə hərfləri deyil,verilmiş dilin bütün simvollarını,o cümlədən başlıq və durğu işarələrini də özündə birləşdirən əlifba;

2) dilin əlifbasından olan simvolların verilmiş zəncirinin düzgün qurulub,qurulmamasını müəyyən etməyə imkan verən meyarlar.Bu meyarların necə verilməsinin mənası yoxdur.Ən sadə halda sadəcə olaraq bütün mümkün zəncirləri sadalamaq olar.Yaxud oxşar zəncirlərin“yaradılması”qaydaları toplusunu tərtib etmək olar.Belə qaydalar toplusu qrammatika,dilin zəncirlərinin quruluşu isə sintaksis adlanır.

Süni intellekt dilləri

Əsrlər boyunca insan ədədlər üzərində əməliyyatlar aparmış və eyni zamanda onların yazılış formasını,hesablama üsullarını təkmilləşdirmiş,bu əməliyyatları asanlaşdırmaq üçün daha mürəkkəb texniki qurğular fikirləşmişdir.Lakin çox az insan hesablamanı daha geniş başa düşmək haqqında fikirləşmişdir.Məsələn,böyük ingilis filosofu Tomas Qobbas(1588-1679)özünün “Elementa philosophiae”əsərində yazmışdır:“Fikirləşmək lazım deyildir ki,hesablama ancaq ədədlərlə aparıla bilər”.ХIХ əsrdə Ada Lavleys demişdir:“Maşın ədədi qiymətlər kimi hərfləri və digər ümumi xarakterli simvolları da nizamlaya,kombinasiya edə bilər.Mahiyyətcə,uyğun şərtlər ödənildikdə o,nəticələri cəbri formada da verə bilər.”

Lakin ilk kopüterlərin meydana gəlməsinə qədər belə ideyalar praktiki həyata keçməkdən  yetərincə uzaq idi.Kompüterlər də ilk vaxtlar əsasən ədədlər üzərində əməliyyatlar üçün istifadə olunurdu,baxmayaraq ki,Konrad Süze artıq 1945-ci ildə şahmat oyunu üçün proqram yazmışdı.

Alimlər çox tezliklə kompüterlərin ədədi olmayan verilənlərin emalı üçün tətbiq olunmasının mümkünlüyü haqqında ciddi şəkildə düşünməyə başladılar.Söhbət ilk növbədə süni intellekt sahəsindən olan məsələlər haqqında gedirdi;onlara insan şüurunda gedən proseslərin modelləşdirilməsi,teoremlərin avtomatik isbatı,robotun hərəkətlərinin planlaşdırılması və digər proseslər aid edilirdi.Onların həlli üçün simvollarlı hesablmalardan(ədədlər deyil,simvollar emal olunan)istifadə olunması xarakterikdir.

FORTRAN,yaxud Algol-60 kimi erkən proqramlaşdırma dilləri simvolların emalı məsələlərinin həlli üçün uyğunlaşdırılmamışdır.Lazım olan xüsusiyyətlərin bu dillərə daxil edilməsi cəhdləri(məsələn,İBM korporasiyası 1958-ci ildə FORTRAN dilinin genişlənməsini-FLPL dilini yaratdı)isə uğurlu olmadı. Buna görə də süni intellekt məsələlərinin həlli üçün xüsusi dillərin yaradılmasına başlanıldı.

Proqramlaşdirmanin mahiyyəti

Proqramlaşdirma dili-alqoritmin EHM tərəfindən icrasi uçun nəzərdə tutulan təsvir formasidir.Sadə danisiq dilində sözlərin yalniz bir ve özu de deqiq mənasi olur.Her bir proqramlaşdirma dilinin sintaksiz adlanan qramatikasi vardi.Proqrama daxil olan operatorlar dilin sintaksisine uygun deyilsə,bu  peratorun hec bir mənasi olmur.

Proqram məsələnin həlli ucun EHM-ni yerinə yetirəcəyi əməliyyatlar arcilliginin təsviridir.Bu əmeliyyatlar ardicilliginin istifadesi EHM-ə proqramlaşdirma dili vasitəsilə verir.EHM-ə verilen əmirlər ardicilligi son dərəcə dəqiq ve aydin olmalidir.

Proqramlaşdirmada  belə bir xususi hali da nəzərə almaq lazimdir ki,əgər məsələnin həlli ucun alqoritmin məlum deyildirsə,bu məsələnin proqramlaşdirilmasinin mənasi olmur.

Umumiyyətle,her bir məsələnin komputerdə helli aşagidaki mərhələlərdən ibarətdir:

  1. Məsələnin həll alqoritmin tərtibi;
  2. Proqramin tertibi;
  3. Proqramin komputere(yaddaşa)daxil edilmesi;
  4. Proqramin sazlanmasi;
  5. Verilənlərin maşina daxil edilməsi və proqramin icrasi.

Mutəxəsislər tezliklə başa duşdulər ki,əmrlərin yazilmasi və proqramin tətibi ucun şərti işarələr sistemi yaratmaqla,maşin kodunu tərtib olunma prosesini avtomatlaşdirmaq mumkundur.

01 kodu ile göstərilən əmri asagidakı kimi yazmaq olar.

c=a+b

bu ifade ilə yuxarıda sözlə təsvir edilmis butun informasiya tam öz əksini tapmısdır:yəni “musbət” isarəsi toplamanı “bərabərlik” isarəsi mənsub etməni,latin hərifləri isə yaddasin xanalarında saxlanılan ədədlərə uyqun dəyisənləri gostərir.

Komputerlerde yerine yetirilen sozle tesvir edilmis butun informasiya tam oz eksini tapmisdir:yəni “musbət” isarəsi toplamani “bərabərlik” isarəsi mənsub etməni,latın hərfləri isə yaddaşınxanalarında saxlanılan ədədlərə uyğun dəyisənləri göstərir.

Komputerlərdə yerinə yetirilən daha murəkkəb əməliyyatları buna oxşar şəkildə yazmaq olar.Amma məsəsləyə bu cur yanaşmaqda aşağıdakıları nəzərə almaq lazımdır:

–          əmrlərin yazılmasında istifadəçi uçun daha aydın şərti isarələr sistemi

–          yaratmaq;

–          bu əmrləri maşının başa duşəcəyi dilə çevirmək uçun proqram yaratmaq.

Beləliklə,yeganə proqram çevricisindən istifadə etməklə proqramlaşdırma dillərində istənilən proqramı yazmaq olar(yəni hər bir komputer uçun Proqram yazmaq lazım gelmir).proqramlasdırma dilində əmrlər çox vaxt-operator,,təlimat və ya metin adlanir.Hal-hazirda maşin kodundan istifade olunmur və komputer ucun proqram hər hansi proqramlaşdirmada dillerin birinde tertib olunur.Proqramlaşdirma dillerinin cox olmasina baxmayaraq,hamisi ucun bir qayda olaraq,verilenlerin tesviri,hesab operatorlari,dovrun təşgili vəı idarəedici vasitələr,informasiyanin daxil və xaric olunma vasitələri ilə temin olunurlar.

Obyekyonlu proqramlasdirma

Obyekyonlu proqramlasdirmanin bir cox vasitələri Simula-67 dilindən goturulmuşdur.Proqramlaşdirmanin obyekyonlu  uslubu obyet anlayişina əsaslanir,mınasi isə”obyekt=verilınlır+prosedurlar”dusduru ilə ifadə olunur.Hərbir obyekt ozundə verilənləri strukturunu birləşdirir və onlara muraciəti isə verilənlərin emal prosesturu ilə mumkun olur ki,buda metod adlanir. 1983-cü ildə C-nin siniflərlə variantı, bir az sonra C yarandı.

1990-cı ildə Sun korporasiyasının əməkdaşı D.Qoslinq C-un əsasında obyektyönlü Oak dilini yaratdı. Bu dilin əsas üstünlüyü müxtəlif tip qurğuların qarşılıqlı şəbəkə əlaqəsinin təminidir. bu dilin İnternetdəki yeni versiyası Java adlandı. İlk brouzer Sun korporasiyasının proqramçısı P,Nafton tərəfindən yaradılaraq, HotJava adını alıb. 1995-ci ilın yanvarından Java İnternetdə geniş istifadə olunur. Java və C dilləri arasında prinsipal fərq ondan ibarətdir ki, birinci dil interpretasiya, ikincisi isə komkompilyasiya olunur. Dillərin sintaksisi praktiki olaraq üst-üstə düşür. Obyektyönlü vasitə imkanı nöqteyi-nəzərincə Java dilinin C-ə nəzərən bir sıra üstünlükləri var.

Obyektyönlü proqramlaşdırma ideyası bir çox universal prosedur dillərdən də istifadə olunur. Məsələn, Pascal proqramlaşdırma dilinin 5.5 versiyasından başlayarq sistemə xüsusi obyektypnlü proqramlaşdırma kitabxanası daxil edilib. Son zamanlar isə bir çox proqramlar, xüsusən obyektyönlü vizual proramlaşdırma sistemlərində reallaşdırılır. Obyektyönlü vizual proqramlaşdırma sisteminə Vizual Basic, Delphi, C, Vizual C –lı aid etmək olar.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: