Algoritm pdf


Download 292.61 Kb.
Pdf ko'rish
bet1/7
Sana17.12.2022
Hajmi292.61 Kb.
#1025440
  1   2   3   4   5   6   7
Bog'liq
algoritm



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 GetEnumerator()
{
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:
  1   2   3   4   5   6   7




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