Microsoft Word Alqoritm ilk 5 muhazire docx



Yüklə 234,89 Kb.
Pdf görüntüsü
səhifə5/10
tarix14.10.2017
ölçüsü234,89 Kb.
#4696
növüMühazirə
1   2   3   4   5   6   7   8   9   10

Bu və ya digər proqramlaşdırma dilinin əsasını müəyyən ideya təşkil edir. bu ideya uyğun 

proqramın stilinə  təsir edir. Tarixən birinci struktur proqram ideyası var idi. Proqramçı hansı 

proseduralardan  istifadə edəcəyinə qərar verməli idi, sonra isə bu prosedurların realizasiyası üçün 

ən yaxşı alqoritm seçməli idi. Prosedur proqramlaşdırmaya tipik misal hələ  də mövcudluğunu 

saxlayan Fortran dilidir.  Prosedur proqramlaşdırmanın çox istifadəsi geniş proqramlaşdırma 

kitabxanalarının yaranmasına gətirdi. Onlar kiçik proseduralardan ibarət idi.  

Hesablama riyaziyatının inkişafı ilə prosedurlarla yanaşı verilənlərin təşkili istiqamətində də 

inkişaf baş verdi.  Effektiv mürəkkəb proqramların hazırlanmasında verilənlərin düzgün istifadəsinə 

nəzarət olmalıdır. Bu vaxt Algol-60, Pascal, Modula-2, C dilləri yarandı. Bu dillərdə verilənlərin 

tiplərinin strukturu inkişaf etdirilib. Bu inkişafın məntiqi nəticəsi modul roqramlaşdırma oldu. 

Burada verilənlər və prosedurları modulun içərisində gizlətmək mümkün idi.  

Simula -67 –dən başlayaraq yeni obyekt yönümlü proqramlaşdırma istifadə olunmağa 

başladı. Onun əsas ideyası verilənlərlə bağlı proseduraları vahid şəkildə -obyektdə birləşdirməkdir. 

Nəticədə verilənlər və proseduralar öz müstəqil qiymətlərini iitirirlər. Onların  əsas xüsusiyyəti 

inkapsulyasiya (birləşdirmədir). Yəni verilənlərin işlənmə alqoritmləri birləşdirilir. OYP  modul 

proqramlaşdırmanın yeni bir səviyyəsidir.  Burada modullar təsadüfi deyil onların mənalarına əsasən 

birləşdirilir, birgə istifadə edilir. OYP-ni riyazi hesablamalarda istifadə etmək mənasızdır. OYP  

əsasən mürəkkəb strukturlu dialoq rejimində işləyən proqramların yaradılmasında istifadə edilir. 

Verilənlər obyektin sahələri, alqoritmlər onun metodları adlanır. Inkapsulyasiya nəticəsində 

obyektlər ətraf mühitdən maksimal dərəcədə izolyasiya edilir. Obyektlərdə birləşdirilən alqoritm və 

verilənlərin modifikasiyası ümumiyyətlə proqramın korlanmasına gətirir. Ümumiyyətlə, yaxşı olar 

ki, qlobal dəyişənlərdən istifadə olunmasın. Varislik prinsipində övlad valideynin xassələrinə malik 

olur, lakin özünün də yeni xassələri ola bilər. Polimorfizm qohum obyektlərin xassəsidir, yəni eyni 

valideyni olan obyektlərdə oxşar problemləri fərqli üsullarla həll etməkdir.  Övladda bu və ya digər 

alqoritmi dəyişmək üçün övladda eyni alqoritmi eyni adla verib, daxilində  dəyişiklik etmək 

lazımdır. Nəticədə eyni alqoritm müxtəlif cür işləyəcək. bu eəl polimorfizmdir.  

Pascalda həm də övladların metodlarını virtuallaşdırmaqla valideynlərin də onlara 

müraciətlərini mümkün etmək olar. Pascalda OYP-ni izah etmək üçün bir misala baxaq.  

Misal. Ekranda br sıra qrafik obyektlər yaradan (nöqtə, dairə, xətt, düzbucaqlı) və bu 

şəkilləri ekranda hərəkət etdirməyə imkan verən proqram yaratmaq tələb olunur.  

Şəkilləri ekranda sürüşdürmək üçün kursoru idarə edən klavişlər istifadə olunacaq: Home, End, 

Pgup, Pgdn və Tab ilə obyekti seçmək olar, Esc ilə proqramdan çıxmaq olar.  

Proqramın texniki realizasiyaı üçün iki standart kitabxana Crt və Graph modulları lazım 

olacaq.  



Obyektin yaradılması 

Turbo Pascalda obyektlərin yaradılması üçün üç ehtiyat sözdən istifadə olunur: object, constructor, 



destructor və üç standart  direktiv private, public və virtual


Obyektin təsviri üçün object sözündən aşağıdakı şəkildə istifadə edilir.  

Type Myobject = object 

{obyektin sahələri} 

{obyektin metodları} 

End; 

Əgər obyekt hansısa valideyndən törəyirsə, valideynin adı mötərizədə verlilir.  



Type  Toremeobject = object(Myobject) 

… ….  


End; 

İstənilən obyektin çoxlu sayda törəmələri ola bilər və bu ancaq bir valideynin törəmələri ola bilər və 

ierarxik ağac alınacaq.  Bizim məsələ üçün valideyn obyekt TGraphobject-dir və bütün digər 

obyektlər üçün  ortaq olan sahə və metodlar onun ətrafında birləşəcək: 

type 

tgraphobj=object 



private{obyektin sahələri  istifadəçidən gizlədiləcək} 

x,y:integer; {nişan nöqtəsinin kordinatları} 

color:word; {Fiqurun rəngi} 

public {obyektin metodları istifadəçiyə açıq olacaq} 

constructor Init (ax,ay:integer; acolor:word); {obyektin nümunəsini yaradır} 

procedure draw(acolor:word); virtual; {obyekti verilmiş acolor rəngi ilə rəngləyir} 

procedure show; {obyekti göstrir və acolor ilə onu rəngləyir}  

procedure hide ; {obyekti gizləyir, yəni fonun rəngi ilə onu rəngləyir} 

procedure moveto (dx,dy:integer);{obyekti x+dx, y+dy kordinatlı nöqtəyə sürüşdürür} 

end; {TGraphobj obyektinin təsvirinin sonu} 

 

Gələcəkdə TgraphObj obyektindən törəmə obyektlər yaradılacaq. Bu obyektlər nöqtə, xətt, 



dairə  və düzbucaqlının bütün xüsusiyyətlərini realizasiya edəcək. Bu qrafik obyektlərdən hər biri 

ekranda vəziyyəti (x,y sahələri) və rəngi (color sahəsi) ilə  xarakterizə olunacaq. Draw metodunun 

köməyilə o özünü ekranda əks etdirəcək. Show ilə özünü göstərəcək, Hide ilə gizlədəcək, Moveto 

ilə  hərəkət edəcək. qrafik obyektin xassələrinin ortaqlığını  nəzərə alaraq, biz abstrakt TgraphObj 

abstrakt obyektini təsvir edirik. Bu obyekt heç bir konkret fiqurla bağlı deyil. O real fiqurların bütün 

ümumi sahə və metodlarını özündə birləşdirir və digər obyektlər üçün valideyn rolunu oynayır.  

Obyektin təsvirindəki Private direktivi gizli sahə  və metodların təsvirini verir. Bu hissədə 

sadlanan obyektin elementlərini proqramçı görmür, əgər bu obyekti o TPU kitabxanası çərçivəsində 

alırsa. Elə sahə  və metodlar birləşdirilir ki, proqramçı bilavasitə ona giriş ala bilməsin. Bizim 

misalda proqramçı nişan nöqtəsinin kordinatlarını (x,y-i) istənilən şəkildə dəyişə bilməz, çünki bu 

obyekti hərəkət etdirməyəcək. x və y sahələrini dəyişdirmək üçün obyektin tərkibinə daxil olan Init 

və Moveto metodları  nəzərdə tutulub. Gizli sahə  və metodlar o proqram və modullara açıqdır ki, 

orada uyğun obyekt təsvir olunsun. Hesab edəcəyik ki, proqram obyektlərin təsvirinə malik 

Graphobj-ni istifadə edəcək. Aydındır  ki, real məsələ  çərçivəsində obyektin gizli elementlərini 

təsvir etmək mütləq deyil. Public direktivi Private direktivinin təsirini ləğv edir, buna görə də ondan 



Yüklə 234,89 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə