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.
|
метод Маглыу.струк
- Bu sahifa navigatsiya:
- Jumistiń tartibi
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 template 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling