Mirzo Ulug’bek nomidagi O’zbekiston Milliy Universiteti Jizzax filiali
Kompyuter ilmlari va dasturlashtirish kafedrasi
Algoritmik tillar va dasturlash
16-mavzu. Kortejlar. Kortejni e’loni. Kortej elementlariga murojaat. Kortejning qo‘llanilishi.
16-mavzu. Kortejlar. Kortejni e’loni. Kortej elementlariga murojaat. Kortejning qo‘llanilishi.
KUTILAYOTGAN NATIJA:
Reja:
1. Kortejlar.
2. Kortejni e’loni.
3. Kortej elementlariga murojaat.
4. Kortejning qo‘llanilishi.
Talabalarda fanga nisbatan qiziqish uyg’otish va mustaqil ta’lim olishga o’rgatish;
Tayanch iboralar: Kortej, Sanab o’tiluvchi tur
1. Kortejlar.
Tuples C # 7.0 da qo'shilgan qiymatlar to'plami bilan ishlashning qulay usulini taqdim etadi.
Yorliq qavs ichiga olingan qiymatlar to'plamini ifodalaydi:
var tuple = (5, 10);
Bunday holda, ikkita qiymatga ega bo'lgan katakcha belgilanadi: 5 va 10. Ushbu qiymatlarning har biriga Item [ordinal_number_of_field_in_tuple] nomli maydonlar orqali murojaat qilishimiz mumkin.
static void Main(string[] args)
{
var tuple = (5, 10);
Console.WriteLine(tuple.Item1); // 5
Console.WriteLine(tuple.Item2); // 10
tuple.Item1 += 26;
Console.WriteLine(tuple.Item1); // 31
}
Bunday holda, tur to'g'ridan-to'g'ri aniqlanadi. Shuningdek, biz tuple o'zgaruvchisi turini aniq belgilashimiz mumkin:
(int, int) tuple = (5, 10);
static void Main(string[] args)
{
(int ,int) tuple = (count: 5, sum: 10);
Console.WriteLine(tuple.count); // 5
Console.WriteLine(tuple.sum); // 10
}
Tupleda ikkita raqam mavjud bo'lganligi sababli, biz tur ta'rifida ikkita raqamli turni ko'rsatishimiz kerak. Katakchani aniqlashning yana bir usuli:
(string, int, double) person = ("Tom", 25, 81.23);
Tuplening birinchi elementi s, ikkinchi element int tipidagi, uchinchisi ikkilamchi turni ifodalaydi.
static void Main(string[] args)
{
(string, int, double, double) person=("Oybek", 38, 81.5,1.75);
Console.WriteLine("Mening ismim "+person.Item1);
Console.WriteLine("Yoshim " + person.Item2);
Console.WriteLine("Vaznim " + person.Item3);
Console.WriteLine("Bo'yim "+person.Item4);
}
Endi katak maydonlariga murojaat qilish uchun Item1 va Item2 nomlari o'rniga ularning asl nomlari ishlatiladi.
Biz butun o'zgaruvchini aniqlash uchun o'zgaruvchidan foydalana olmaymiz, lekin uning maydonlari uchun alohida o'zgaruvchilardan foydalanamiz:
static void Main(string[] args)
{
var (name, age) = ("Oybek", 38);
Console.WriteLine(name); // Oybek
Console.WriteLine(age); // 38
}
2. Sanab o’tiluvchi turlar
Biz tuple maydonlari bilan Metod orasida aniqlangan o'zgaruvchilar bilan ishlashimiz mumkin.
Tupllar metodga parametr sifatida o'tkazilishi mumkin, ular metodning qaytish natijasi bo'lishi mumkin
Masalan, umumiy vaziyatlardan bir metod ikki yoki undan ortiq qiymatni qaytarishi, metod esa faqat bitta qiymatni qaytarishi mumkin. Tuplelar ushbu vazifani bajarishning eng maqbul usulinidir:
class Program
{
static void Main(string[] args)
{
var tuple = GetValues();
Console.WriteLine(tuple.Item1); // 1
Console.WriteLine(tuple.Item2); // 3
}
private static (int, int) GetValues()
{
var result = (1, 3);
return result;
}
}
static void Main(string[] args)
{
var tuple = Kortej_qiymati(new int[] { 1, 2, 3, 4, 5, 6, 7 });
Console.WriteLine(tuple.count);
Console.WriteLine(tuple.sum);
}
private static (int sum, int count) Kortej_qiymati(int[] numbers)
{
var result = (sum: 0, count: 0);
for (int i = 0; i < numbers.Length; i++)
{
result.sum += numbers[i];
result.count++;
}
return result;
}
static void Main(string[] args)
{
var (name, age) = GetTuple(("Oybek", 38), 25);
Console.WriteLine(name); // Oybek
Console.WriteLine(age); // 63
}
private static (string name, int age) GetTuple((string n, int a) tuple, int x)
{
var result = (name: tuple.n, age: tuple.a + x);
return result;
}
E’tiboringiz uchun rahmat! - E’tiboringiz uchun rahmat!
Do'stlaringiz bilan baham: |