Mavzu: Borland C++ Builderda




Download 356.92 Kb.
Pdf ko'rish
Sana05.05.2023
Hajmi356.92 Kb.
#56870
Bog'liq
Fayzullayeva Oybahor dasturlash tillari pdf
15 amaliy ish, Kompyuter texnigi0001, 12-MAVZU INFLATSIYA, 1, shuni, 3, 1-ishdasturlash


Fayzullayeva
Oybahor
Dasturlash tillari
Mavzu:Borland C++ Builderda
funksiya va protseduralar bilan ishlash


Borland C++ Builderda funksiya va protseduralarga doir dastur tuzish. 
Biror bir masalani yechishning chiziqli bo‟lgan algoritmiga dastur tuzishda algoritmd
agi 
keltirilgan ketma-ketliklar asosida operatorlar yoziladi. Bunday dasturlarni tuzushda
asosan 
o‟zgaruvchilar qiymatini kiritish, natijalarni chiqarish va shu bilan birga o‟zlashtirish 
operatorlari 
ishlatiladi. 
Dasurdagi o‟zgaruvchilar qiymatlarini dastur ichida o‟zlashtirish operatori
yordamida 
ham berish mumkin. Lekin dasturda o‟zgaruvchi qiymatini tashqaridan kiritish qulayl
ik tug‟diradi 
va umumiylikni ta‟minlaydi. 
Read operatori o‟zgaruvchilar qiymatlarini ekrandan kompyuter xotirasiga kiritish uc
hun 
ishlatiladi. U quyidagi ko‟rinishlarga ega. 
Read(c1,c2,...,cn); 
Readln(c1,c2,...,cn); 
Readln; 
bu yerda c1,c2,...,cn - o‟zgaruvchilar nomi; ln - qo‟shimchasi qiymatni kiritib keyingi
qatorga 
o‟tishni bildiradi. 
Misollar: Read(Sm1,Sm2); 
Readln(x1,x2,x3); 
Readln; 
Bu yerda birinchi operator Sm1 va Sm2 o‟zgaruvchilar qiymatini


ekrandan kiritadi. Ikkinchi 
operator esa x1,x2,x3 o‟zgaruvchilar qiymatini ekrandan kiritadi va kiritishni keyingi
qatorga 
o‟tkazadi. Oxirgi operator esa kiritishni kutadi va qator o‟tkazadi. 
Write operatori oddiy ma‟lumotlarni va o‟zgaruvchilar qiymatlarini
kompyuter ekraniga chiqarish 
uchun ishlatiladi. U quyidagi ko‟rinishlarga ega. 
Write(c1,c2,...,cn); 
Writeln(c1,c2,...,cn); 
Writeln; 
bu yerda c1,c2,...,cn - oddiy matnlar yoki o‟zgaruvchilar nomi; ln - qo‟shimchasi
chiqarishni 
keyingi qatorga o‟tishni bildiradi. 
Misollar: Write(Summa); 
Write(„Natija yuk‟); 
Write(„Tenglama yechimi x1=‟, x1, ‟x2=‟, x2); 
Oddiy ma‟lumotlarni chiqarishda ular matn deb qaraladi va u qo‟shtirnoq ichida
yoziladi. 
CHiqarish operatori yordamida o‟zgaruvchilar qiymatini format ko‟rinishda ham
berish mumkin: 
Write(c:m:n); 
bu yerda s-o‟zgaruvchi; m-shu o‟zgaruvchi qiymati uzunligi; n-
qiymatning kasr qismi va unda n-
1<="" p=""> 
Misol. Write(x:8:4); 
Agar x=155.01021 bo‟lsa, quyidagi yozuv chiqadi 115.0102. 
Write(„Maxsulot soni:‟, kol:5); 
Agar kol=15 bo‟lsa, quyidagi yozuv ekranga chiqadi, 
Maxsulot soni: 15 
Dastur matnini tushuntirish maqsadida ko‟pincha dasturda izohlar keltiriladi.
Dasturda izohlar 
istalgan joyda berilishi mumkin. Izoh katta qavs ichida yoziladi. 
Masalan: { Bu matn dasturga izoh beradi } 
{ Bu joyda yechim aniqlanmoqda } 
Dasturda ma‟lum hisoblashlarning natijalarini biror bir o‟zgaruvchida saqlash uchun 
o‟zlashtirish 
(yuborish) operatori ishlatilib, u «:=» belgisi yordamida qiymat yuborilishi kerak


bo‟lgan 
o‟zgaruvchidan keyin qo‟yiladi. 
Masalan: i:=0; i-qiymati nolga tenglashadi, ya‟ni i o‟zgaruvchiga nol yuboriladi
deb tushuniladi. 
Bunda mashina i o‟zgaruvchi uchun ajratilgan xotirasiga nol yozib saqlaydi. 
Misol: B:=5; C:=4; A:=(B+C)/2; 
Bu yerda, agar A butun identifikator bo‟lsa, uning qiymati 4 ga, aks holda esa 4.5 qiy
matga ega 
bo‟ladi. 
CHiziqli strukturali algoritmlarni dastur shaklida yozish uchun oldin ishlatiladigan o‟z
garuvchilar 
ruyxati keltirilib, keyin algoritmdagi bajarilishlar ketma-ket
ravishda amalga oshirilishi kerak. 
Misol: Tekislikdagi ikki nuqta orasidagi masofani topish dasturi. 
Program XY; 
Var 
x1,y1,x2,y2,d: Real; 
Begin 
Write(„Nukta koordinatalarini kiriting:‟); 
Read(x1,y1,x2,y2); 
d:=Sqrt(Sqr(x1-x2)+Sqr(y1-y2)); 
Writeln; 
Writeln(„Nukta koordinatalari:‟,x1,y1,x2,y2); 
Writeln(„Masofa=‟,d); 
Readln; 
End. 
Delphida konsol ilovasini yaratish 
Delphida konsol ilovalarini har xil usullarda yaratish mumkin. Ulardan eng oson usuli 
quyidagicha: 
1.Delphi muhiti ishga tushiriladi. 
Pusk=>Programmы=>Borland Delphi 
2.Bosh menyudan File punktini ochib u yerdan New, keyin esa Other buyruqlari beril
adi. File=> 
New=> Other 
3.Forma va loyihalarni saqlash uchun ochilgan maxsus oynadan
(bu oynaga Delphi arxiv oynasi 
deyiladi) “Console Application” piktogrammasi tanlanadi va Ok tugmasi bosiladi. 


4.Natijada ekranda loyiha oynasi ochiladi (.dpr kungaytmali nom bilan). 
Begin – end ichiga olingan 
{ TODO -oUser -cConsole Main : Insert code here } 
izoh o‟rniga loyiha faylining dastur matni kiritiladi. 
Tuzilgan dasturni ishga tushirishdan oldin uni saqlash kerak bo‟ladi. Uni saqlash file=
>Save All 
buyrug‟ini berish lozim. Har bir loyiha alohida yangi papkaga saqlanishni tavsiya ber
adi. Loyiha 
faylini saqlashda aloxida kursatilmagan holatida ProjectN.dpr nomli fayl nomini tavsi
ya qiladi. Bu 
yerda N har bir ketma ket nomlanadigan loyiha nomeri (son, masalan 1,2,3,..). Lekin
biz loyiha 
faylini istalgan nom bilan saqlashimiz mumkin. Masalan MyProgram.dpr. Bu nom
avtomatik 
ravishda chiqadi. 
Loyihani saqlab bo‟lgandan so‟ng, uni bajarishga beramiz. Buning uchun bosh
menyudan 
quyidagi buyruqni berish lozim: Run=>Run yoki F9 funksional tugmachasini bosish
kerak bo‟ladi. 
Dastur narmal ishga tushgandan so‟ng ekranda DOSning standart dastur oynasi
namayon bo‟ladi. 
Misol. Ikkita sonning yig‟indisi, 
ayirmasi
, ko‟paytmasi va bo‟linmasini hisoblash dasturini 
yarating. 
Bu misolni yechish uchun yuqorida keltirilgan to‟rtta ketma ketlikni bajaramiz va
dastur kodini 
kiritamiz. 
Dastur kodi kiritilgandan so‟ng uni saqlab keyin ishga tushiramiz. Natijada ekranda
Dos oynasi 
ochilib unda “Ikkita son kiriting:” so‟zi chiqadi. Keyin ikkita son kiriib Enter tugmasini
bosish 
kerak bo‟ladi. 
Natijada quyidagi javoblar chiqadi. 
5.Keyin Obekt inspektori (Object Inspector) va Ob‟ekt daraxtlar (Object TreeView)


oynalari 
yopiladi. 
6.Bosh 
menyudan 
Project=>View 
Sourse 
buyrug‟i 
beriladi. 
Endi Delphida konsol ilovasini yaratishning ikkinchi usulini ko‟rib chiqamiz: 
1.Delphi muhiti ishga tushiriladi. 
Pusk=>Programmы=>Borland Delphi 
2.Bosh menyudan File punktini ochib u yerdan New, keyin esa Application
buyruqlari 
beriladi. File=> New=> Application 
3.Forma oynasi yopiladi. 
4.Dastur kodini yozish (modul) oynasi yopiladi. YOpish vaqtida “Save changes to
Unit1.pas?” 
(“Unit1.pasdagi o‟zgarishlar saqlansinmi?”) so‟rov oynasi chiqadi. U yerdan “NO”
(Yo‟q) 
buyrug‟i beriladi. 
Natijada 
quyidagi 
Project1.drp 
loyiha 
fayli 
oynasi 
ekranga 
chiqadi. 
7.Loyiha fayli agar lozim bo‟lsa boshqa nom bilan saqlanadi. 
Bu oynadan Program, Uses, Begin va End kalit so‟zlari qoldirilib boshqalari o‟chirilad
i va keyin 
dastur matn kodlari kiritiladi. 
Agar loyiha fayli yozilgan papka ichi qaralsa unda quyidagi fayllar ro‟yxatini
ko‟ramiz. 
MyProgram.dpr -loyiha fayli (bosh loyiha moduli); 


MyProgram.exe -ilova fayli yoki bajariluvchi fayl. Bu fayl kompilyator yordamida,
ya‟ni 
kompilyatsiya jarayonida, agar dasturda sintaktik xatoliklar bo‟lmasa tuziladi.
Boshqacha so‟z 
bilan aytganda, agar sizga o‟z dasturingizni ishga tushurish mumkin bo‟lsa, masalan 
F9 tugmasini 
bosish bilan bajariluvchi fayl avtomatik ravishda tuziladi. Bajariluvchi fayl avtonom
fayl bo‟lib 
uning uchun boshqa fayl yoki biror dasturiy sistema mavjud bo‟lishi shart emas. Uni
siz ishga 
tushirishingiz mumkin boshqa dasturlar kabi, masalan Paint, Bloknot yoki o‟yin dast
urlarini ishga 
tushurganday; 
MyProgram.cfg -loyiha konfiguratsiyasi fayli; 
MyProgram.dof -loyiha opsiya fayli. Unda dasturning to‟g‟ri ishlaganligi haqida
axborotlar 
saqlanadi, 
Loyiha opsiya va konfiguratsiyasi fayllari loyiha faylining tuzilishi bilan bir vaqtda
Delphi 
tomonidan avtomatik ravishda tuziladi. Ko‟p hollarda yuqorida keltirilgan fayllardan 
tashqari yana 
.dpr kengaytmali fayl ham tuziladi. Bu fayl loyiha faylining (rezerv fayli) nusxasi
bo‟lib 
hisoblanadi. Masalan, MyProgram.-
dpr. Bu fayl loyiha fayli tuzilishi davrida bir vaqtning o‟zida 
tuzib boriladi. Agar asosiy loyiha faylida buzilish yoki uchirilish sodir bo‟ladigan bo‟ls
a, u holda 
uni MyProgram.-dpr faylidan tiklash mumkin. Buning uchun kengaytma oldidagi “-
” belgini olib 
tashlash 
kifoya. 
Qism dasturlar 
Dasturlash jarayonida shunday holatlar bo‟ladiki, bir xil operatorlar ketma-
ketligini dasturning bir 
necha joylarida takroran yozishga to‟g‟ri keladi. Bunday takrorlanishni yo‟qotish


maqsadida 
dasturlashning ko‟pgina tillarida qism dastur tushunchasi kiritilgan. Takrorlanadigan
operatorlar 
ketma-ketligini mustaqil dastur bo‟lagi -qism dastur ko‟rinishida bir marotaba
yoziladi va bu 
dastur bo‟lagi kerak bo‟lgan joylarda esa, unga murojaat qilinadi xalos. Paskal tilida 
qism dastur 
protsedura yoki funksiya ko‟rinishida beriladi 
Ayrim masalalarni yechishda ma‟lum parametrlarning har xil qiymatlarida bir xil
hisoblashlarni 
bajarishga to‟g‟ri keladi. Bunday hollarda dastur hajmini kichiraytirish maqsadida pr
otsedura yoki 
funksiyalar tashkil qilish zarur. Protsedura
yoki funksiyaga murojat qilish dasturda uning nomini 
ko‟rsatish orqali amalga oshiriladi. Kerakli parametrlar shu nomdan keyin beriladi.
Protsedura 
yoki funksiyalar tashkil qilinganda ular dasturning bosh qismida beriladi.
Ularga murojaat qilish 
esa dasturning asosiy qismining kerakli joyida beriladi. Asosiy dastur bilan
protsedura orasida 
o‟zgaruvchilar qiymat almashuvi formal va faktik parametrlar yordamida amalga
oshiriladi. 
Protsedura yoki funksiyaga murojaat qilinganda boshqarilish qayerdan uzatilsa yana
shu joyga 
qaytib keladi. Protsedura ichida yana bir necha protsedura yoki funksiya ishlatilishi
mumkin. 
Dasturda e‟lon qilingan o‟zgaruvchilar, shu dasturdagi protsedura va funksiyalarga n
isbatan global 
deyiladi. Protsedura va funksilar ichida e‟lon qilingan o‟zgaruvchilar lokal deyiladi.
Ularning 
ta‟sir doirasi shu protsedura va funksiyalarning ichida bo‟ladi xalos. 
Protseduralarni e‟lon qilish dasturning bosh qismida keltiriladi va
u quyidagicha boshlanadi. 
Procedure 
(); 
M: Procedure AB (x,y); 
Formal parametrlarni shu protsedura bosh qismida yoki sarlavhada e‟lon qilish
mumkin. 


M. Procedure AB (x,y: Real); 
Har qanday protsedurani kichik bir dastur deb qarash mumkin. Protsedura ham
dasturga o‟xshab 
bosh va asosiy qismlardan toshkil topadi. Bosh qismda
protsedura nomi va uning parametrlari 
e‟lon qilinadi. Asosiy qism operatorlar ketma-ketligidan tashkil topgan bo‟lib, ular
Begin - End 
ichiga olinadi. Protsedura nomi foydalanuvchi tamonidan beriladi. 
Misol. 
Procedure Dr(Var x,h1,h2,z1,z2 : Real); 
Var h,z: Real; 
Begin 
h:=h1/z1+h2/z2; 
z:=z1/z2; 
x:=(h+z)/2; 
End; 
Bu protsedurada h1,z1,h2,z2 parametrlar qiymati protseduraga murojat qilinganda
aniqlangan 
bo‟lishi kerak. Natijani esa x-
parametr uzatadi. h va z o‟zgaruvchilar ichki o‟zgaruvchilardir. Bu 
protseduraga dasturdan quyidagicha murojaat qilinadi. 
Dr(x,h1,h2,z1,z2); 
Protseduraga murojaat qilinganda mos parametrlar qiymati bir biriga uzatiladi. Beril
adigan formal 
va faktik parametrlar soni teng va ular turlari bir xil bo‟lishi shart. Lekin parametrlar 
nomlari har 
xil bo‟lishi mumkin. 
Funksiyalardan foydalanish va ularni tashkil qilish xuddi protsedura kabi bo‟lib, ularn
i e‟lon qilish 
dasturning 
bosh 
qismida 
keltiriladi 
va 

quyidagicha 
boshlanadi: 


Function ():; 
M. Function Min (x,y:Real): Real; 
Funksiya nomi foydalanuvchi tamonidan beriladi. Funksiyaga murojaat qilish uning
nomi orqali 
beriladi. 
Funksiya ham protseduraga o‟xshab bosh va asosiy qismlardan toshkil topadi.
Funksiyaning 
protseduradan farqi, unga murojat qilinganda natija faqat bitta bo‟lib, u shu
funksiya nomiga 
uzatiladi. 
Misol 1. Јuyidagi hisoblashni funksiyani ishlatgan holda dastursini tuzing. 

Program Kol; 
Var ncm,n,m,l: Integer; 
Function Fact (k: Integer): Integer; 
Var P,i: Integer; 
Begin 
P:=1; 
For i:=1 to k do P:=P*I; 
Fact:=P; 
End; 
Begin 
Read(n,m); l:=n-m; 
ncm:=Fact(n)/Fact(m)/Fact(l); 
Write(„ncm=‟,ncm); 
End. 
Misol 2. Quyidagi hisoblashni protsedurani ishlatgan holda dastursini tuzing. 

Program Fun1; 
Var a,b,z,c,d,t1,t2,t3: Real; 
Procedure Th(Var x,r: Real); 
Var c: Real; 
Begin 
c:=exp(2.0*x); 
r:=(c-1)/(c+1); 
End; 
Begin 


Read(a,b); th(a,t1); 
c:=a-b; th(c,t2); 
d:=Sqr(a)-Sqr(b); th(d,t3); 
z:=(t1+Sqr(t2))/Sqr(t3); 
Write(„z=‟,z:10:3); 
End. 
Oldindan e‟lon qilish 
Bizga ikki protsedura A va B berilgan bo‟lib A protsedura B protseduraga murojaat qi
lsin va A 
ta‟rifi B ta‟rifidan oldin kelsin. Masalan: 
Procedure A (i : integer); 
begin 
V (i); 
Writeln(i); 
end; 
Procedure V (var j : integer) ; 
begin 
j:=j*2; 
end; 
Bunday ta‟rif xatolikka olib keladi. CHunki A protsedura xali ta‟riflanmagan
protseduraga 
murojaat qilmokda. Bu holda B protsedurani quyidagicha oldindan e‟lon kilish
lozim: 
Procedure V (var j : integer); Forward; 
Procedure A (i : integer); 
begin 
V (i); 
Writeln(i); 
end; 
Procedure V (var j : integer) ; 
begin 
j:=j*2; 
end; 
Oldindan e‟lon qilishda protsedura tanasi standart direktiva Forward bilan
almashtiriladi. 
Belgi va qatorlar bilan ishlash maxsus funksiyalari 
Paskal tilida bir qancha maxsus protsedura va funksiyalar mavjud bo‟lib, ular quyida


gi guruhlarga 
bo‟linadi: 
-qatorni 
qayta ishlash

-fayllar bilan ishlash; 
-dinamik o‟zgaruvchilar uchun xotirani boshqarish; 
-arifmetik funksiyalar; 
-ekran bilan ishlash. 
Ularning ayrimlarini ko‟rib chiqamiz: 
Halt- dasturni bajarishdan to‟xtatish; 
Odd(i)- I-toq bo‟lsa “True” aks holda “False” qiymat oladi; 
Edit- bajarilayotgan blokdan chiqish; 
Random- 0 dan 1 gacha bo‟lgan sonni tasoddifan olish; 
Int(x)- sonning butun qismini olish; 
Frac(x)- sonning kasr qismini olish; 
Round(x)- berilgan sonni yaxlitlab butun olish; 
GotoXY(x,y)- kursorni ko‟rsatilgan joyga qo‟yish; 
ClrScr- ekranni tozalab, kursorni ekran boshiga qo‟yish; 
Trunc- argumentning butun qismi: 
Str(I;Var S:String)- raqamni simvolga o‟tkazish (I-ifoda yoki o‟zgaruvchi); 
Val(S:String; Var P;ko:Integer)- simvolni raqamga o‟tkazish (P-o‟zgaruvchi); 
Length (S:String)- qator uzunligini aniqlash. 
Pos(st1,st) - qatordagi qator qismi holatini aniqlash. 
Misol: st:=‟Toshkent‟; st1:=‟kent‟; p:=pos(st1,st); 
Javob: p=4. Agar izlanayotgan qator qism qatorda yo‟q bo‟lsa qiymat
nulga teng bo‟ladi. 
Copy(st,m,n) - qatordan fragment kesib oladi. 
Misol: st:=‟Toshkent‟; p:=Copy(st,4,4); 
Javob: p=‟kent‟. 
Delete(st,m,n) - qatordan fragment kesib olib tashlaydi. 
Misol: st:=‟Toshkent‟; p:=Delete(st,4,4); 
Javob: p=‟Tosh‟. 
Modullar 
Turbo Paskal sistemasida juda ko‟p maxsus tayyor protsedura va funksiyalar
mavjudki ular har 
qaysi o‟z vazifasiga ega bo‟lib unga biblioteka modullari deyiladi. Har bir biblioteka f


unksiya va 
protseduralardan tashkil topgan bo‟lib ma‟lum bir turdagi
masalani yechishga muljallangan. 
Modul deb protsedura va funksiyaning alohida kompilyatsiya qilinib maxsus .tpu ken
gaytmali fayl 
shaklidagi ifodalangan dastursiga aytiladi. Moduldan ixtiyoriy dastur ichida foydalani
sh mumkin. 
Moduldan foydalanish ya‟ni uni aktivlashtirish uchun dasturning bosh qismida
quyidagilarni 
keltirish 
zarur. 
Uses ; 
Misol: 
Program SS; 
Uses Crt,Graph; 
Turbo-Paskal sistemasida har bir foydalanuvchi o‟z modulini yaratishi
uchun yaratiladigan modul 
strukturasini quyidagicha tashkil kilish zarur. 
Uses ; 
Interface
. . . . . 
{Interfeys qism- ochiq (yozuvlar) qismi} 
. . . . . 
Implementation 
. . . . . 
{YOpiq (yozuvlar) qismi} 
. . . . . 
Begin 
. . . . . 
{Modulning asosiy qismi} 
. . . . . 
End. 
Bu yerda 
Unit - modulning sarlavhasi; 
Interface - modulning interfeysi, ya‟ni dastur va boshqa modullar uchun ochiq
(ko‟rinarli) 


qismining boshlanishini bildiradi. Bu qismda o‟zgarmaslar, kattaliklar tiplari,
protsedura va 
funksiyalar aniklanib kursatilgan bo‟ladi, lekin ularning butun
ko‟rinishi keyingi yopiq qismda 
beriladi. 
Implementation - modulning dastur va modullar uchun yopiq, ya‟ni ko‟rinmaydigan
qismining 
boshlani-shini bildiradi. Bu yerda interfeys qismda aniqlangan
protsedura va funksiyalar yana bir 
marta ko‟rsatilishi shart (ularning sarlavhalari bir xil bo‟lishi kerak). 
Initsializatsiya qismi Begin yozuvidan keyin boshlanadi, agar bu qism mavjud
bo‟lmasa Begin 
ham bo‟lmaydi. Bu qismda boshqaruvni asosiy programaga o‟tkizishgacha qadar baj
arilishi kerak 
bulgan operatorlar ruyxati joylashadi. 
Misol tariqasida ikki sonning eng katta va eng kichigini topish modulini yaratish
dastursini 
qaraymiz. Quyidagi dastur Min(x,y) va Max(x,y) funksyalarini o‟z ichiga olgan. 
Unit Study; 
Interface {Interfeys kism} 
Function Min(x,y:Integer):Integer; 
Function Max(x,y:Integer):Integer; 
Implementation {YOpik kism} 
Function Min(x,y:Integer):Integer; 
Begin 
If x<=y Then Min:=x Else Min:=y; 
End; 
Function Max(x,y:Integer):Integer; 
Begin 
If x>=y Then Max:=x Else Max:=y; 
End; 
{Initsializatsiya qismi mavjud emas} 
End. 
Bu modul kompilyatsiya qilinib Stadu.tpu fayl nomga ega bo‟lishi kerak. Undan
dasturda 
foydalanish uchun dastur bosh kismida Uses Study qatorini yozish kerak bo‟ladi. 
Turbo Paskal sistemasida quyidagi biblioteka modullari majud: 


System - standart protsedura va funksiyalarni o‟z ichiga olgan bo‟lib, bu modul
avtomatik 
ravishda aktivlashtirilgan bo‟ladi. 
Dos -
Ms Dos operatsion sistema imkoniyatlaridan foydalanuvchi protsedura va funksiyala
rni o‟z 
ichiga olgan. 
Crt - monitor ekrani va klaviatura bilan ishlash imkoniyatini yaratuvchi protseduralar
to‟plamini 
o‟z ichiga olgan. 
Graph - har xil monitor videoadapterlarini qullagan holda kompyuter grafik
imkoniyatlaridan 
foydalanuvchi ko‟plab protseduralar tuplamini o‟z ichiga oladi. 
Printer - printer bilan ishlovchi kichik modul. 
Dinamik bog‟lanuvchi bibliotekalar (DLL) 
Ta’rifi 
Dinamik boglanuvchi bibliotekalar dasturda boshka tillarda yaratilgan protsedura va 
funksiyalardan foydalanishga imkon beradi. Dinamik bibliotekalar bilan oddiy
modullar orasida 
juda ko‟p o‟xshashliklar mavjud ,lekin ikki jixatdan farq qiladi. 
Birinchidan dinamik bibliotekada e‟lon qilingan o‟zgaruvchilar va konstantalardan as
osiy dasturda 
foydalanib bo‟lmaydi. 
Ikkinchidan modullar statik usulda, ya‟ni kompilyatsiyaning komponovka bosqichida 
bog‟lanadi. 
Dinamik bibliotekalar dinamik ya‟ni dastur bajarilish jarayonida bog‟lanadi. Agarda
ikki dastur 
oddiy modulga murojaat qilsa shu modul ishlatilayotgan qismining ikki nusxasi
xotirada 
yaratiladi. Dinamik bibliotekaning ikki dastur murojaat qilayetgan qismi faqat bir
nusxada 
yaratiladi. 
Dinamik bibliotekaning o‟zgarishi dasturni qaytadan kompilyatsiya kilishga olib
kelmaydi. 
Borland C++ Builder da ko'rsatkichlar bilan ishlash
Ko'rsatkich. O'zining qiymati sifatida xotira manziliini ko'rsatuvchi
(saqlovchi) o'zgaruvchilarga - ko'rsatkich o'zgaruvchilar deyiladi.


Masalan : Ko'rsatkichning qiymati
1) 0x22ff40
2) 0x22ff33
3) va xakazo kabi xotiraning aniq qismi bo'lishi mumkin.
Boshqa o'zgaruvchilar kabi, ko'rsatkichlardan foydalanish uchun ularni e'lon
qilish, toifasini aniqlash shart.
int *countPtr, count;
bu yerda countPtr - int toifasidagi ob'ektga ko'rsatkich, count esa oddiy
butun (int) toifasidagi o'zgaruvchi. Ko'rsatkichlarni e'lon qilishda har bir
o'zgaruvchi oldigan * qo'yilishi shart.
Misol 1: Ko'rsatkich ko'rsatayotgan manzili qiymatini dasturi
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n = 5;
int * nPtr;
// & manzilini olish amali
nPtr = &n;
*nPtr = 15;
Edit1->Text=IntToStr(n);
Edit2->Text=IntToStr(nPtr);
Edit3->Text=IntToStr(*nPtr);
}
Natija:
Misol 2:Ko'rsatkich - joylashgan manzili dasturi
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n = 5;
int * nPtr;
nPtr = &n;
Edit1->Text=IntToStr(n);
Edit2->Text=IntToStr(&n);
Edit3->Text=IntToStr(nPtr);


Edit4->Text=IntToStr(*nPtr);
}
Natija:
Ekranda quyidagicha natija chiqariladi:
Murоjaatlar
Murоjaatlar e’lоnda ko’rsatilgan nоmning sinоnimi sifatida ishlatiladi, yani
bitta o’zgaruvchiga хar хil nоm bilan murоjaat qilish mumkin. Murоjaatni
dоimiy qiymatga ega bo’lgan ko’rsatkich dеb qarash mumkin bo’ladi.
Murоjaat quyidagicha e’lоn qilinadi:
 & ;
Bu yеrda  – murоjaat ko’rsatuvchi qiymatning toifasi, ‘&’ bеlgisi,
undan kеyin yozilgan - murоjaat toifasidagi nоm ekanligini
bildiruvchi оpеratоr.
Bоshqacha aytganda ‘&’ bеlgisiga adrеsni оlish amali dеyiladi.
Namuna:
int k;
int & p = k;
// p murоjaati - k o’zgaruvchisining altеrnativ nоmi

Download 356.92 Kb.




Download 356.92 Kb.
Pdf ko'rish