Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr


 C++ tilida o‘rnatilgan qism dasturlar



Download 5,36 Mb.
Pdf ko'rish
bet222/335
Sana02.08.2021
Hajmi5,36 Mb.
#136132
1   ...   218   219   220   221   222   223   224   225   ...   335
Bog'liq
Dasturlash asoslari(O'zbekcha)

 
8.2. C++ tilida o‘rnatilgan qism dasturlar 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
239 
 
C++  tilida  o‘rnatilgan  funksiyalar  shablonli  funksiyalar  deb  nomlanadi. 
Shablonli funksiyalar quyidagi ko‘rinishga ega bo‘ladi: 
 
template  
 
Sinf bo‘lgan parametrlarga ega bo‘lishi mumkin bo‘lgan aniq funksiyalar 
Shablonli  funksiya  sinf  bo‘lgan  hech  bo‘lmasa  bitta  parametrga  ega  bo‘lishi 
lozim. Har qanday bunday parametr quyidagi ko‘rinishda bo‘ladi: 
 
class identifikator 
 
Masalan, quyidagi shablonli funksiyani ko‘rib chiqamiz 
 
template  
Type max (Type first, Type second) 
{ return first>second ? first:second; 

 
Bu  yerda  Type  –  parametr  bo‘lib,  funksiya  ishlovchi  ma’lumotlar  tipini 
ko‘rsatadi.  Bunday  shablonli  funksiya  nusxalarini  ma’lumotlarning  har  qanday  tipi 
bilan  ishlash  uchun  yaratish  mumikn.  Masalan,  int  tipi  uchun  protsedura  nusxasi 
quyidagicha bo‘lishi mumkin: 
 
int max (int first, int second) { 
return first> second ? first: second; 
 
Ushbu  amallarni  makroaniqlash  (makros)  ko‘rinishida  tavsiflash  mumkin, 
ammo  bu  holda  u  noto‘g‘ri  ishlashi  mumkin.  Makros  quyidagi  ko‘rinishda  bo‘lsin 
deylik: 
 
define max (a,b) ((a) > (b) ? (a) : (b) 
 
Ushbu  makros  o‘rnatiluvchan  hisoblanadi,  ya’ni  u  har  qanday  sonli  tipdagi 
ma’lumotlar  bilan  ishlaydi.  Ammo,  u  har  doim  ham  to‘g‘ri  ishlamaydi,  asosan, 
nosozliklarga ega parametrlar orqali chaqirilgan hollarda, masalan: 
 
max (x++, y) 
 
Bu quyidagi natijaga olib keladi: 
 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
240 
 
((x++)> (y) ? (x++) : (y)) 
 
x o‘zgaruvchisi qiymatlari u o‘zgaruvchisi qiymatidan katta bo‘lgan har safar, x 
o‘zgaruvchisi qiymati ikki marta oshadi. 
C++  tilida  shablonli  funksiyalari  nusxalari  o‘z  holicha  yaratiladi.  Masalan, 
yuqorida  aniqlangan  shablonli  funksiyalar  nusxalarini  quyidagi  kod  fragmenti 
yordamida  ikki  marta  yaratish  mumkin:  int  tipli  va  char  tipili  parametrlar  uchun, 
albatta: 
 
int a, b, c; 
char d, e, f; 
… 
c=max (a, b); 
f=max (d, e); 
 
Quyida  C++  tilidagi  o‘rnatilgan  qism  dastur  versiyasi  keltirilgan  bo‘lib,  u  8.8.1 
bo‘limda  ko‘rib  chiqilgan.  U  oldingi  versiyasidan  salgina  farq  qiladi,  chunki  C++ 
tilidagi massivlar indeksi butun bo‘lishi lozim. 
 
template  
void generic_sort (Type list[], int len { 
int top, bottom; 
Type temp; 
for (top = 0; top for (bottom=top+1; bottomif (list[top]>list[bottom]) { 
temp = list[top]; 
list[top]=list[bottom]; 
list[bottom]=temp; 
} //* for siklining oxiri (bottom = … 
} //** o‘rnatilgan sortirovka qilish funksiyasining oxiri 
 
Quyida ushbu shablonli funksiyasining nusxasini yaratishga misol keltirilgan: 
 
float flt_lit[100]; 
… 
generic_sort(flt_list, 100); 
 
Ada tilidagi o‘rnatilgan qism dasturlar va C++ tilidagi shablonli funksiyalar qism 
dasturlarga  turlicha  qaraydi,  bunda  rasmiy  parametrlar  chaqirilganda  faktli 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
241 
 
parametrlar tiplari bilan dinamik holda bog‘lanadi. Bu holda, kodning birgina nusxasi 
kerak bo‘ladi. 
Smalltalk, Java, Ada 95 va C++ tillarida chaqiruvlar metodning kerakli versiyasi 
bilan dinamik bog‘lanadi, bunda u faktli parametrlar tiplariga muvofiq bo‘ladi. Ushbu 
mavzu 11 bobda o‘rganib chiqilgan. 

Download 5,36 Mb.

Do'stlaringiz bilan baham:
1   ...   218   219   220   221   222   223   224   225   ...   335




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish