Guruh talabasi Azimov Farruxbek


Download 27.61 Kb.
Sana12.06.2020
Hajmi27.61 Kb.
#117947
Bog'liq
Azimov Farrux C#


313-17 guruh talabasi

Azimov Farruxbek

C# tilida ilovalar yaratish fani

Yakuniy nazorat ish

3-variant

Savollar


1.CIL roli.

2.Ruxsat modifikatorlari.

3.WPF arxitekturasi

4.С# tilida: 0 dan 100 gacha bo'lgan 50 ta tasodifiy sonlardan iborat massiv yarating. 72 dan kichik bo'lgan barcha raqamlarni toping va ularni alohida qatorga qo'ying



Javoblar

  1. Ilgari Microsoft Intermediate Language ( MSIL ) yoki Intermediate Language ( IL ) deb nomlangan Common Intermediate Language ( CIL ) - bu Umumiy Til Infratuzilmasi (CLI) spetsifikatsiyasida belgilangan oraliq tillarning ikkilik o'qitish to'plami.  CIL yo'riqnomalari CLI-ga mos keladigan Common Time Runtime kabi ish vaqti muhiti tomonidan bajariladi. CLI-ga yo'naltirilgan tillar CIL-ni kompilyatsiya qiladi. CIL ob'ektga yo'naltirilgan , stek-asoslangan baytekod . Runtime odatda bir vaqtning o'zida CIL ko'rsatmalarini mahalliy kodga tuzadi. CIL dastlab .NET tillarining beta-relizlari paytida Microsoft Intermediate Language (MSIL) sifatida tanilgan. C # va CLI-ni standartlashtirish tufayli, byt-kod endi rasmiy ravishda CIL deb nomlanadi.  Windows Defender virus ta'riflari u bilan tuzilgan ikkilik ma'lumotlarga (MSIL) murojaat qilishni davom ettiradi. CLI dasturlash tillarini tuzishda dastlabki kod platforma yoki protsessorga tegishli ob'ekt kodiga emas, balki CIL kodiga tarjima qilinadi. CIL bu protsessor va platformadan mustaqil bo'lgan, umumiy til infratuzilmasini qo'llab-quvvatlaydigan har qanday muhitda bajarilishi mumkin bo'lgan , masalan Windows .NET ish vaqti yoki Mono platformasining o'zaro ishlash vaqti kabi. Nazariy jihatdan, bu turli platformalar va protsessor turlari uchun turli xil ishlaydigan fayllarni tarqatish ehtiyojini yo'q qiladi. CIL kodi ish vaqtida xavfsizligi uchun tekshiriladi, bu esa kompilyatsiya qilingan fayllarga qaraganda xavfsizligini va ishonchliligini ta'minlaydi. Bajarish jarayoni quyidagicha: Resurs kodi CIL baytekodiga o'zgartiriladi va CLI to'plami yaratiladi.CIL yig'ilishini amalga oshirgandan so'ng, uning kodi mahalliy kodni yaratish uchun ish vaqtining JIT kompilyatori orqali o'tadi. Ushbu bosqichni bekor qiladigan, ammo bajarilishi mumkin bo'lgan faylni ko'chirish qiymati hisobiga vaqtdan oldin kompilyatsiya qilish ham mumkin. Kompyuterning protsessori mahalliy kodni bajaradi. Umumiy vositachilik tili ob'ektga yo'naltirilgan va stackga asoslangan . Bu shuni anglatadiki, protsessorlarning aksariyat arxitekturalarida bo'lgani kabi, ma'lumotlar ro'yxatga olish kitoblaridan tortib olinmay, axlatga tashlanadi . X86da u quyidagicha ko'rinishi mumkin:

eax , edx qo'shing IL-ga mos keladigan kodni quyidagicha ko'rsatish mumkin, bu erda 0 - eax va 1 - edx: ldloc . 0 // mahalliy o'zgaruvchini 0 ni stakka itaringldloc . 1 // lokal o'zgaruvchini 1-ni suyakka suring add // pop-ni qo'shing va yuqoridagi ikkita ustunni qo'shing va natijani stakka suring stloc . 0 // pop stack elementini mahalliy 0 ga o'zgaruvchiga saqlang Mana, stakanda itarilgan ikkita mahalliy. Qo'shimcha yo'riqnomani chaqirish bilan operandlar paydo bo'ladi va natija itariladi. Qolgan qiymat keyin to'ldiriladi va birinchi mahalliy joyda saqlanadi.

  1. Ruxsat modifikatorlari (yoki ruxsat spetsifikatorlari ) ob'ektlarga yo'naltirilgan tillardagi kalit so'zlar bo'lib, ular sinflar, usullar va boshqa a'zolarning kirishini belgilaydi . Kirish modifikatorlari tarkibiy qismlarni encapsulatsiyasini osonlashtirish uchun ishlatiladigan dasturlash tili sintaksisining o'ziga xos qismidir. C ++ da faqat uchta kirish modifikatori mavjud. C # ularning sonini oltitaga uzaytiradi,  , Java- da to'rtta modifikator mavjud, , ammo buning uchun uchta kalit so'z. Java-da, paketli-shaxsiy modifikator uchun odatiy holatdan oldin kalit so'zsiz.

Sinf ommaviy deb e'lon qilinganida, u xuddi shu paketda va boshqa paketlarda belgilangan sinflarga kirishi mumkin. Bu sinflar uchun eng ko'p ishlatiladigan spetsifikator. Ammo sinfning o'zi shaxsiy deb e'lon qilinishi mumkin emas. Agar kirish spetsifikatori ko'rsatilmagan bo'lsa, standart kirish cheklovlari qo'llaniladi. Sinf bitta paketdagi boshqa sinflarga kirish huquqiga ega, ammo paketdan tashqari sinflarga kirish huquqiga ega bo'lmaydi. Agar sinfga kirish mumkin emas deb aytsak, bu shunchaki shu sinf ob'ektini yaratish yoki shu tip turidagi o'zgaruvchini e'lon qilishimiz mumkin emasligini anglatadi. Himoyalangan kirish spetsifikatorini sinfga nisbatan qo'llash mumkin emas.

Barcha turdagi va a'zolar kirish huquqiga ega. Foydalanish darajasi, ularni sizning yig'ilishingiz yoki boshqa yig'ilishlaringizdagi boshqa kodlardan foydalanish mumkinligini boshqaradi. Siz e'lon qilganingizda, biron bir a'zoning kirish huquqini belgilash uchun quyidagi kirish modifikatorlaridan foydalaning:



  • public : Bir xil yig'ilishda yoki boshqa havolada ishora qiladigan boshqa a'zoga har qanday boshqa kod orqali kirish yoki kirish huquqini berish mumkin.

  • shaxsiy : Turga yoki a'zoga faqat bitta class yoki tuzilishdagi kod orqali kirish mumkin.

  • himoyalangan : Turga yoki a'zoga faqat shu class kod orqali yoki shu class olingan class .

  • ichki : Turiga yoki a'zosiga bir xil yig'ilishdagi har qanday kod orqali kirish mumkin, ammo boshqa assambleyadan emas.

  • himoyalangan ichki : Ushbu turga yoki a'zoga e'lon qilingan assambleyadagi har qanday kod orqali yoki boshqa assambleyadagi olingan class orqali kirish mumkin.

  • xususiy himoyalangan : Ushbu turga yoki a'zoga faqat deklaratsiyalangan assambleyada kirish mumkin, xuddi shu class kod orqali yoki ushbu class olingan turdagi.

  • Masalan, C ++ da

  • # o'z ichiga oladi

  • # o'z ichiga oladi

  • std :: cout yordamida ;

  • std :: endl dan foydalanish ;



  • tizim B { // tizim ichidagi odatiy kirish modifikatori umumiy hisoblanadi

  • void set_n ( int v ) { n = v ; }

  • void f () { cout << "B :: f" << endl ; }

  • himoyalangan :

  • int m , n ; // B :: m, B :: n himoyalangan

  • shaxsiy :

  • int x ;

  • };



  • tuzilish D : B {

  • yordamida B :: m ; // D :: m ommaviydir

  • int get_n () { return n ; } // B :: n bu erda mavjud, ammo tashqarida emas

  • // int get_x () {return x; } // ERROR, B :: x bu erda mavjud emas

  • shaxsiy :

  • B :: f yordamida ; // D :: f maxfiy

  • };



  • int main () {

  • D d ;



  • // dx = 2; // ERROR, shaxsiy

  • // dn = 2; // ERROR, himoyalangan

  • d . m = 2 ; // himoyalangan B :: m ga D :: m sifatida kirish mumkin



  • d . set_n ( 2 ); // chaqiradi B :: set_n (int)

  • cout << d . get_n () << endl ; // chiqish: 2



  • // df (); // ERROR, B :: f D :: f kabi mavjud emas





  • B & b = d ; // b havolalari d va "ko'rinishlar" ni B tipidagi kabi



  • // bx = 3; // ERROR, shaxsiy

  • // bn = 3; // ERROR, himoyalangan

  • // bm = 3; // ERROR, B :: m himoyalangan



  • b . set_n ( 3 ); // chaqiradi B :: set_n (int)

  • // cout << b.get_n (); // ERROR, 'B tuzilishi' tarkibida 'get_n' nomli a'zo yo'q



  • b . f (); // qo'ng'iroq qiladi B :: f ()

  • qaytish 0 ;

  • }




  1. WPF (Windows Presentation Foundation) – Microsoftning .NET platformasi uchun GUI eng yaxshi yondashuvidir.

Ammo GUI o’z nima? GUI (Graphical User Interface) – foydalanuvchi grafik interfaysi. Windowsda sizning kompyuteringiz bilan ishlash uchun GUI mavjud. Masalan browserda web sahifalarni ko’rishingiz uchun GUI bor. GUI sizga matn orqali elementlarni ifodalashinga yordam beradi. Agar bo’lmaganida nima bo’lardi? Unda siz har bir elementni qo’lda chiqzib chiqishingiz va siqchoncha va klavatura orqali kiritish uchun senariy yozish kerak bo’lardi. Bu juda ko’p ish shu uchun ko’p dasturchilar GUI dan foydalanishadi. Bu esa ular ilova ajayib chiqishi uchun vaqt ajratishlari mumkin deganidir.

GUI-frameworklari juda ko’p lekin .NET dasturchilari asosan WinForms va WPF ni ma’qul ko’rishadi.Bu ikki frameworkning farqlari juda ko’p lekin maqsadi bitta – grafik interfeysli ilova yaratishni osonlashtirish.

WPF Afzalliklari:


  • Hech qanday qat’iy standartlarga bog’lanmagan

  • Microsoft uni juda ko’p yangi ilovalar uchun qo’llayapdi

  • Avvalgi frameworklardagi kamchiliklar to’ldirilgan.

  • Kerak bo’lgan hollarda 3 - tomon kodlari(boshqa dasturchilar tayyorlagan kutubxona va h.k.)ni ishlatishingiz mumkin.

  • XAML kodlar yordamida interfeysni oson tahrirlash mumkin. Bu dasturni dizayn(XML) va dastur (C#, VB.NET va h.k.) qismlarga ajratib ishlash imkoni beradi.

  • Databinding – ma’lumotlarni oson layoutlarga biriktirish.

  • Windows va web platformasida ishlay oladi (Silverlight / XBAP).

Hozirgi kungacha eng ko’p tarqalgan operatsion tizim bu – Microsoft Windows. WPF da tayyorlangan dasturiy ta’minot boshqa .NET dasturlari kabi .NET ni qo’llab quvvatlaydigan platformalarda ishlaydi. Yaxshiyamki, Microsoft kompaniyasi Vistadan beri Windowsning barcha versiyalariga .NET frameworkni qo’shib kelmoqda va Update qilish orqali Windowsning eski versiyalarini chiqarib tashlamoqda. Bu degani juda ko’p Windows foydalanuvchilar WPF dasturingiz ishlata oladi degani. WPF da tayyorlangan dastur dizayn tarafdan berilgan keng imkoniyat tufayli boshqa frameworklardan ustunlikka ega. Keyingi boblarda siz bilan WPF dasturining tuzulishi ko’rib chiqamiz.

4.MASALANING YECHIMI :

class Program

{

static void Main(string[] args)



{

var random = new Random();

var data = new List();

for (int i = 0; i < 50; i++)

{

var item = random.Next(0, 100);



data.Add(item);

Console.Write("{0} ", item);

}

Console.WriteLine(); // yangi qator uchun



foreach(int item in data)

{

if (item < 72)



Console.Write("{0} ", item);

}

}



}
Download 27.61 Kb.

Do'stlaringiz bilan baham:




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