Algoritm pdf
Download 292.61 Kb. Pdf ko'rish
|
algoritm
- Bu sahifa navigatsiya:
- ” FANIDAN MUSTAQIL ISH Topshirdi: : Xudoyberdiyev D Qabul qildi: Jomurodov D Jizzax 2022
- Iterator nima
- GetEnumerator()
O‘ZBEKISTON RESPUBLIKASI OLIY VA O‘RTA MAXSUS TA’LIM VAZIRLIGI MIRZO ULUG‘BEK NOMIDAGI O‘ZBEKISTON MILLIY UNIVERSITETI JIZZAX FILIALI “ AMALIY MATEMATIKA” FAKULTETI “ Kompyuter ilmlari va dasturlash ” KAFEDRASI “ Algoritm tillar va dasturlash ” FANIDAN MUSTAQIL ISH Topshirdi: : Xudoyberdiyev D Qabul qildi: Jomurodov D Jizzax 2022 3-mustaqil ish mavzusi boʻyicha quyidagi tushunchalarga tavsif berish tavsiya etiladi: 1. Iteratorlar va yield operatori 2. GetEnumerator metodi 3. Iteratorlar qachon qoʻllaniladi? Iterator nima? Iterator naqshlari keng tarqalgan bo'lib, .NET da u IEnumerable va IEnumerator interfeyslari va ularning umumiy hamkasblari bilan qamrab olingan. Iterator asosan qiymatlar to'plamini takrorlash uchun yield- (rentabellik) bayonotidan foydalanadigan kod blokini ifodalaydi . Ushbu kod bloki usul, bayonotning tanasini yoki xususiyatlarda blokni ko'rsatishi mumkin. Iterator ikkita maxsus ko'rsatmalardan foydalanadi: yield return : qaytariladigan elementni belgilaydi yield break : ketma-ketlikda boshqa elementlar yo'qligini ko'rsatadi. Quyidagi misolni ko’rib o’taylik: Numbers ww = new Numbers(); foreach (int n in numbers) { Console.WriteLine(n); } class Numbers { public IEnumerator { for (int i = 0; i < 6; i++) { yield return i * i; } } } Numbers sinfida GetEnumerator() usuli aslida iteratorni ifodalaydi. Daromadni qaytarish bayonoti qandaydir qiymatni qaytaradi (bu holda raqamning kvadrati). Dasturda foreach tsikli yordamida biz oddiy to'plam kabi Numbers ob'ektini takrorlashimiz mumkin. Har bir element foreach tsiklida qabul qilinganda, rentabellikni qaytarish bayonoti ishga tushiriladi, bu bitta elementni qaytaradi va joriy pozitsiyani eslab qoladi. Iteratorlar tufayli biz foreach tsiklidagi raqamni osonlikcha takrorlashimiz mumkin: //foreach(var n in 5) Console.WriteLine(n); foreach (var n in -5) Console.WriteLine(n); static class Int32Extension { public static IEnumerator GetEnumerator(this int number) { int k = (number > 0)? number: 0; for (int i = number - k; i <= k; i++) yield return i; } }// Bunday holda, iterator int yoki System.Int32 turi uchun kengaytma usuli sifatida amalga oshiriladi. Iterator usulida biz aslida 0 dan joriy raqamgacha barcha butun qiymatlarni qaytaramiz. class Person { public string Name { get; } public Person(string name) =>Name = name; } class Company { Person[] personnel; public Company(Person[] personnel) => this.personnel = personnel; public int Length => personnel.Length; public IEnumerator GetEnumerator() { for (int i = 0; i < personnel.Length; i++) { yield return personnel[i]; } } } __________________________________________________________________ Download 292.61 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling