I bölmə t t t



Yüklə 0,77 Mb.
Pdf görüntüsü
səhifə40/40
tarix29.12.2021
ölçüsü0,77 Mb.
#48444
1   ...   32   33   34   35   36   37   38   39   40
Turbo Pascal Kitabi

 

 

Graph –modulunun funksìyaları. 

-graphresult –qrafìk rejìm təsbìt edìldìkdə ekrana 0, əks halda ìsə səhvìn 

kodunu vərìr. 



-getmaxx –ekranın üfìqì ölçüsünü göstərìr. 

-getmaxy –ekranın şaqulì ölçüsünü göstərìr. 

-getcolor –carì rəngì göstərìr. 

-getcolor(x,y)-(x,y) nöqtəsìnìn rəngìnì verìr. 

-getx,gety –carì pìkselìn rəngìnì verìr. 

 

3.  Rənglər  –aşaõıda  sadalanan  müsbət  tam  ədəd  və  ya  rəngìn  ìngìlìscə 



adıyla verìlə bìlər: 

Rəngìn ìngìlìscə adı və  

      ədədlə ìfadəsì 

      Rəngìn 

azərbaycan dìlìndə   

adı 


black=0 

qara 


blue =1 

göy 


green-2 

yaşıl 


cyan =3 

mavì 


red =4 

qırmızı 


magenta=5 

bənövşəyì 



brown =6 

Şabalıdı(qəhvəyì) 



lightgray =7 

açıq-boz 



darkgray =8 

tünd-boz 



lightblue =9 

parlaq –göy 



lightgreen =10 

parlaq –yaşıl 



lightcyan =11 

parlaq –mavì 



lightred =12 

parlaq –qırmızı 



lightmagenta =13 

parlaq –bənövşəyì 



yellov =14 

sarı 


white =15 

aõ 


 

Məsələ  30.  Bìr  kvadrat  daxìlìndə,  mərkəzì  (320,240)  nöqtəsì  olan  10 

konsentrìk çevrə çəkməlì.  

 

program circle10; 

uses Crt,Graph; 



var driver,mode,e:integer; 

begin 

clrscr; 


driver:=detect; 

initgraph(driver,mode,``); 

r:=10; 

 

{ilk radius 10 piksel} 



while r<=100 do 

begin 

setcolor(r div 10)

circle(320,240,r); 

r:=r+10 


end; 

setcolor(red); 

rectangle(220,140,420,340); 

readln 


end. 

Çalışma  30.  Ìxtìyarì  seçdìyìnìz  üçbucaõı,  tərəflərìnìn  orta  nöqtələrìnì 

bìrləşdìrməklə  dörd  yerə  bölün  və  alınmış  üçbucaqların  daxìlìnì  müxtəlìf 

rənglərlə boyayın. 

 

Məsələ  31.  Qrafìk  ekranın  yuxarı  sol  küncünə  qara  fonda  mavì  kvadrat, 



onun daxìlìnə ìsə qırmızı çevrəlì yaşıl daìrə çəkərək ortadan, üfìqì xətt boyu, 

qara rəngdə ‘BAKI’ sözünü yazmalı. 



 

program BAKI

uses Crt,Graph; 

var 

driver,mode,I,x1,y1: integer; 



   

x,y:real; 



begin 

Clrscr; 


driver:=detect; 

initgraph(driver,mode,’’); 

setbkcolor(0); 

setcolor(3); 

rectangle(100,0,300,200); 

setfillstyle(1,3); 

floodfill(200,100,3); 

setcolor(2); 

circle(200,100,100); 

setfillstyle(1,2); 




floodfill(200,100,2); 

setcolor(4); 

circle(200,100,100); 

settextstyle(0,0,3); 

outtextxy(135,100,’BAKI’); 

readln 


end. 

 

Çalışma  31.  Graph  modulundan  ìstìfadə  etməklə  sevdìyìnìz  məktəbə 

emblem çəkìn. 

Məsələ 32. h=0,1 artımla, [0,2] parçasında y =2cos(3x)+1 funksìyasının 

qrafìkìnì qurmalı. Nətìcənì yoxlamaqla, amplìtudanı k*y ìfadəsìnìn köməyìlə 

tənzìmləyərək daha münasìb k əmsalı seçməlì.  



 

program Cosgraf; 

uses Crt,Graph; 

const   

a=0; b=2*pi; 

h=0.1; h1=5; 

x0=60; y0=240; k=50; 



var 

 

driver,mode,x1,y1:integer; 

x,y:real; 

function f(x:real):real; 

begin 

f:=2*sin(3*x)+1 



end; 

begin 

clrscr; 


driver:=detect; 

initgraph(driver,mode,``); 

setcolor(4); 

setbkcolor(1); 

line(20,y0,600,y0); 

line(x0,440,x0,20); 

 

{koordinat oxlarI} 



x:=a 

x1:=x0+trunc(k*x); 

{x,y –riyazi koordinatlardIr} 

y:=f(x); 

y1:=y0-trunc(k*y); 

{x1,y1-qrafik koordinatlardIr} 

moveto(x1,y1); 



setcolor(15); 

while x<=b do 

begin 

y:=f(x); 

y1:=y0-trunc(k*y); 

lineto(x1,y1); 

x1:=x1+h1; 

x:=x+h 


end; 

settextstyle(0,0,1); 

outtextxy(60,245,`0`); 

outtextxy(360,245,`6.3`); 

settextstyle(0,0,2); 

outtextxy(200,410,`Qrafiki qurdu Natella`); 

readln 

end. 

Çalışma 32. 32 –cì məsələnì sìnusoìda qurmaq üçün dəyìşməklə proqramı 

yenìdən tərtìb edìn.  

 

4.  Anìmasìya  anlayışı  –pìksellərìn  rəng  və  yanıb-sönməsìnì  tənzìmləmə 



əsasında,  təsvìrlərìn  ekranda  hərəkət  görüntüsünü(ìmìtasìyasını)  almaõa 

xìdmət  edìr.  Anìmasìya  zamanı  –hər  ìşıqlanmadan  qabaq  obektìn  yerìnì 

seçìlmìş səmtə  dəyìşdìrmək  lazımdır.  Bìr sözlə:  anìmasìya  –təsvìrìn  ekranda 

hərəkət etməsìdìr. 

Məs. Anìmasìya aşaõıdakı kìmì alqorìtmlə verìlə bìlər: 

1.  Obektìn  təsvìrìnì  lazımı  (x,y)  koordìnatlı  nöqtədən  çəkərək  fasìlə 

vermək 

2.  Fon rəngì verməklə obektì görünməz etmək 

3.  (x,y) –koordìnatlarını dəyìşdìrmək 

4.  1 –cì punkta qayıtmaq. 

Məsələ  33.  Mavì  səmada  günəşìn  üfìqì  ìstìqamətdə  hərəkətìnì  əks 

etdìrməlì.  



 

program Asiman; 

uses Crt,Graph; 

var driver,mode,i:integer; 

begin 

clrscr; 


driver:=detect; 

initgraph(driver,mode,``); 




i:=0; 

while i <= 750 do 

begin 

setcolor(14); 

setbkcolor(3); 

setfillstyle(1,14); 

circle(i,100,50); 

floodfill(i,100,14); 

delay(200); 

setfillstyle(1,3); 

setcolor(3); 

circle(i,100,50); 

floodfill(i,100,3); 

i:=i+5 


end; 

readln 


end. 

 

Çalışma 33. Sərbəst seçdìyìnìz qövs üzrə qaranlıq səmada ayın hərəkətìnì 

təsvìr  edən anìmasìya qurun. 

 

   



 

 

 



§14. Obektlər

 

Turbo  Paskal  dìlìnìn  sonuncu  versìyası  obekt  ünsür  tìpì  də  daxìl 



edìlməklə genìşlənmìşdìr.  

Obekt  tìpì  –özündə  bìr  çox  ünsürlər  və  onlarla  ìşləməyə  ìmkan  verən 

alqorìtmlərì bìrləşdìrìr. Eynì obektdə bìrləşmìş hər ünsürə –alan, alqorìtmə –

gedìş  və  bìrləşdìrmənìn  özünə  ìsə  -ìnkapsulyasìya  deyìlìr.  Obektìn  ìcra 

mexanìzmìnì –demək olar kì, yalnız gedìş-alqorìtmlər təşkìl edìr. Onları həm 

ìç(obyektə  aìd  olan)  və  həm  də  çöl(obyektə  aìd  olmayan)  ünsürlərə  tətbìq 

etmək  mümkündür.  Bu zaman  eynì  adlı  gedìş  müxtəlìf obyektlərdə müxtəlìf 

cür  məzmun  daşıya  bìlər  və  bu  xüsusìyyət  gedìşlərìn  polìmorfìzmì  adlanır. 

Obektlər də pöhrə-budaq prìnsìpì üzrə bənzərlìk əlamətìnə malìk olub: obyekt 

tərkìbìndə hər alanın bìr çox pöhrəsì olsa belə o, yalnız bìr budaõa baõlı ola 

bìlər.  


1. Ìnkapsulyasìya –yənì obyektìn təşkìlì: 

type  = obyect 



 : 

end; 


kìmì tərtìb olunur. 


Məs. Alanları –pìkselìn x, y koordìnatları və gedìşlərì –parlama, sönmə 

və yerdəyìşmədən ìbarət olan Piksel adlı obekt tìpìnì aşaõıdakı kìmì tərtìb 

etmək olar: 

type Piksel =object 

private 

   


x,y :integer; {koordinatlar} 

public 

constructor Create(a,b:integer); 

{Object qurulur, ilkin koordinatlar verilir} 



procedure On

{piksel boyanIr}



 

procedure Off

{piksel fonda itir}



 

procedure Draw(color:word); virtual; 

{piksel color kimi boyanIr}



 

procedure Move(dx,dy:integer)

{pikselin koordinatlarI dx, dy artImlarI alIr}



 

end; 

Burada: 


-  Create gedìşì obyektı  yaradıb  alanlara bəllì ölçülər təyìn  edìr  və  bu 

cür prosedura da constructor adlanır. 

-  Draw gedìşìndə ìşlənən virtual kəlməsì aşaõıda açıqlanacaqdır. 

-  private  dìrektìvì  –alan  və  gedìşlərlə  programın  dìgər  proseduraları 

arasında əlaqə yaradır. Belə hallarda səhv etməmək üçün alanlara aìd 

olan qìymətlərì gedìşlərìn köməyìlə dəyìşmək daha sərfəlì olar. Məs. 

Pìkselìn yerìnì  Move gedìşìlə dəyìşmək olar. 

-  public  dìrektìvì  ìsə  dìgər  proqramlarla  əlaqə  qurmaq  üçün  nəzərdə 

tutulmuşdur.  Lakìn  protected  ìlə  verìlən  komponentdən  ìsə  yalnız 

obyektìn öz alanları(pöhrələrì) ìstìfadə edə bìlər. 

Gedìşìn ìcra bölümündə başlıõı: 

   procedure ,(); 

kìmì yazıla bìlər. 

Yuxarıda verìlmìş obyektìn gedìşlərì ìsə aşaõıdakı kìmì vermək olar: 



constructor Piksel.Create(a,b:integer); 

begin 

X:=a; Y:=b 



end; 

procedure Piksel.Draw(color:word); 

begin 

PixelYolu(X,Y,color); 



end; 


procedure Piksel.On; 

begin 

Draw(GetColor) 



end; 

procedure Piksel.Off; 

begin 

Draw(GetBkColor) 



end; 

procedure Piksel.Move(dx,by:integer); 

begin 

Off; 


X:=X+dx; 

Y:=Y+dy; 

On; 

end; 

Obekt tìpìnìn dəyìşənì –nüsxə adlanır və 

var bölümündə: 

    .(); 

formada verìlìr. 

Məs. Piksel -obekt tìpìnìn Pxel –adlı nüsxəsìnì: 



var Pxel:Piksel; 

begin 

Pxel.Create(250,100); 

Pxel.On; 

Pxel.Move(35,70); 

Pxel.Off; 

..kìmì və ya dìnamìk dəyìşənlə ìsə:  



 

var Pixel:^Piksel; 

begin 

New(Pixel);Pixel^.Create(250,100); 

Pixel^.On; 

Pixel^.Move(35,70); 

Pixel^.Off 

formada ìfadə etmək olur. 

Burada: 

New(Pixel); Pixel.Create(250,100); 

-qoşa əmrìnì: 

New(Pixel,Create(250,100)); 

ìlə əvəz etmək olar. 



Yazı tìpìndə olduõu kìmì obekt tìpìnə də With(bìrləşdìrmə) əmrìnì 

aşaõıdakı qaydada tətbìq etmək mümkündür.  



With Point do 

begin 

Create(100,100); 

On; 

Move(50,-10) 



end; 

2. Əxzetmə –obekt tìpìnìn pöhrə-budaq prìnsìpìnə məxsus bənzərlìk  

əlamətì olub  

   type 


 =  object(

     <əlavə olunmuş alanlar> : < alanların tìplərì>; 

     <əlavə olunmuş və yenìdən təyìn olunmuş gedìşlərìn deklarasìyası>; 

   end; 

formada tərtìb olunur. 

Əxzetmə prìnsìpìnì aşaõıdakı sxem üzrə(Şəkìl 1.3.) daha aydın şərh 

etmək mümkündür. 

  

  



 

 

 



 

Düzbucaqlı 

        

Çevrə  


   

 

   



 

 

 



  Parça 

 

 



   

 

 



   Nöqtə 

   


 

 

             Şəkìl 1.3. 



Verìlmìş sxemdə nöqtə –budaq, çevrə və parça ìsə onun pöhələrìdìr. Odur 

kì, əgər nöqtə: parlama, sönmə və hərəkət gedìşlərìnə malìkdìrsə, onda həmìn 

gedìşlər çevrə və parçaya da aìd olub üstəlìk də cevrə -radìus (r), parça ìsə –

məs.  ìkìncì  ucunun  yerdəyìşməsì  (ShiftX,Shifty  kìmì)  əlavə  gedìşlə 

zəngìnləşə  bìlər.  Lakìn  göründüyü  kìmì,  düzbucaqlı,  -parçanın  nöqtədən 

aldıõı gedìşlərì ìlə yanaşı (o dìaqonalın uc nöqtələrì əsasında qurulur) həm də 

ìkìncì ucun yerdəyìşmə gedìşìnə də malìk olmalıdır.  

Çevrənì  -Circle  və  nöqtənì  –Point adlandırmaqla  Circle tìpì  draw  gedìşì 

və constructor ìlə: 

type Circle=object(Point) 

private 



R:integer;  

{radius} 



public: 

constructor Create(a,b,c:integer); 

procedure Draw(color:word);virtual; 

end; 

constructor Circle.Create(a,b,c:integer); 

begin 

inherited Create(a,b); 

R:=c 


end; 

procedure Circle.Draw(color:word); 

begin 

SetColor(color); 

Circle(X,Y,R) 

end; 

kìmì verìlə bìlər və burada inherited –budaõın gedìşlərìnì pöhrəyə ötürən 

Create  konstruktopunu  çaõırmaq  üçündür.  Hərçəndì  bu  çaõırışı  Point. 

Create(a.b) kìmì də vermək olardı. 

Parçanı Line adlandirmaqla ìsə müvafìq obekt tìpìnì:  

 

type Line=object(Point) 

private 

ShiftX,ShiftY: integer;{

ikinci ucun artIm almasI



public: 



constructor Create(X1,Y1,X2,Y2:integer); 

{X1,Y1,X2,Y2 –uclarIn koord.} 



 

procedure Draw(color;word);virtual; 

{boyalI qurma} 



end; 

Tapşırıq.  Düzbucaqlını  Rect  adlandırmaqla  müvafìq  obyekt  tìpìnì  təyìn 

edìn. 

3.  Polìmorfìzm  –eynì  adların  müxtəlìf  obyekt  gedìşlərìndə  ìşlənə 



bìlməsìdìr.  Məs.  bütün  qurmaları  həyata  keçìrən  Create  və  draw  gedìşlərì 

eynì adla ayrı-ayrı obektlər üçün fərqlì xìdmətlər göstərə bìlìrlər. 

Circle obyektìnìn əxz olunma gedìşì On: 

procedure Point.On; 

begin 

Draw(GetColor) 



end;  


yenìdən  təyìn  olunmaya  bìlərdì,  zìra  bu  gedìşlərìn  proseduraları  artıq 

Point  tìpìndə  verìlmìşdìr.  Lakìn  bu  halda  kompìlyator,  funksìyalara  statìk 

müracìət mexanìzmì ìlə draw gedìşìnìn proqram kodunu, 

procedure Point.Draw(color:word); 

begin 

PixelYolu(X,Y,color){piksel yanIr} 



end; 

prosedurası əsasında aramsız olaraq çaõıracaqdır. 

Bu vəzìyyətì aradan qaldırmaq üçün virtual xìdmətì sözündən 

procedure Draw(color:word); virtual; 

 

formada ìstìfadə olunur. Ìndì artıq lazımı Draw gedìşìnìn ünvanı yalnız ìş 



ərəfəsìndə  müəyyən  edìləcəkdìr.  Məs.  Circle  tìpìnìn  obyektì  tərəfìndən  On 

gedìşìnìn çaõrılması Draw gedìşìnə də yol açmış olur:     

 

procedure Circle.Draw(color:word); 

begin 

SetColor(color); 

Circle(X,Y,R) 

end; 

Bu cür mexanìzm –dìnamìk mexanìzm və Draw gedìşì ìsə, bu halda daxìlì 

gedìş  adlanır.  Onu  da  deyək  kì,budaqda  wirtual  kìmì  verìlmìş  gedìş  bütün 

pöhrələrdə də məhz bu cür göstərìlməlìdìr.  Lakìn obyekt tìpìndə bìr dənə  də 

olsa  wirtual  gedìş  varsa  onda  tərkìbə,  bu  gedìşdən  əvvəl  konstruktor  da 

salınmalıdır. 

Obyektyönümlü proqramların üstünlüyü xüsusìlə ìrì həcmlì və mürəkkəb 

proqramlarda  daha  qabarıq  görsənìr.  Əxzetmə  və  polìmorfìzm  -proqram 

müəllìfìnì  çoxlu  adlar  fìkìrləşìb  tapmaq  və  oxşar  tìplì  obyektlər  üçün  eynì 

məzmunlu  proseduraları  təkrar-təkrar  yazmaqdan  azad  edìr.  Məs.  elə 

yuxarıda  baxılmış  mìsala  obyektyönümlü  üsul  tətbìq  edìlməsəydì  onda: 

hərəkət  –Move,  parlama  –On  və  sönmə  –Off  proseduralarından  hər  bìrì 

çevrə, parça və düzbucaqlı fìqurları üçün yazılmaqla 9 dəfə təkrarlanardı. Bu 

cür  ìzafì  ìşìn  böyük  həcmlì  proqramlarda  hansı  həddə  vara  bìlməsìnì  ìsə 

təsəvvür etmək yəqìn kì, çətìn deyìl.  

 

  §14. Turbo Pascal 7.0  



proqram mühìtìnìn sərhì 

 

1.  Turbo  Paskal  7.0  proqram  mühìtì  –MS-DOS  üçün  Borland  Pascal  və 



Tupbo Pascal 7.0 proqram mətnlərì hazırlama və ìşə buraxmada genìş tətbìq 


olunur.  Bu  mühìt  üçün(Windovsda  qrafìka  ìşìndən  başqa)  bütün  növ 

proqramlama prìnsìplərì eynìdìr.  

 

Tupbo Pascal 7.0   proqram mühìtìnìn əsas faylları.



  

turbo.exe 

əsas ìşlək fayl, həcmì –400Kbayt 

turbo.tpl 

kìtabxana –48Kbayt (konfìqurasìyadan da asılıdır)  

turbo.tph 

köməkçì –730Kbayt 

graph.tpu 

qrafìkayla ìş üçün modul –33Kbayt 

Mühìtə daxìl olmaq üçün turbo.exe əmrì yerìnə yetìrìlìr və ekranın yuxarı 

hìssəsìndə baş menyu, aşaõıda ìsə bəzì funksìonal düymələrìn şərhì çıxır. Bu 

zaman  baş  menyuya  gìrmək  üçün  F10  sədəfìnì  qırpmaqla  aşaõıdakı  bəndlər 

abonentìn sərəncamına verìlìr: 

File 


faylla ìş üçün 

Edit 


faylda düzəlìşlər üçün 

Search 


verìlmìş fraqment mətndə arama və ya dəyìşmə üçün 

Run 


proqramın ìcrası üçün 

Compile 


proqramın kompìlyasìyası ve exe-fayl yaratmaq üçün 

Debug 


proqramı kökləmək(nìzamlamaq) üçün 

Options 


mühìtìn konfìqurasìyası üçün 

Window 


pəncərələrlə ìş və onların konfìqurasìyası 

Help 


köməkçìnì çaõırmaq üçün 

 Menyudan  lazımı  bəndì,  əlbəttə  kursorla  seçìb  keçìd  sədəfìnì  qırpmaq 

gərəkdìr.  Hərçəndì  bu ìşì  Alt    və baş  hərf sədəflərìnì eynì  vaxtda qırpmaqla 

da etmək mümkündür.  

Bìr ìş seansının əsas mərhələlərìnə nəzər salaq: 

1)  Baş  menyu  acılır,  buradan  File  bəndì  seçìlìr.  Bu  zaman  əlavə  bìr 

menyu da alınır kì, buradan da New əmrìnì seçməklə proqram mətnìnì 

yazmaq  üçün  NONAME00.PAS  adlı  fayl  açılmış  olur.  Beləlìklə  də 

F10FileNew  addımlarını  atmaqla  fayl  açaraq  proqram  mətnì 

yazılır. 

2)  Mətndə düzəlìşlər –bəzìlərì aşaõıda şərh olunmuş- ənənəvì düzənləmə 

üsullarıyla aparıla bìlər: 

Shift+oxlar 

Əməlìyyat aparılacaq fraqmentì (qara rənglə) seçmə  

Ctrl+Insert 

Bloku buferə də köçürmək 

Shift+del 

Bloku buferə gətìrmək  

Shift+Insert 

Fraqmentì kursorun olduõu yerə köçürmək 

Ctrl+Del 

Seçìlmìş bloku sìlmək 

Ctrl+Y 

Kursor olan sətrì sìlmək 

Ctrl+Q,Y 

Sətrdə kursordan sonrakı hìssənì sìlmək 

Ctrl+n 

Sətìr yerləşdìrmək 




Ctrl+PgUp 

Mətnìn başlanõıcına keçmək 

Ctrl+PgDn 

Mətnìn sonuna keçmək 

3)  Əgər aşkar səhvlər yoxdursa, proqramı kompìlyasìya edìb 

F10RunRun əmrlərì və ya Ctrl+F9 sədəflərìlə ìşə buraxmaq olar. 

4)  Əgər sìntaksìs səhvlər varsa, onda kursor səhvìn olduõu sətìrdə və  ya 

düz  həmìn  mövqedə  duracaq,  yuxarı  sətìrdə  ìsə  səhvìn  məzmunu 

barədə  məlumat  verìləcəkdìr.  Bu  zaman  mətn  artıq  düzənləmə 

rejìmìndə  gözləyìr  və  çox  vaxt  ìtìrmədən  səhvì  düzəltmək  mümkün 

olur. Bu mìnvalla hər dəfə səhvlər düzəldìlərək 3) –cü bənd təkrarlanır 

və s. 


5)  Əgər sìntaksìs səhvlər yoxdursa onda proqram ìşləməlì və cavablar ìsə 

nətìcə  xanəsìnə  verìlməlìdìr  kì,  bunun  üçün  də  Alt+F5  sədəflərì 

qırpılmalı  və  ya    Debug  bəndì  gedìşlərìndən  ìstìfadə  edìlməlìdìr. 

Nətìcələrì gözdən keçìrərək ìstənìlən sədəfì qırpmaqla yenìdən düzəlìş 

rejìmìnə qayıtmaq olar.  

6)  Proqramın  exe-faylını  F10compileDestinationdisk  ardıcıl 

əməlìyyatlarından  sonra  almaq  olar.  Daha  sonra  Alt+F9  sədəflərìnì 

qırpılmaqla  dìskìn carì  kataloqunda,  heç bìr  proqram  mühìtì olmadan 

da ìşləyə bìləcək exe-fayl yazılmış olur. 

7)  Proqram  mətnìnì  də  genìşlənmìş  .pas  faylında  saxlamaq:  a)  adını 

dəyìşməklə -F10fileSava As, əks halda ìsə  

   F10fileSava (və ya sadəcə F2 sədəfìnì qırpmaq).  

8)  Seansı  bìtìrìb  mühìtdən  çıxmaq  üçün  F10fileExit  və  ya  sadəcə 

Alt+x sədəflərì qırpılmalıdır. 

9)  Dìskdə  yerləşən  proqramla  ìşləmək  üçün  F10fileOpen  və  ya  F3 

sədəfì  qırpılır.  Tab  sədəfìnì  qırpmaqla,  aşaõı  xanəyə  keçìb  fayl 

menyusundan  lazımı  faylı  tapmaq  və  keçìd  sədəfìnì  qırpmaqla  onu 

düzənləmə rejìmìnə keçìrmək mümkündür. 

10) Açıq xanəlì proqramlar  çox  olduqda,  bìrìndən dìgərìnə  keçmək üçün 

F6,  genìşlətmə  və  ya daraltmanı ìsə  F5  –ìn köməyìlə ìcra etmək  olar. 

xanənì  ekranda  münasìb  formada  yerləşdìrmək  üçün  Windowdan 

ìstìfadə  edìlìr.  Fəal  xanənì  baõlamaq  üçünsə  ya  Alt+F3  sədəflərìnì 

qırpmaq  ya  da  kì,  mausun  dìlìnì  yuxarı  sol  küncdəkì  nìşan  üzərìnə 

qırpmaq gərəkdìr. 

11) Turbo Paskal barədə məlumatlar almaq üçünsə F1 sədəflərìnì qırparaq 

ekrana verìlən məlumatları oxumaq olar. 



Borland  Pascal  for  Windovs    mühìtìnìn  də  yuxarıda  sadalanan 

bəndlərdən elə bìr cìddì fərqì yoxdur.  Bu halda sadəcə proqramın əvvəlìndə 



uses Crt əvəzìnə  uses  WinCrt  yazmaq  və  bìr də Sava  As,  Open  kìmì fayl 

sìstemì əmrlərì ìlə ìşləmə vərdìşì tələb olunur. 




2. Tìpìk səhv kodları –Tupbo Pascal 7.0 mühìtìndə səhvlər kompìlyasìya 

səhvlərì və ìcra səhvlərì kìmì ìkì qrupa bölünür. 

Bəzì xarakterìk kompìlyasìya səhvlərìnìn şərhì.  

Kod            Məlumat  

Məzmun 

Unknown identifier 



şərh olunmamış ìdentìfìkator  

Duplicate identifier 



təkrar ìdentìfìkator 

Syntax error 



sìntaksìs səhv 

14 


Invalid file name 

Faylın adı və ya ünvanı düz deyìl 

26 

Type mismatch 



Tìplərìn uyuşmazlıõı 

42 


Error in expression 

Ìfadədə səhv 

62 

Division by zero 



sıfıra bölmə 

64 


Cannot  Read  or  Write  variables 

of this type 

bu tìpìn dəyìşənlərìnì yazmaq və hesablamaq 

mümkün deyìl 

85 

«;» expected 



«;» sìmvolu gözlənìr(və ya çatmır) 

91 


«:=» exspected 

«:=» sìmvolu gözlənìr 

94 

«.» expected 



«.» sìmvolu gözlənìr 

95 


«..» expected 

«..» sìmvolu gözlənìr 

Ìcra səhvlərì:  

a)  DOS səvìyyəlì səhvlər –kod 1..99 

b)  Gìrìş-çıxış səhvlərì –kod 100..149 

c)  Krìtìk səhvlər –kod150..199 

d)  Fatal səhvlər –kod 200..255 

 

Bəzì xarakterìk ìcra səhvlərìnìn şərhì



 

kod 


                    məlumat 

məzmun 


path not found 

ünvan tapılmadı 

103 


file not open 

fayl açılmayıb 

104 

File not open for input 



gìrìş faylı açılmayıb 

105 


File not open for output 

çıxış faylı açılmayıb 

153 

Unknown command 



məlum olmayan əmr 

200 


Division by zero 

sıfıra bölmə 

215 

Arirhmetic overflow error 



rìyazì əməldə səhv 

 

3.  Kompìlyatorun  dìrektìvlərì  –proqramlara  qeyrì  standart  kompìlyasìya 



rejìmlərì  vermək  üçün  nəzərdə  tutulmuşdur  kì,  onları  da:  –rejìmdəyìşdìrìcì 

dìrektìvlər  və  parametrlì  dìrektìvlər  kìmì  ìkì  qrupa  ayırmaq  olar.  Bìrìncìlər 

{$ <ìşarə>} kìmì ümumì formaya malìkolub Option  Compiler  

  ìfadəsìlə  kompìlyasìya  rejìmlərìnì  və  ya  «+»,  «-» 

ìşarələrìnì  verə  ya  da  ləõv  edə  bìlər.  Onu  da  deyək  kì,  normal  vəzìyyətdə 

kompìlyator əsas dìrektìvlərì onsuz da cəlb edìr və xüsusì zərurət olmadıqda 

rejìmdəyìşməyə ümumìyyətlə çox ehtìyac qalmır. 

Rejìmdəyìşdìrìcì dìrektìvlərìn təsnìfatı: 



{$A+}  –ünsürlərìn  baytın  deyìl  sözün  sərhəddìndə  bərabərləşdìrìr.  Çox 

yaddaş alırsa da proqramın sürətlə ìşləyìr. Elə-belə də ìşləyìr. Kompìlyatorun 

əmrì –Word AllignData. 

{$B-}  –məntìqì    ìfadə  hesablamanın  müfəssəl  sxemì.Nətìcə  aydın  olan 

kìmì  hesablama  kəsìlìr.  Elə-belədə  {$B+}  –Complete  Boolean  Evaluation 

dìrektìvì ìşləyìr. 

{$D+} –Debug Internation –proqram mətnìndə səhv verən əmrlər barədə 

məlumat verìr. Elə-belə də ìşləyìr. 

{$E+}  –Emulation  –  proqram  yoluyla  hwmprosessoru  emulyasìya  edìr. 

Elə-belə də ìşləyìr. 

{$F+}  –Force  Far  Calls  –  Prosedura  və  funksìyaların  “uzaqlaşdırılmış” 

çaõırış tìpì. Elə-belədə ìşləmìr. 

{$G+}  –286  Instructions  –yalnız  80286  tìp  prosessorla  ìşləyən  maşınlar 

üçündür. Elə-belədə ìşləmìr. 

{$I+}  –I/O  Checking  –Gìrìş-çıxış  səhvlərì  olan  kìmì  proqram  dayanır. 

Elə-belə də ìşləyìr. 

{$L+}  –Local  Sumbols  –lokal  dəyìşənlər  barədə  məlumat  verìr.  {$D+} 

ìşləyən zaman o da elə-belə ìşləyìr. 

{$N+}  –8087/80287  sürüşgən  vergüllü  hesablamada  həmprosessor  kìmì 

ìşlədìlìr. Həmprosessoru olmayan maşınlarda o, {$N-} ìlə ləõv olunmalıdır. 

{$O+} –Overlays  Allowed –böyük proqramların overley  kodunu çıxarır. 

Elə-belədə ìşləmìr. 

{$P+}  –Open  Parameters  açıq  tìp  massìvlərì  parametr  kìmì  ìşlətməyə 

ìmkan verìr. Elə-belədə ìşləmìr. 

{$Q+}  –Overflow  Checking  –  Rìyazì  proseslərdə  tıxanma  hallarını 

bìldìrìr.Elə-belədə ìşləmìr. 

{$R+} –Range-Checkìng –Ünsürlərìn verìlmìş dìapazondan kənara çıxma 

hallarını bìldìrìr. Elə-belədə ìşləmìr. 

{$S+} –Stack Checking –axının tıxanmasını yoxlayır 

{$V+} –Strict Var String –formal və faktìkì parametrlərìn eynì uzunluqda 

olmasını yoxlayır. 

{$X+}  –Exstended  Syntax  –proseduranı  funksìya  kìmì  təqdìm  etməyə 

ìmkan yaradır. Elə-belədə ìşləmìr. 

   


 

 

 



Parametrlì tìplərdən:   

{$I  }  –Include  Directories  –kompìlyasìya  zamanı  proqram 

mətnınə  əlavə  mətn  qoşmaõa  ìmkan  verìr.  Məs.  {$I  *.dfm}  –dfm  əlavə 

olunmuş bütün faylları (Delphìdə ìşlənìr ) bìrləşdìrìr. 

{$L  }  –Object  Directories  -  kompìlyasìya  zamanı 

proqrama bəzì obekt kodları daxìl etməyə ìmkan verìr. 




{$M  <1024-65520  aralıõında  axın  ölçüsü>,  <0-655360  aralıõında 

dìnamìk sahə  ölçüsü>} –Memore  Sizes –Yadda;I  proqrama  münasìb şəkìldə 

bölür. 

 

Burada  A,  D,  E,  L,  N,  O,  P,  Q,  X  və  M  -qlobal  dìrektìvlər  olub  tələb 



olunduqda  məhz proqramın adından sonraya  yerləşməlì, dìgər dìrektìvlər ìsə 

lokal səcìyyəlì olub ara-bərəyə də salına bìlər.  

 

 

 



 

 

 



 

 

 



Yüklə 0,77 Mb.

Dostları ilə paylaş:
1   ...   32   33   34   35   36   37   38   39   40




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin