O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi farg’ona davlat universiteti kurs ishi mavzu: C# dasturlash tilida dasturlashda lambda-ifodadan foydalanish bajardi


Lambda-ifodalari orqali dasturlar tuzish



Download 229,99 Kb.
bet13/13
Sana31.12.2021
Hajmi229,99 Kb.
#276575
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi f

3.2 Lambda-ifodalari orqali dasturlar tuzish


Lambda-ifodalaridan foydalanishda kirish parametrlari turlari aniq yoki barchasi aniq bo'lishi kerak, aks holda CS0748 kompilyator xatosi yuz beradi.

  1. using System;
    namespace Lambda_1
    {
        class Program
        {
            delegate int Operation(int x, int y);
            static void Main(string[] args)
            {
                Operation operation = (x, y) => x + y;
                Console.WriteLine(operation(10, 20));
                Console.WriteLine(operation(40, 20));
                Console.ReadKey();
            }
        }
    }

    Dastur natijasi:





  1. using System;
    namespace Lambda_2
    {
        class Program
        {
            delegate int kvadrat(int x);
            static void Main(string[] args)
            {
                kvadrat k = i => i * i;
                Console.Write("Sonni kiriting: ");
                int a=int.Parse(Console.ReadLine());
                Console.WriteLine("Uning kvadrati: "+k(a));
                Console.ReadKey();
            }
        }
    }



Dastur natijasi:


using System;
namespace Funk_2
{
    class Program
    {
        public static int r (int x)
        {
            int y=x*x; return y;
        }
        static void Main(string[] args)
        {
            Console.Write("Sonni kiriting: ");
            int a=int.Parse(Console.ReadLine());
            Console.WriteLine("Uning kvadrati: "+r(a));
            Console.ReadKey();
        }
    }
}


using System;
namespace Lambda_3
{
    class Program
    {
        delegate void Salom();
        static void Main(string[] args)
        {
            Salom s1 = () => Console.WriteLine("Salom!");
            Salom s2 = () => Console.WriteLine("Xush kelibsiz.");
            s1(); s2();
            Console.ReadKey();
        }
    }
}

Dastur natijasi:


using System;

namespace Lambda_3
{
    class Program
    {
        public static void Salom()
        {
            Console.WriteLine("Salom!");
            Console.WriteLine("Xush kelibsiz.");
        }
        static void Main(string[] args)
        {
            Salom();
            Console.ReadKey();
        }
    }
}



  1. using System;

    namespace Lambda_4
    {
        class Program
        {
            delegate void ChangeHandler(ref int x);
            static void Main(string[] args)
            {
                Console.Write("Sonni kiriting: ");
                int x = int.Parse(Console.ReadLine());
                ChangeHandler ch = (ref int n) => n = n * 2;
                ch(ref x);
                Console.WriteLine(x);
                Console.ReadKey();
            }
        }
    }
    Dastur natijasi:





  1. using System;

    namespace Lambda_5
    {
        class Program
        {
            delegate void Hello();
            static void Main(string[] args)
            {
                Hello message = () => Show_Message();
                message();
                Console.ReadKey();
            }
            private static void Show_Message()
            {
                Console.WriteLine("Assalomu alaykum!");
            }
        }
    }

Dastur natijasi:




  1. using System;

    namespace Lambda_6
    {
        class Program  
        {
            delegate bool IsEqual(int x);
             
            static void Main(string[] args)
            {
                int[] integers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                int result1 = Sum(integers, x => x > 5);
                Console.WriteLine(result1);
                int result2 = Sum(integers, x => x % 2 == 0);
                Console.WriteLine(result2);
                Console.ReadKey();
            }
         
            private static int Sum (int[] numbers, IsEqual func)
            {
                int result = 0;
                foreach(int i in numbers)
                {
                    if (func(i))
                        result += i;
                }
                return result;
            }
        }
    }



Dastur natijasi:


MAVZUGA OID TESTLAR

Standart testlar


№1 Fan bobi - ; Fan bo’limi- ; Qiyinlik darajasi-.

Lambda ifodasi tuzilishiga ko’ra necha turga bo’linadi?

2

4

3

6

№2 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Blokli lambda ifodasini yaratishda uning tanasi qanday qavsga o’raladi?

Katta qavs

O’rta qavs

Kichik qavs

Qavsga o’ralmaydi

№3 Fan bobi -; Fan bo’limi - ; Qiyinlik darajasi-



Lambda operatori qaysi javobda to’g’ri ko’rsatilgan?

=>

=

<>

<=>

№4 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Nima noma'lum usullarning kengaytmasi bo'lib, ular aniq kiritilmagan parametrlar va qiymatlarni qaytarishga imkon beradi.

Lambda ifodalar

Delegatlar

Anonim usullar

Mahalliy funksiyalar

№5 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Lambda operatori qaysi operator bilan bir xil ustuvorlikka ega hisoblanadi?

Tayinlash

Tanlash

Shart

Taqqoslash

№6 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Qiymat qaytarmaydigan lambda-ifodalarini qanday delegat turlariga o’tkazish mumkin

ActionDelegat

Bunday lambda-ifodalar mavjud emas

Lambda-ifodalarini delegat turlariga o’tkazib bo’lmaydi.

FuncDelegat

№7 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Rekusiv algoritmlarni quyidagilarda qaysi biri yordamida yaratish osonroq?

Mahalliy funsiyalar

Lambda ifodalar

Anonim usullar

Ifoda daraxti

№8 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Blokli lambda ifodalari tanasi eng ko’pi bilan nechta ifodadan iborat bo’lishi mumkin?

Cheklanmagan

2

3

5

№9 Fan bobi -; Fan bo’limi-; Qiyinlik darajasi-.



Lambda-ifodasi birinchi bor C# ning qaysi versiyasida qo’llanilgan?

3.0

3.5

2.0

5.1


Nosdantart testlar


  1. Lambda ifodasining berilishini to’g’ri ketma-ketlikda belgilang.

A

Lambda-ifodasi tanasi

B

Kirish parametri

C

Lambda operatori

Javob:

1-

2-

3­-

Javobi:

Javob:

1-B

2-C

3­-A



  1. Quyida noto’g’ri berilgan mulohazani aniqlang.

1

Lambda ifodalari daraxt-ifodalar qurilishida keng qo'llaniladi.

2

Lambda ifodalari alohida vazifa bo'lishi mumkin.

3

Lambda ifodalari boshqa usullarga murojaat qilishi mumkin.

4

tashqi o'zgaruvchilar lambda ifodalarida anonim usullarda bo'lgani kabi ishlatilishi va olinishi mumkin emas.

Javob:




Javobi:

Javob:

4



  1. a) mahalliy funksiyalar b) lambda ifodalar
    Mulohazani yuqoridagi so’zlardan mosini qo’yib to’ldiring:

(1) ­­­­­­­­_________________ nomlarga ega. (2)_________________ anonim usul bo'lib, ular Func yoki Action turlarga bo'linadi. (3)_________________ deklaratsiyasiga har qanday kod joylashgan joyda murojaat qilish mumkin. (4)_______________ o'zgaruvchiga kirishdan oldin unga tayinlanishi kerak. (5)_______________ ular e'lon qilinganida delegatlarga aylantiriladi. (6)___________________ faqat vakolat sifatida ishlatilganda vakolatxonalarga aylantiriladi.

Javob:

1-

2-

3-

4-

5-

6-

Javobi:

Javob:

1-a

2-b

3-a

4-b

5-b

6-a



  1. Quyidagilarni mosini belgilang.



  1. kkita parametrga ega va hech qanday qiymatga ega bo'lmagan lambda ifodasi … vakiliga aylantirilishi mumkin. 

    1. Func

  1. Bitta parametrga ega va qiymatni qaytaradigan lambda ifodasi … vakiliga aylantirilishi mumkin.

    1. Action

Javob:

1-

2-

Javobi:

Javob:

1-b

2-a

  1. To’g’ri fikrlarni aniqlang. Javoblar jadvaliga “ha” yoki “yo’q” so’zlarini yozing.
    1) Har qanday lambda ifodasi delegat turiga aylantirilishi mumkin.
    2) Blokli lambda-ifodalarining mazmuni har qanday sonli ifodalardan
    3) Agar lambda ifodasida bir nechta parametr ishlatilsa, ular qavs ichiga o'ralgan bo'lishi kerak.
    4) Lambda ifodalari anonim funksiyalarning maxsus shakli hisoblanganligi uchun ularni alohida vazifalar sifatida bajarish mumkin.
    5) Lambda ifodalari faqat LINQ bilan ishlashda ishlatiladi.

Javob:





3)

4)

5)

Javobi:

Javob:

  1. ha

  1. yo’q

3) ha

4) ha

5) yo’q

  1. Quyidagi C# ga doir atamalar va ularning xususiyatlarini juftlang.

  1. Lambda operatori

  1. …ning tanasida bir nechta operatorlarni ko'rsatishga ruxsat beriladi.

  1. Blokli lambda-ifodasi

  1. … bu o'rnatilgan so'rovlar tili

  1. LINQ

  1. … lambda ifodalarini e'lon qilish uchun ishlatiladi.

  1. anonim usul

  1. Lambda ifodasi … ni ifodalashning qisqa usulidir.

Javob:

1-

2-

3-

4-

Javobi:

Javob:

1-c

2-a

3-b

4-d


XULOSA


Bu kurs ishida turli dasturlar tuzishda lambda-ifodalaridan foydalanish metodikasi ko’rib chiqildi. Lambda-ifodalari – anonim funktsiyalar singari ishlatiladi , farqi shuki, Lambda ifodalarida siz kiritgan qiymat turini ko'rsatishingiz shart emas, shuning uchun uni ishlatish uchun yanada moslashuvchan qiladi. Lambda ifodasi anonim funksiya bo'lib, asosan LINQda delegatlar yaratish uchun ishlatiladi. Oddiy qilib aytganda, bu deklaratsiyasiz usul, ya'ni kirish modifikatori, qaytish qiymati deklaratsiyasi va nomi.

Lambda ifodasi anonim usulni ifodalashning qisqa usulidir. Anonim usullar ham, Lambda ifodalari ham usulning bajarilishini ichki qismni aniqlashga imkon beradi, ammo anonim usul aniq usuldan parametr turlarini va qaytish turini aniqlashni talab qiladi. Lambda ifodasi C # 3.0 tipidagi infer xususiyatidan foydalanadi, bu esa kompilyatorga kontekst asosida o'zgaruvchining turini aniqlashga imkon beradi. Bu juda qulay, chunki bu biz yozishda juda ko'p narsalarni ya’ni olgan sinfga alohida usulni e'lon qilish va yozish harakatini tejaydi. Usul faqat bir marta ishlatiladigan va usulning ta'rifi qisqa bo'lgan joylarda ayniqsa foydali!

FOYDALANILGAN ADABIYOTLAR


  1. O’zbekiston Respublikasi “Kadrlar tayyorlash m illiy dasturi “to’g’risidagi qonuni, “ Xalq ta’limi jurnali“, 1998 yil, 2- soni.

  2. I.A.Karimov “Barkamol avlod - O’zbekiston taraq qiyotining poydevori” Toshkent, Sharq nashriyoti , 1999 yil.

  3. Paul Short “Lambdas in C#” 2013 year.

  4. Герберд Шилдт “C# 4.0: полное руководствo” 2011 г.

  5. GoalKicker.com “C# Notes for Professionals”.

  6. https://www.geeksforgeeks.org/lambda-expressions-in-c-sharp/.

  7. https://www.codingame.com/playgrounds/213/using-c-linq---a-practical-overview/lambda-expressions


Download 229,99 Kb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish