Maqseti: Maǵlıwmatlardiń sazlanǵan hám payda qılı’natuǵIn túrlerin úyrenıw hám olardı ızertlew. Qoyılǵan másele


Download 0.89 Mb.
bet23/23
Sana30.03.2023
Hajmi0.89 Mb.
#1309317
1   ...   15   16   17   18   19   20   21   22   23
Bog'liq
метод Маглыу.струк

Jumistin maqseti: Paydalaniwshinin shablonlari yag’niy funksiya shablonlarin uyreniw ham olardi tadqiq qiliw.


Qo‘yilgan masala: C++tilinde putin, haqiqiy, belgili, logikaliq turdegi magliwmatlardi jariya etiw, nostandart yurlerdi jaratiw ham olarga baylanislimisallardin programmasin jaratip shigiw.


Jumistiń tartibi:

  • Tajribe jumisi teoriyaliq mag’lumatlardi u’yreniw;

  • Berilgen tapsirmalardin algoritmin islep shigiw;

  • C++ das’tu’rlew sharayatinda dasturdi jaratiw;

  • Natijelerdi tekseriw;

  • Esabat tayarlaw ham tapsiriw.

Funksiya shablonlari (function templates) ham funksiya jukleniwlerge uqsas tu’sinikler esaplanadi. Bunda eń tiykarg’ parq funksiya shablonlarinda a’mel ham birdey jol menen orinlaniladi. Ma’selen bir neche sonlar ishinen eń u’lkenin tabiw kerek bolsin. Sanlar toplami tek g’ana tipi menen parqlanadi, int, double yaki float. Islew algoritmi bolsa aynidir. Bul jag’dayda biz funksiyalardi ju’klep otirmastan, tek shablon jazip qoysaq boladi. Funkisya shabloni yaki ju’kleniwsiz ham bul ma’seleni sheshiw mu’mking’o degen soraw payda boladi.


Ma’selen, egar biz kiretug’in parametrlerdiń ha’mmesin long double qilsaq, qalegen sanli tipdag’i argumentti bere alamiz, sebebi kompilyator o'zi avtomatik yurde kiriw tiplarin long double g’a o'zgertiredi. Biraq, eger biz bunday funksiya jazatug’in bolsaq, yadtan ham tezlikden utilamiz. Da’stu’rimizde tek g’ana char tipindegi, bir baytli qiymatlar menen islesiwimiz mumkin. long double bolsa 10 bayt, ham eń u’lken sondi aniqlaw ushin sanlardi salistirg’animizda, long double
qiymatlardi salistiriw char tipindegi qiymatlardi salistiriwg’a qarag’anda ko'p waqt aladi. Har dayimam kompilyator tiplardi birinen ekinshisine tuwri keltire aladi.
Shablonlardiń strukturasi menen tanisayiq.
Bizdiń funksiya eki kiriw argumentin bir birine qossin, ham juwabin qaytarsin.
template
T summa(T a, T b) {
return ( a + b);
}
Shablon funksiya jariya ham aniqlaniwinan aldin template <> ifodasi jaziladi, <> qawsirmalardan keyin noxat-u’tir (;) qoyilmaydi. <> qawislar ishinda funksiya kiris parametrleri, shiqiw qiymati ham lokal o'zgeriwshiler tipleri beriledi. Bul formal tiplerniń ha’r biriniń aldinda class yaki typename (tip ati) so'zi qoyiliwi kerek. Joqaridag’i misalda T niń ornina qa’legen bosqa identefikator qoyiw mu’mkin. Misallar bereyik.
template javob hajmKub(uzunlik a, englik b, balandlik c);
template T maximum(T k, T l);
Joqarida jazg’an shablonimizdi qollag’an halga bir misal keltireyik.
// Shablonlar bilan ishlash
# include
template
T summa(T a, T b) {
return ( a + b );
}
int main()
{
int x = 22, y = 456;
float m = .01, n = 56.90; // kasrli sonda nuqtadan oldingi (butun qismdagi)
// nolni berish shart emas: ... m = .01 ...
cout << "int: 22 + 456 = " << summa(x,y) << endl;
cout << "float: 0.01 + 56.90 = " << summa(0.01,56.90) << endl;
return (0);
}
Ekranda:
int: 22 + 456 = 478
float: 0.01 + 56.90 = 56.91
Shablonlardi funksiyalardan tisqari klaslarg’ada qollansa boladi. Ko'rip turg’animizday, shablonlar tek bir ma’rtebe jaziladi. Keyin bolsa mas
Keletug’in tipler qoyilip, yazilip ketile beredi. Negizinde shablonlar C++ tiń standartina ju’da’ ko'p qollanilg’an. Eger bilib isletilse, shablonlar
Da’stu’rshiniń eń kuchli qurolina aylaniwi mu’mkin. Biz keyinrek ja’ne shablonlar temasina qaytamiz.



Download 0.89 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   23




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