Paskalabc da grafiklarga oid dastlabki ma'lumotlar Program g 1; uses Graphabc; //1-kurs kt: Informatika va axborot texnologiyalar yo`nalishi talabasi Faxriddinov Sherzod


Download 98.52 Kb.
bet3/5
Sana25.10.2019
Hajmi98.52 Kb.
1   2   3   4   5

3.7 Ellipse(x1,y1,x2,y2: integer) 
  program grafik3_7;
//Maqsad:Qarama-qarshi uchlari (x1,y1) va (x2,y2) 
//nuqtalarda bo'lgan to'g'ri
//to'rtburchakka ichki joylashgan ellips chizadi
// Ellipse(x1,y1,x2,y2: integer)
uses graphABC;
var x:integer;
begin
setwindowsize(420,420);
centerwindow;
for x:=35 downto 0 do
ellipse(200-x*10,0+x*10,200+x*10,400-x*10);
end.

3.8 Rectangle(x1,y1,x2,y2: integer);
program grafik3_8;
//Maqsad:Qarama qarshi uchlari (x1,y1) va (x2,y2) koordinatalarda bo'lgan  to'g'ri to'rtburchak chizadi
// Rectangle(x1,y1,x2,y2: integer);
uses graphABC;
var x:integer;
begin
setwindowsize(375,375);
centerwindow;
for x:=50 downto 0 do
rectangle(100,100,300,300);
end.

3.9 RoundRect(x1,y1,x2,y2,w,h: integer);
  program grafik3_9;
//Maqsad:Uchlari yumaloqlangan to'g'ri to'rtburchak chizadi
//(x1,y1) (x2,y2) koordinatalarda m va n esa uchlari 
//yumaloqlashda ishlatiladigan ellips kengligi va balandligi
// RoundRect(x1,y1,x2,y2,w,h: integer);
uses graphABC;
var x:integer;
begin
setwindowsize(420,420);
centerwindow;
for x:=25 downto 0 do
roundrect(200-x*4,200- x*4,200+x*4,200+x*4,6*x,2*x);
end.

3.10 Arc(x,y,r,a1,a2: integer);
program grafik3_10;
//Maqsad:Markazi (x,y) va radiusi r ga teng bo'lgan hamda m1 va m2 markaziy
//burchaklar orasida joylashgan aylana yoyini chizadi.Biz kiritayotgan burchaklar ixtiyoriy
//soat miliga teskari o'lchanadi
//   Arc(x,y,r,a1,a2: integer);
uses graphABC;
var x:integer;
begin
setwindowsize(400,400);
centerwindow;
for x:=45 downto 1 do
Arc(200+(x mod 2)*4,200,4*x,180*(x-1),180*x);
end.

3.11 Pie(x,y,r,a1,a2: integer);
  program grafik3_11;
//Maqsad: Markazi(x,y) nuqtada radiusi r ga teng bo'lgan hamda m1 va m2 markaziy
//burchaklar orasioda joylashgan sektor chizadi
// Pie(x,y,r,a1,a2: integer);
uses graphABC;
var x:integer;
begin
setwindowsize(400,400);
centerwindow;
for x:=20 downto 1 do
pie(160-x*8,240+x*8,20*x,0,90);
end.

3.12 Chord(x,y,r,a1,a2: integer)
//Maqsad: Markazi (x,y) radiusi r hamda m1 va m2 gradusli markaziy burchaklar orasida
//joylashgan doira segmentini chizadi
// Chord(x,y,r,a1,a2: integer) program grafik3_12;
uses graphABC;
var x:integer;
begin
setwindowsize(400,400);
centerwindow;
//Takrorlanishlar 20 marta
for x:=20 downto 1 do
pie(100+5*x,200,10*x,30,330);
end.

3.13 FloodFill(x,y,color: integer);
program grafik3_13;
//Maqsad: (x,y) nuqtadan boshlab biror bir chiziq bilan chegaralangan sohani
//biror rangga bo'yash
// FloodFill(x,y,color: integer);
uses graphABC;
var x:integer;
begin
setwindowsize(400,400);
centerwindow;
for x:=20 downto 1 do
begin
pie(100+5*x,200,10*x,30,330);
FloodFill(100+4*x,200,255500+x*10);
end;

end.


3.14 FillRect(x1,y1,x2,y2: integer)
program grafik3_14;
//Maqsad: Qarama qarshi uchlari (x1,y1) va (x2,y2) bo'lgan to'rtburchakni
//joriy rangga bo'yaydi
//  FillRect(x1,y1,x2,y2: integer)
uses graphABC;
var x,y:integer;
begin
//Darcha o'lchami
setwindowsize(400,400);
//Darcha markazi
centerwindow;
floodfill(100,100,0);
//TakrorlanishlaR
for x:=0 to 7 do
for y:=0 to 7 do
//SHart operatori
if (x+y) mod 2=0 then
fillrect(x*50,y*50,50+x*50,50+50*y)
end.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++



PASKALABC DA MATN VA SHRIFT USTIDA AMALLAR

Bu qismda siz matnlar va shriftlarga oid bilimlaringizni yanada oshirasiz degan umiddaman



2.1 TextOut(x,y: integer; s: string);
program grafik2_1;
//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad: Biz kiritgan matn satrini (x,y) da boshlab chiqaradi.Bu nuqta
//matn satri joylashadigan to'rtburchak chap yuqori nuqtasiga mos keladi
// TextOut(x,y: integer; s: string);
uses graphABC;
begin
Textout(35,35,'Bu matn (35, 35) nuqtada:')
end.

2.2 SetFontColor(color: integer)
program grafik2_2;
//Maqsad: Ekranga chiqariladigan matn rangini tanlash
// SetFontColor(color: integer)
uses graphABC;
begin
SetFontColor($ff0000);
textout(25,15,'Matn rangi ko''k.');
SetFontColor($00ff00);
textout(25,30,'Matn rangi yashil.');
SetFontColor($0000ff);
textout(25,45,'Matn rangi qizil.');
SetFontColor($000000);
textout(25,60,'Matn rangi qora.');
end.

2.3 SetFontName(name: string)
program grafik2_3;
//Maqsad: Ekranga joriy shriftli matn chiqarish
// SetFontName(name: string)
uses graphABC;
begin
SetFontName('Ozbekiston kelajagi buyuk davlat:');
textout(20,20,'Ozbekiston kelajagi buyuk davlat:');
SetFontName('Termiz davlat universiteti');
textout(20,40,'Termiz davlat universiteti');
end.

2.4 SetFontStyle(fs: integer);
program grafik2_4;
//Maqsad: Matn stilini tanlash
//  SetFontStyle(fs: integer);
uses graphABC;
begin
//fsNormal=0 –oddiy
SetFontstyle(fsNormal);
textout(20,20,'@ Oddiy matn @');
//fsBold =1 –qalin
SetFontstyle(fsBold);
textout(20,40,'@ Qalin matn @');
//fsItalic=2 –qiya
SetFontstyle(fsItalic); textout(20,60,'@ Qiya matn @');
//fsBoldItalic=3 –qalin va qiya
SetFontstyle(fsBoldItalic);
textout(20,80,'@ Qalin va qiya matn @');
//fsUnderline =4 –ostiga chizilgan
SetFontstyle(fsUnderline);
textout(20,100,'@ Ostiga chizilgan matn @');
//fsBoldUnderline=5 –qalin va ostiga chizilgan
SetFontstyle(fsBoldUnderline);
textout(20,120,'@ Qalin va ostiga chizilgan matn @');
//fsItalicUnderline=6 –qiya va ostiga chizilgan
SetFontstyle(fsItalicUnderline);
textout(20,140,'@ Qiya va ostiga chizilgan matn @');
//fsBoldItalicUnderline=7 –qalin,qiya va ostiga chizilgan
SetFontstyle(fsBoldItalicUnderline);
textout(20,160,'@ Qalin, qiya va ostiga chizilgan matn @');
end.

2.5 SetFontSize(sz: integer);
program grafik2_5;
//Maqsad:Matn shrifti o'lchamini belgilash
// SetFontSize(sz: integer); 
uses graphABC;
begin
SetFontName('Grafik dastur:');
setfontsize(10);
textout(10,20,'10 o''lchamli matn');
setfontsize(15);
textout(10,40,'15 o''lchamli matn');
setfontsize(20);
textout(10,80,'20 o''lchamli matn');
setfontsize(40);
textout(10,160,'40 o''lchamli matn');
end.

2.6 FontColor: integer;
program grafik2_6; 
//Maqsad: Shrift rangini tanlash
// FontColor: integer;
uses graphABC;
begin
SetFontColor($ff0000);
textout(20,20,'Kok rangli matn:');
SetFontColor($ffffff-fontcolor);
textout(20,40,'Sariq rangli matn:');
SetFontColor($00ff00);
textout(20,60,'Yashil rangli matn:');
SetFontColor($ffffff-fontcolor);
textout(20,80,'Binafsha rangli matn:');
SetFontColor($0000ff);
textout(20,100,'Qizil rangli matn:');
SetFontColor($ffffff-fontcolor);
textout(20,120,'Och moviy rang:');
SetFontColor($000000);
textout(20,140,'Qora rangli matn:');
end.

2.7 FontSize: integer;
program grafik2_7;
//Maqsad: Shrift o'lchamini butun son sifatida qaytaradi
// FontSize: integer;
uses graphABC;
begin
SetFontName('Informatika va AT');
setfontsize(random(10)+15);
textout(20,20,'matn o''lchami '+inttostr(fontsize));
setfontsize(fontsize*2);
textout(20,25,'matn o''lchami '+inttostr());
end.

2.8  FontName: string
program grafik2_8;
//Maqsad: Joriy shrift nomini qaytaradi.
// FontName: string
//Dastlab joriy shrift sifatida Ms Sans Serif shrifti o'rnatilgan bo'ladi.
//Times,Arial,Courier New keng tarqalgan shrift nomlari.Bunda shrift nomlaridagi
//katta va kichik harflar farqlanmaydi
//Maqsad: Shrift joriy stilini qaytaradi
// FontStyle: integer;
uses graphABC;
begin
SetFontstyle(fsNormal);
textout(15,15,inttostr(fontstyle));
SetFontstyle(fsBold);
textout(15,30,inttostr(fontstyle));
SetFontstyle(fsItalic); textout(20,60,inttostr(fontstyle));
SetFontstyle(fsBoldItalic);
textout(15,45,inttostr(fontstyle));
SetFontstyle(fsUnderline);
textout(15,60,inttostr(fontstyle));
SetFontstyle(fsBoldUnderline);
textout(15,75,inttostr(fontstyle));
SetFontstyle(fsItalicUnderline);
textout(15,90,inttostr(fontstyle));
SetFontstyle(fsBoldItalicUnderline);
textout(15,105,inttostr(fontstyle));
end.

2.9 TextWidth(s: string): integer
program grafik2_10;
//Maqsad: Joriy shrift o'lchamlarida berilgan matn piksellarda qanday balandlikka
//ega bo'lishini aniqlab qaytaradi
// TextWidth(s: string): integer
uses graphABC;
var s: string;
begin
s:='Darcha kengligi matn olchamiga moslangan.';
setfontsize(35);
textout(25,25,Hello world);
Setwindowwidth(20+textwidth(s))  

end.


2.10 TextHeight(s: string): integer; 
program grafik2_11;
//Maqsad:Matn qanday uzunlikka ega bo'lishini aniqllab qaytaradi
//TextHeight(s: string): integer;
uses graphABC;
var s: string;
begin
s:='Darcha o''lchami matnga moslangan.';
setfontsize(35);
textout(15,15,Hello world);
SetwindowSize(20+textwidth(Hello world),20+textheight(Hello world))
end.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++



PaskalABC da grafiklar bilan ishlash

1.1 SetWindowCaption(s: string)

Grafik darcha hosil qilish protsedurasi


              program grafik_1;
//Maqsad:Grafik darcha hosil qilish

      uses GraphABC; 


begin
SetWindowCaption(' Paskalda ilk grafik darcha')
end.

Savol:


Protsedura ichidagi matn o’rniga ixtiyoriy matn kiritib 3 ta dastur tuzing
1) Yosh dasturchi        2)Salom dunyo           3)Informatika va axborot texnologiyalari

1.2 SetWindowWidth(x: integer) darchani o'zgartirish protsedurasi

Grafik darcha kengligini x piksekga o'zgartirish protsedurasi


               program grafik_2; 
//Maqsad:Grafik darcha kengligini x piksekga o'zgartirish

uses GraphABC;


begin
SetWindowWidth(222)
end.

savol:


Grafik darcha kengligini ixtiyoriy x 2 ta pikselga o’zgartiring va 2 ta dastur tuzing 
   

1.3 SetWindowHeight(h: integer)

Piksel balandligini o'zgartirish protsedurasi


program grafik_3;
//Maqsad:Grafik darcha balandligini h pikselda o'zgartirish

uses GraphABC;


begin
SetWindowHeight(125)
end.

savol:


Grafik darcha balandligini h ning qiymatini o’zgartirib 2 ta dastur  tuzing avval
 Grafik darcha hosil qiling

1.4 SetWindowSize(x,h: integer)

Grafik darcha kengligini x,balandligini h o'zgartirish
  program grafik_4;
//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad:Grafik darcha kengligini x,balandligini h o'zgartirish

uses GraphABC;
begin

SetWindowSize(325,176) 

end.

savol:


Grafik darcha kengligini x,balandligini h o'zgartirib 3 ta dastur tuzing.
Bunda sonlarni ixtiyoriy kiriting

1.5 SetWindowLeft(x: integer)

  program grafik_5;


//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad: Grafik darchaning chap tomonidan x piksel joy ajratish
                                                                                                                                                               
uses GraphABC;
begin
SetWindowLeft(175)
end.

Savol:


Grafik darchaning chap tomonidan x piksel joy ajratib 2 ta dastur tuzing

1.6 SetWindowLeft(x: integer)

program grafik_6;


//Maqsad:Grafik darcha tepasidan x piksel joy ajratish

uses GraphABC;


begin
SetWindowTop(75)
end.

Savol:


Grafik darcha tepasidan x piksel joy ajratib 2 ta dastur tuzing.Bunda garik darcha hosil qiling
Va unga nom bering

1.7 SetWindowPos(x,y: integer)

program grafik_7;


//Maqsad:Darcha chap yuqori burchagini ekran (x,y) 
Koordinatali nuqtasiga surish

uses GraphABC;


begin
SetWindowPos(225,275)
end.

Savol:


Darcha chap yuqori burchagini ekran (x,y)  koordinatali nuqtasiga suring dasturni shunday tuzingki
X va y qiymatlarini dasturda so’ralsin

1.8 CenterWindow

program grafik_8;


//Maqsad:Grafik darcha erkan markazida hosil bo'ladi
uses GraphABC;
begin
CenterWindow
end.

1.9  MaximizeWindow;

program grafik_9;


//Tuzuvchi:FAXRIDDINOV SHERZOD
                //Maqsad: Grafik darchasi ekranni to'liq qoplayd
                 .(masalalar panelidan tashqari)
uses GraphABC;
begin
MaximizeWindow
end.

1.10 ClearWindow

program grafik_10;


//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad: Grafik darchani tozalash
//Textout(x,y,)
// Delay (z)
// ClearWindow;
uses crt,GraphABC;
begin
Textout(30,40,'Greated by Sherzod!');
//Ekranning (30,40) nuqtadan ‘Greated by Sherzod!’ so’zini chiqaradi
delay(3000);
 //Tanaffus
ClearWindow
 //Ekranni tozalaydi
end.

1.11 SaveWindow(name: string)

program grafik_11;


//Maqsad:Grafik darchani 256 tagacha bo'lgan  name fayliga saqlash

1.12 LoadWindow(name: string)

program grafik_12;


//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad:Grafik darchaga name faylini saqlaydi
// LoadWindow(name: string)

1.14 CloseWindow

  program grafik_13; 


//Maqsad:Grafik darchani yopadi
// CloseWindow
uses crt,GraphABC;
begin
textout(28,34,'Informatika va axborot texnologiyalari!');
delay(2000);CloseWindow
end.

1.15 SetWindowWidth: integer;

program grafik_14;


//Maqsad: Grafik darcha kengligini butun son
// qaytaradi
// SetWindowWidth: integer;
uses crt,GraphABC;
begin
delay(3000);
SetWindowWidth(WindowWidth+100)
end.

1.16 WindowHeight: integer;

  program grafik_15;


//Maqsad: Grafik darcha bo'yini butun son sifatida
// qaytaradi
// WindowHeight: integer;
uses crt,GraphABC;
begin
delay(2500);
SetWindowHeight(WindowHeight+65)
end.

1.17 ScreenWidth: integer;

program grafik_18;


//Maqsad: Ekran kengligini piksellarda butun son sifatida 
Qaytaradi // ScreenWidth: integer;
uses GraphABC,crt;
begin
MaximizeWindow;
delay(2000);
SetWindowwidth(ScreenWidth div 3)
end.

1.18 ScreenHeight: integer;

program grafik_19;


//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad: Ekran balandligini piksellarda butun son 
//sifatida qaytaradi
// ScreenHeight: integer;
uses GraphABC,crt;
begin
MaximizeWindow;
delay(2500);
SetWindowHeight(ScreenHeight div 3)
end.

1.19 WindowCaption: string;

program grafik_20;


//Tuzuvchi:FAXRIDDINOV SHERZOD
//Maqsad: Darcha sarlavhasini satr o'zgaruvchisi sifatida qaytaradi
// WindowCaption: string; uses crt,GraphABC; begin
SetWindowCaption('1-grafik darcha'); Delay(1000);
setWindowCaption(WindowCaption+'. Muallif: Faxriddinov.Sh')

end.


++++++++++++++++++++++++++++++++++++++++++++++++++

Paskal grafik modullari

1.Kirish
Kompyuter grafikasi ilmiy tajriba va loyihalashning avtomatlashtirilgan tizimlarda, robototexnika va boshqa sohalarda keng ishlatiladi. 
Kompyuter monitori grafik va matnli ma’lumotlarni ekranga chiqaradi. Monitor maxsus videoadapter boshqaruvida matnli va grafikli holatda ishlaydi. Matnli ish holatida kompyuter ekrani har bir qatorda 80 tadan pozitsiya bo‘lgan 25 ta satrga bo‘linadi. Grafikli ish holatida esa monitordagi har qanday tasvir xuddi televizor ekranidek, ya’ni ma’lum bir ranga bo‘yalgan nuqtalar to‘plami kabi hosil bo‘ladi. Tasvirning qanchalik tiniqligi videoadapterning imkoniyatiga, ya’ni gorizontal va vertikal bo‘yicha chiqariladigan nuqtalar miqdoriga qarab belgilanadi. Masalan, videoadapter SVGA ekranga quyidagicha - 640x480, 800x600, 1024x768 nuqtalarni beradi.

2.Ekranni grafik holatga o‘tkazish
Oddiy matnli щolatdan grafik щolatga o‘tish uchun Graph modulining InitGraph prosedurasi ishlatiladi.
                   InitGraph(Gd,Gm,Path);
bu erda        Gd   -drayver nomeri;  Gm  -rejim nomeri;
Path -kerakli drayverga yo‘l ko‘rsatadi.
Agar Path=’’ bo‘sh bo‘lsa drayverni joriy kotologdan izlaydi.      Agar Gd=0 bo‘lsa, kerakli drayverni o‘zi avtomatik ravishda tanlaydi, ya’ni Gd=Detect. Detect nolga teng parametr. Graph - modulini chaqirish dastur bosh qismida beriladi, ya’ni
uses
                                 Graph;
Grafik rejimni oldingi holatiga qaytarish uchun, ya’ni yopish uchun CloseGraph; prosedurasi ishlatiladi.

 

  3.Graph modulining protsedura va funksiyalari


Ekranda har bir nuqta o‘z koordinatasiga ega. Koordinata boshi ekranning yuqori chap burchagi bo‘lib, u (0,0) dan boshlanadi. Nuqtalar koordinatasi pastga va o‘nga qarab o‘sib boradi. 
Graph – modulining protsedura va funksiyalarini ko‘rib chiqamiz:
PutPixel(x,y,color); -protsedura ekranda koordinatasi (x,y) bo‘lgan nuqtani tasvirlaydi. Color parametri shu nuqtaga rang beradi.
Misol: PutPixel(100,120,Red); bu erda ekranning (100,120) nuqta qizil rangda tasvirlanadi. Red=4 nuqtaga qizil rang beradi.
GetPixel(x,y); -funksiyasi nuqta rangini aniqlaydi.
Misol: Col:=GetPixel(50,80); bu erda Col parametriga nuqta rangi yuboriladi. 
Line(x1,y1,x2,y2); -protsedura koordinatalari (x1,y1) va (x2,y2) bo‘lgan kesmani chizadi.
Circle(x,y,Radius); - markazi (x,y) nuqta bo‘lgan va radiusi Radius bo‘lgan aylana chizadi.
Rectangle(x1,y1,x2,y2); -protsedura to‘g‘ri to‘rtburchak chizadi.
(x1,y1) -yuqori chap burchak koordinatasi;
(x2,y2) -pastki o‘ng burchak koordinatasi.
SetColor(Color); -protsedura rasmga rang beradi. Color rang nomeri.
Quyidagi ranglar ishlatiladi:

Rang nomeri



Rang

Rang nomeri

Rang

Bleck=0              

qora           

Blue=1                

ko‘k

Green=2      

yashil

Cyan=3              

Bryuzarang

Red=4       

qizil  

Magenta=5 

malinarang

Brown=6              

jigarrang    

LightGray=7       

och kulrang

DarkGray=8

to‘q kulrang

LightBlue=9        

och havorang

LightGreen=10   

och yashil  

LightCyen=11      

och bryuzarang

LightRed=12       

och qizil     

LightGray=13      

och malinarang

Yellow=14        

sariq          

White=15     

oq

Misol 2.
Quyidagi dastur to‘g‘ri to‘rtburchak chizadi.
Program TT;
Uses Graph;
Var gd,gm: Integer;       
Begin 
gd:=detect;   InitGraph(gd,gm,’’);         
Rectangle(30,30,120,120); Readln;
CloseGraph;
End.   

Bar(x1,y1,x2,y2);    -rangli yoki shtrixlangan to‘g‘ri to‘rtburchak chizish;
Bar3d(x1,y1,x2,y2,depth,top); -rangli yoki shtrixlangan paralelopeped chizish;
 FillEllipse(x,y,xradius,yradius); -rangli yoki shtrixlangan ellips chizish;
SetFillStyle(Style,Color); -shtrix va rang berish. Bu erda  Style shtrix, Color rang tanlovchi o‘zgarmas parametr.
Style o‘zgarmas parametr bo‘lib, u har xil shtrixlar bilan figuralarni to‘ldiradi. Ular quyidagilardir:
Const 
EmptyFill=0;        { fon rangi }   
SolidFill=1;           { joriy rangni beradi }
LineFill=2;            { qalin gorizantal chiziq } 
StstashFill=3;       { ingichka qiyshiq chiziq }
StoshFill=4;          { qalin qiyshiq chiziq }
BkStashFill=5;     { qalin qiyshiq chiziq }
LtstashFill=6;       { qiyshiq yo‘l-yo‘l chiziq }
HatchFill=7;        { katakchalar bilan to‘ldirish }
XhatchFill=8;      { qiyshiq katak bilan to‘ldirish } 
InterLeaveFill=9; { qiyshiq shtrix chiziq }
WideDotFill=10;    { kam nuqtalar bilan to‘ldirish } 
CloseDotFill=11;    { bo‘lak-bo‘lak nuqtalar  } 
UseFill=12;                     { foydvlanuvchi shtrixi }
Grafik rejimda matn yozish uchun quyidagi protseduralar ishlatiladi. 
SetTextStyle(Font, Detection, Size); -kerakli shriftni ishga tushiradi.
Bu erda  
Font           - shriftni tanlash;
Detection    - yozuv yo‘nalishini belgilash;
Size            - shrift o‘lchamini tanlash.
SHrift va matn yozuvi yo‘nalishi quyidagi o‘zgarmas bilan aniqlanadi.
Const                                     { shrift }
DefaultFont=0;     { standart shrift }
TriplexFont=1;     { vektorli shrift }
{ tekst yo‘nalishi }
HarizDir=0;          { chapdan o‘nga }
VertDir=1;            { patsdan yuqoriga } 
OutTextXY(x,y,TextString); -(x,y) koordinatali nuqtadan TextString nomli matn qatorini kiritadi.

++++++++++++++++++++++++++++++++++++++++++++++++++++



Paskalda massivlar va uning elementlarini tartiblash usullari

1.Kirish
Ko‘p hollarda jadval yoki matritsalar ko‘rinishidagi ma’lumotlar bilan ish yuritish kerak bo‘ladi. Jadvalda ma’lumotlar juda ko‘p bo‘lgani sabab, ularning har bir yacheykasidagi sonni mos ravishda bitta o‘zgaruvchiga qiymat qilib berilsa ular ustida ish bajarish ancha noqulayliklarga olib keladi. SHu sabab dasturlashda bunday muammolar massivlarni ishlatish yordamida hal qilinadi.

2.Massivlar va ular ustida ish yuritish.

         Massiv - bu bir nom bilan belgilangan qiymatlar to‘plami yoki jadvaldir. Massivning har bir elementi massiv nomidan so‘ng o‘rta qavs ichiga olingan raqam va arifmetik ifoda yozish bilan belgilanadi. Qavs ichidagi raqam massiv indeksini belgilaydi. Vektorni bir o‘lchovli massiv, matritsani ikki o‘lchovli massiv deb qarash mumkin. 


Bir o‘lchovli massivda uning har bir elementi o‘zining joylashgan o‘rin nomeri bilan aniqlanadi va nomeri qavs ichida indeks bilan yoziladi. Ikki o‘lchovli massiv elementi o‘zi joylashgan satr va ustun nomerlari yordamida aniqlanadi. SHu sabab ikki o‘lchamli massiv elementi ikkita indeks orqali yoziladi. Masalan: A[i,j]  bu erda i-satr nomeri j-ustun nomerini bildiradi.   
Har bir massiv o‘z o‘lchamiga ega bo‘lib va u dasturda e’lon qilingan bo‘lishi kerak. Massivni e’lon qilish dasturning bosh qismida berilib, uning yozilishi umumiy holda quyidagicha bo‘ladi:
                   :Array[o‘lcham] of ;      
Masalan:
A,B:Array[1..100] of real;
C,A1,D:Array[1..10,1,,15] of real;
Bu erda A va B massivlari 100tadan elementga ega. C,A1,D1 massivlari esa 10x15=150 tadan elementga ega.
Massivlarni e’lon qilishdan maqsad massiv elementlari uchun kompьyuter xotirasidan joy ajratishdir.
Massiv elementlari qiymatlarini kiritish uchunssikl operatorlaridan foydalaniladi.         Misol: For i:=1 to 10 do Read(A[i]);
Bu misolda A massivning 10 ta elementi qiymatini ekrandan ketma-ket kiritish kerak bo‘ladi. Xuddi shunday massiv qiymatlarini ekranga chiqarish ham mumkin. Misol: For i:=1 to 10 do Write(A[i]);
Dasturda massiv elementlarini ishlatganda ularning indeksi e’lon qilingan chegaradan chiqib ketmasligi kerak.

3.Massiv elementlarini tartiblash usullari.

         Massivni tartiblashtirishning bir necha usullari (algoritmlari) mavjud. Ulardan quyidagi usullarni qarab chiqamiz:


-tanlash usuli;
-almashtirish usuli.
Tanlash usuli yordamida massivni o‘sish bo‘yicha tartiblashtirish algoritmi quyidagicha:
1.Massivning birinchi elementidan boshlab qarab chiqilib eng kichik element topiladi.
2.Birinchi element bilan eng kichik element joylari almashtiriladi. 
3.Ikkinchi elementidan boshlab qarab chiqilib eng kichik element topiladi.
4.Ikkinchi element bilan eng kichik element joylari almashtiriladi. 
5.Bu protsess bitta oxirgi elementgacha takrorlanadi.
Bu algoritm dasturi quyidagicha bo‘ladi:

  Program Sort;


Const  n=5;
Var i, j, min, k, buf: Integer;   a: Array[1..n] of Integer;   
Begin
Writeln (‘Massivni tartiblashtirish’);
Write (n:3,’ -ta massiv elementini kiriting’);
For k:=1 to n Do Read(a[k]); 
For i:=1 to n-1 Do 
Begin    { kichik elementni topish } 
min:=i;
For j:=i+1 to n Do 
Begin
If a[j]buf:=a[i];    a[i]:=a[min];  a[min]:=buf;
For k:=1 to n Do  Write (a[k],’ ‘);
Writeln;
End; 
End;
Writeln(`Massiv tartiblashtirildi.`);
End.

Dastur natijasi:

         Massivni tartiblashtirish
5 ta massiv elementini kiriting
12 -3 56 47 10
Tartiblatirish
-3 12 56 47 10
-3 10 56 47 12
-3 10 12 47 56
-3 10 12 47 56
Massiv tartiblashtirildi.

         Almashtirish usuli yordamida massiv elementlarini o‘sib borishda tartiblashtirish algoritmi quyidagicha:


1.Massivning birinchi elementidan boshlab ketma-ket hamma qo‘shni elementlar bir-biri bilan solishtirilib, agar birinchisi ikkinchisidan kichik bo‘lsa ular joyi almashtirilib  boriladi. 
2.Bu protsess davomida kichik qiymatli elementlar massiv boshiga katta elementlar esa oxiriga siljitilib boriladi. SHu sabab bu usul «puzirka» usuli ham deyiladi.  
3.Bu protsess massiv elementlar sonidan bitta kam marta takrorlanadi. 
Masalan: 
3 2 4 5 1 bunda 3 bilan 2 va 5 bilan 1 almashtiriladi.
2 3 4 1 5 bunda 4 bilan 1 almashtiriladi.
2 3 1 4 5 bunda 3 bilan 1 almashtiriladi.
2 1 3 4 5 bunda 2 bilan 1 almashtiriladi.
1 2 3 4 5 
Bu algoritm dasturi quyidagicha bo‘ladi:

  Program Sort;


Const  n=5;
Var i,j,min,k,buf: Integer;  a: Array[1..n] of Integer;    
Begin
Writeln (‘Massivni puzirek(kupikcha) usulida tartiblashtirish’);
Write (Size:3,’ta massiv elementini kiriting’);
For k:=1 to n Do Read(a[k]); 
Writeln (‘Tartiblatirish’);
For i:=1 to n-1 Do 
Begin
For k:=1 to n-1 Do 
Begin
If a[k]>a[k+1] then 
Begin
buf:=a[k];   a[k]:=a[k+1];  a[k+1]:=buf;
End;
End;     
For k:=1 to n Do  Write (a[k],’ ‘);  Writeln;
End;
Writeln(‘Massiv tartiblashtirildi.’);
End.

Dastur natijasi:


Massivni puzirek usulida tartiblashtirish
5 ta massiv elementini kiriting
3  2  4  1  5
Tartiblashtirish
2  3  4  1  5
2  3  1  4  5
2  1  3  4  5
1  2  3  4  5
Massiv tartiblashtirildi.

         Massivda eng kichik yoki eng katta elementni izlash algoritmi ma’lumki birinchi element eng kichik (katta) deb olinib keyin boshka elementlar bilan ketma-ket solishtirilib chiqiladi. Solishtirilish oxirgi elementgacha bajariladi. Quyida bu algoritm dasturi keltirilgan:

Program MinMax;
Var i,min: Integer;     a: Array[1..10] of Integer;       
Begin
Writeln (‘Massivdan eng kichik elementni izlash’);
Write (’ 10-ta massiv elementini kiriting’);
For i:=1 to 10 Do Read(a[i]); 
min:=1;
For i:=2 to 10 Do  
If a[i]Writeln(‘Izlanayotgan eng kichik element:’,a[min]);
Writeln(‘Element nomeri’,min);
End.

++++++++++++++++++++++++++++++++++++++++++++++++++++++



Download 98.52 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2020
ma'muriyatiga murojaat qiling