Green Butterflies



Download 275 Kb.
Sana23.03.2022
Hajmi275 Kb.
#506636
Bog'liq
Dasturlash slayd

  • Aynan C# tili kuch, elegantlik va maʼnodorlikni o’zida muvaffaqiyatli birlashtirgan birinchi strukturaviy til bo’ldi. Uning bo’lishi mumkin bo’lgan xatolar masʼuliyatini tilga emas dastur tuzuvchi zimmasiga yuklaydigan prinsiplar bilan inobatga olgan holda sintaksisdan foydalanishdagi qisqalik va osonlik kabi xususiyatlari tezda ko’plab tarafdorlarini topdi. 1998-2001-yilda Microsoft kompaniyasi dasturchilari Anderson Xeylsberg va Scott Wiltaumota raxbarligida Microsoft.NET Framework dasturi platformasida ishlovchi C# (si sharp) dasturlash tili ishlab chiqildi.Hozirgi kunda C# dasturlash tili yuqori bosqichli dasturlash tillari ichida eng samarali dasturlash tillaridan hisoblanadi. C# dasturlash tilida dastur tuzish uchun Visual Studio .NET muhitidan yoki SharpDevelopdan foydalanamiz. C# dasturlash tili obektga mo’ljallangan dasturlash tili hisoblanadi. C# dasturlash tili kompilyatori .CS kengaytmali ko’rsatilgan fayllar majmuasini boshlang’ich kodga o’tkazadi.Bu majmua yordamida kompilyator .exe (bajaruvchi fayl) kengaytmali va dll (kutubxona fayli) fayllar hosil qilish mumkin.
  • 1-§. LINQ asoslari
  • LINQ (Language-Integrated Query) - ma'lumotlar manbasini so'rash uchun oddiy va qulay til. IEnumerable interfeysini amalga oshiradigan ob'ekt (masalan, standart to'plamlar, massivlar), DataSet, XML hujjati ma'lumotlar manbai bo'lishi mumkin. Lekin manba turidan qat'i nazar, LINQ hamma uchun ma'lumotlarni olish uchun bir xil yondashuvni qo'llash imkonini beradi.
  • LINQ ning bir nechta xususiyatlari mavjud:
  • LINQ to Objects : massivlar va kolleksiyalar bilan ishlash uchun ishlatiladi
  • LINQ to Entities : Entity Framework texnologiyasi orqali ma'lumotlar bazalariga kirishda foydalaniladi
  • LINQ to Sql : MS SQL Serverda ma'lumotlarga kirish texnologiyasi
  • LINQ to XML : XML fayllari bilan ishlashda foydalaniladi
  • LINQ to DataSet : DataSet obyekti bilan ishlashda foydalaniladi
  • Parallel LINQ (PLINQ) : Parallel so'rovlarni bajarish uchun ishlatiladi
  • Ushbu bobda asosiy e'tibor LINQ to Objects ga qaratiladi , ammo keyingi maqolalarda LINQ ning boshqa xususiyatlari ham ko'rib chiqiladi.
  • LINQ ning qulayligi nimada? Keling, eng oddiy misolni ko'rib chiqaylik. Massivdan ma’lum bir harf bilan boshlanadigan satrlarni tanlaymiz va olingan ro‘yxatni tartiblaymiz:
  •  
  • string[] teams = {"Бавария", "Боруссия", "Реал Мадрид", "Манчестер Сити", "ПСЖ", "Барселона"};
  • var selectedTeams = new List();
  • foreach(string s in teams)
  • {
  • if (s.ToUpper().StartsWith("Б"))
  • selectedTeams.Add(s);
  • }
  • selectedTeams.Sort();
  • foreach (string s in selectedTeams)
  • Console.WriteLine(s);
  • LINQ kengaytirish usullari
  • Standart sintaksisga qo'shimcha ravishda from .. in .. selectbiz LINQ so'rovini yaratish uchun interfeys uchun belgilangan maxsus kengaytma usullaridan foydalanishimiz mumkin IEnumerable. Odatda, bu usullar LINQ whereyoki tipidagi operatorlar bilan bir xil funksionallikni amalga oshiradi orderby.
  • Masalan:
  • string[] teams = { "Бавария", "Боруссия", "Реал Мадрид", "Манчестер Сити", "ПСЖ", "Барселона" };
  • var selectedTeams = teams.Where(t=>t.ToUpper().StartsWith("Б")).OrderBy(t => t);
  • foreach (string s in selectedTeams)
  • Console.WriteLine(s);
  • Foydalanilgan LINQ kengaytma usullari ro'yxati
  • Select : tanlangan qiymatlarning proyeksiyasini belgilaydi
  • Where: tanlash filtrini belgilaydi
  • OrderBy : mahsulotlarni ortib borish tartibida buyurtma qiladi
  • OrderByDescending : elementlarni kamayish tartibida buyurtma qiladi
  • ThenBy : elementlarni o'sish tartibida buyurtma qilish uchun qo'shimcha mezonlarni belgilaydi
  • ThenByDescending : elementlarni kamayish tartibida buyurtma qilish uchun qo'shimcha mezonlarni belgilaydi
  • Join : ma'lum xususiyatga asoslangan ikkita to'plamni birlashtiradi
  • GroupBy : elementlarni kalit bo‘yicha guruhlaydi
  • ToLookup : barcha elementlar lugʻatga qoʻshilgan holda elementlarni kalit boʻyicha guruhlash
  • GroupJoin : To'plamni birlashtirish va elementlarni kalit bo'yicha guruhlashni amalga oshiradi
  • Maks : maksimal qiymatni topadi
  • Take : ma'lum miqdordagi elementlarni tanlaydi
  • Skip : ma'lum miqdordagi elementlarni o'tkazib yuboradi
  • TakeWhile : Shart to'g'ri bo'lsa, ketma-ketlik elementlari zanjirini qaytaradi
  • SkipWhile : Berilgan shartni qanoatlantirsa, elementlarni ketma-ket o‘tkazib yuboradi va qolgan elementlarni qaytaradi.
  • Concat : ikkita to'plamni birlashtiradi
  • Zip : ma'lum bir shartga ko'ra ikkita to'plamni birlashtiradi
  • First : to'plamdagi birinchi elementni tanlaydi
  • FirstOrDefault : To'plamdagi birinchi elementni tanlaydi yoki standartni qaytaradi
  • Single : to'plamning bitta elementini tanlaydi, agar to'plamda bir nechta yoki kamroq element bo'lsa, istisno chiqariladi
  • SingleOrDefault : To'plamdagi birinchi elementni tanlaydi yoki standartni qaytaradi
  • ElementAt : Muayyan indeksdagi ketma-ketlik elementini tanlaydi
  • ElementAtOrDefault : Muayyan indeksdagi to'plam elementini tanlaydi yoki indeks diapazondan tashqarida bo'lsa, standart qiymatni qaytaradi
  • Namunalarni filtrlash va proyeksiyalash
  • Shart bo'yicha to'plamdan elementlarni tanlash uchun Where usulidan foydalaning . Masalan, 10 dan katta bo'lgan barcha juft elementlarni tanlaylik.
  • LINQ operatorlari bilan filtrlash:
  • int[] numbers = { 1, 2, 3, 4, 10, 34, 55, 66, 77, 88 }; IEnumerable<int> evens = from i in numbers where i%2==0 && i>10 select i; foreach (int i in evens) Console.WriteLine(i);
  • class User { public string Name { get;set; } public int Age { get; set; } public List Languages { get; set; } public User() { Languages = new List(); } }
  • Keling, foydalanuvchilar to'plamini yaratamiz va ulardan 25 yoshdan oshganlarni tanlaymiz:
  • List users = new List {
  • new User {Name="Том", Age=23, Languages = new List {"английский", "немецкий" }}, new User {Name="Боб", Age=27, Languages = new List {"английский", "французский" }}, new User {Name="Джон", Age=29, Languages = new List {"английский", "испанский" }}, new User {Name="Элис", Age=24, Languages = new List {"испанский", "немецкий" }} }; var selectedUsers = from user in users where user.Age > 25 select user; foreach (User user in selectedUsers) Console.WriteLine($"{user.Name} - {user.Age}");
  • Konsol chiqishi:
  • Endi murakkabroq filtrlarni ko'rib chiqamiz. Masalan, foydalanuvchi sinfida foydalanuvchi gapiradigan tillar ro'yxati mavjud. Agar foydalanuvchilarni til bo'yicha filtrlash kerak bo'lsa nima bo'ladi:
  • var selectedUsers = from user in users from lang in user.Languages where user.Age < 28 where lang == "английский" select user;
  • Natija:
  • Shunday qilib, ikkita manbadan namuna olishda birinchi manbaning har bir elementi ikkinchi manbaning har bir elementiga mos keladi. Ya'ni, siz 4 juft olasiz.
  • Orderby operatori ma'lumotlar to'plamini o'sish tartibida saralash uchun ishlatiladi :
  • int[] numbers = { 3, 12, 4, 10, 34, 20, 55, -66, 77, 88, 4 }; var orderedNumbers = from i in numbers orderby i select i; foreach (int i in orderedNumbers) Console.WriteLine(i);
  • 4-§. All va Any metodlari bilan ishlash
  • “All”, “Har qanday” va “Contains” usullari to‘plamning ma’lum shartga mos kelishini aniqlash imkonini beradi va natijaga qarab ular “to‘g‘ri” yoki “noto‘g‘ri”ni qaytaradi.
  • All usuli barcha elementlarning shartga mos kelishini tekshiradi. Misol uchun, keling, barcha foydalanuvchilar 20 yoshdan katta ekanligini va ism T harfi bilan boshlanganligini bilib olaylik:
  • List users = new List() { new User { Name = "Tom", Age = 23 }, new User { Name = "Sam", Age = 43 }, new User { Name = "Bill", Age = 35 } }; bool result1 = users.All(u => u.Age > 20); // true if (result1)
  • Console.WriteLine("У всех пользователей возраст больше 20"); else Console.WriteLine("Есть пользователи с возрастом меньше 20"); bool result2 = users.All(u => u.Name.StartsWith("T")); //false if (result2) Console.WriteLine("У всех пользователей имя начинается с T"); else Console.WriteLine("Не у всех пользователей имя начинается с T");
  • Barcha foydalanuvchilar 20 yoshdan oshgan
  • Hamma foydalanuvchilar T bilan boshlamaydi
  • Barcha foydalanuvchilar 20 yoshdan katta bo'lganligi sababli, o'zgaruvchi result1bo'ladi true. Shu bilan birga, barcha foydalanuvchilarning T harfi bilan boshlangan nomi yo'q, shuning uchun ikkinchi o'zgaruvchi result2teng bo'ladi false.
  • Har qanday usul xuddi shunday ishlaydi, faqat to'plamning kamida bitta elementi ma'lum bir shartga javob berishini aniqlashga imkon beradi:
  • bool result1 = users.Any(u => u.Age < 20); //false if (result1) Console.WriteLine("Есть пользователи с возрастом меньше 20"); else Console.WriteLine("У всех пользователей возраст больше 20"); bool result2 = users.Any(u => u.Name.StartsWith("T")); //true if (result2) Console.WriteLine("Есть пользователи, у которых имя начинается с T"); else Console.WriteLine("Отсутствуют пользователи, у которых имя начинается с T");
  • Xulosa
  • Hozirgi zamonda yurtimizda Axborat Texnologiyalarini rivojlantirish yo’lida juda ko’p ishlar amalga oshirilmoqda. Xususan ko’p joylarda dasturlash orqali ko‘p loyihalar oson va qulay bajarilyapti. Dasturlash chet davlatlarida anchagina rivojlangan masalan Amerika, Malayziya, Koreya, Hindiston.Hozirgi kunda har-xil dasturlash tillari mavjud C++, C#, Java, va hokozo. Shularning orasidan C# Windows muhitida ishlaydigan dastur tuzish uchun qulay vosita bo’lib, kompyuterda dastur yaratish ishlarini avtomatlashtiradi, xatoliklarni kamaytiradi va dastur tuzuvchi ishini oshiradi kamchiliklarni kamaytiradi. C# dastur zamonaviy visual loyihalash texnalogiyasi asosida obyektga yo’naltirilgan dasturlash tili hisoblanadi.
  • Men bu kurs ishi davomida C# dasturlash tilida Console Application bo’limida LINQ so’rovlari bilan ishlash mavzusini kengroq yoritib berishga harakat qildim. LINQ so’rovlarining asosiy vazifalari va uning qulayligi haqida ham tushunarli bo’lishi uchn kengroq va aniqroq to’xtalib o’tdim .Bu kurs ishimda LINQ so’rovlari haqida ma’lumot berib dastur orqali vazifalarni tushuntirishga harakat qildim.
  • Foydalangan adabiyotlar.
  • 1. Герберт Шилдт. C# 4.0: полное руководство.: Пер. с англ.М.: ООО ―И.Д. Вильямс, 2011.1056 с.
  • 2. Джозеф Албахари и Бен Албахари C# 6.0. Справочник. Полное описание языка, 6-е изд.: Пер. с англ. – М.: ООО ―И. Д. Вильямс, 2016. – 1040.
  • 3. http://dastur.uz-Kompyuter dasrurlari va kompyuterda dasturlashga oid forum,xabar va yangiliklar.
  • 4. Metanit.com sayti va You Tube platformasi.
  •  

E’tiboringiz uchun rahmat!


Download 275 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©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