СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

“C# dasturlash tili takrorlanish operatori

Категория: Информатика

Нажмите, чтобы узнать подробности

“C# dasturlash tili takrorlanish operatori BO`YICHA ISHLANMA

Просмотр содержимого документа
«“C# dasturlash tili takrorlanish operatori»

O'ZBEKISTON RESPUBLIKASI

OLIY VA O'RTA MAXSUS TA'LIM VAZIRLIGI

_______________ DAVLAT UNIVERSITETI

________________________ FAKULTETI







_______________________KAFEDRASI

__________________ yo'nalishi

________ guruh talabasi

___________________________ NING

Dasturlash asoslari” fanidan

C# dasturlash tili takrorlanish operatori mavzusidagi

KURS ISHI

Kurs ishi rahbari: _________________________

Farg’ona shahri









MUNDARIJA

I.Kirish………………………………………………………………..………3

II. Asosiy qism ……………………………………………………………….5

2.1 C# dasturlash tili haqida………………………………………........……5

2.2 Takrorlash operatorlari............................................................................13

2.3 Shartli o’tish operatorlari.........................................................................30

2.4 Shart operatori bo`yicha misollar............................................................33

2.5 Switch va satrlar bilan ishlash. ................................................................40

Xulosa……………………………………………………………………....…43

Foydalanilgan adabiyotlar…………………………………………….....…..44




















I. KIRISH

O`zbekiston Respublikasi Prezidenti Shavkat Mirziyoyev raisligida 2019- yil 19- mart kuni yoshlarga e`tiborni kuchayturish, ularni madaniyat,sa`nat jismoniy tarbiya va sportga kieng jalb etish, ularga axborot texnologiyalaridan foydalanish ko`nikmalarini singdirish,yoshlar o`rtasida kitobxonlikn targ`ib qilish,xotin-qizlar bandligini oshirish masalalariga bag`ishlangan videoselektor yig`ilish o`tkazilgan.Ma`lumki,O`zbekiston Respublikasi rahbari ijtimoiy,ma`naviy-ma`rifiy sohalardagi ishlarnim yangi tizim asosida yo`lga qo`yish bo`yicha 5ta muhim tashabbusni ilgari surgan edi.

Uchinchi tashabbus-aholi va yoshlar o`rtasida kompyuter texnologiyalari va internetdan samarali foydalanishni tashkil etishga qaratilgan.

Axborot texnologiyalari va kommunikatsiyalarinirivojlantirish vazirligiga ilg`or xalqaro tajribalr asosida barcha shahar va tumanlar markazlarida Raqamli texnologiyalar o`quv markazlarini tashkil etish bo`yicha topshiriq berilgan edi.Bu markazlarda elektron tijorat va dasturlash bepul o`rgatilib, axborot texnologiyalari sohasida tadbirkorlik bilabn shug`ullanish bo`yicha innovatsion ko`nikmalar beriladi,”startap” loyihalariga yordam berilishi ko`zda tutilgan.

Axborot texnologiyalarining bugungi rivojlangan davrida kompyuter texnologiyalari barcha sohalariga kirib bormoqda. Xususan, hayotiy masalalarni yechishda dasturlash yordamida masalalarni matematik modellarini tuzib, ularni yechish algoritm va dasturlashni tuzish orqali jarayonlarni kompyuterlashtirish dolzarb masalalardan biri. Mazkur kurs ishida massivlar yordamida masalalarni yechish usullari, massivlar ustida amallar bajarishda Array sinfini qo`llash va mos dasturlari ko`rib chiqiladi.

Kurs ishi mavzusining dolzarbligi. C# tilida massivlar bilan ishlash, massivlar ustida amallar bajarishda Array sinfining qanchalik muhimligini keltirish mumkin.

Kurs ishining maqsad va vazifalari:

-Massivlar ustida amallar bajarishda Array sinfidan foydalanishning ahamiyatini o`rganish;

-Massivlar bilan ko`proq ishlash.

Kurs ishi tarkibi:kirish,asosiy qism,xulosa va foydalanilgan adabiyotlar ro`yhati
































II.Asosiy qism

2.1 C# dasturlash tili haqida

C # ("Sharpni qarang" deb talaffuz qilinadi) sodda, zamonaviy, ob'ektga yo'naltirilgan va turga xavfsiz dasturlash tili. C # ning ildizlari C tillar oilasiga borib taqaladi va darhol C, C ++ va Java dasturchilariga tanish bo'ladi. C # ECMA International tomonidan ECMA -334 standarti va ISO / IEC tomonidan ISO / IEC 23270 standarti sifatida standartlashtirilgan. .NET Framework uchun Microsoft-ning C # kompilyatori ushbu ikkala standartning mos keluvchi dasturidir.

C # - bu ob'ektga yo'naltirilgan til, ammo C # bundan tashqari komponentlarga yo'naltirilgan dasturlashni qo'llab-quvvatlashni o'z ichiga oladi . Zamonaviy dasturiy ta'minot dizayni tobora ko'proq o'ziga xos va o'zini tavsiflovchi funktsional paketlar ko'rinishidagi dasturiy ta'minot tarkibiy qismlariga bog'liq. Bunday komponentlarning kaliti shundaki, ular xususiyatlar, usullar va hodisalar bilan dasturlash modelini taqdim etadi; ular komponent haqida deklarativ ma'lumot beruvchi atributlarga ega; va ular o'zlarining hujjatlarini o'z ichiga oladi. C # ushbu tushunchalarni to'g'ridan-to'g'ri qo'llab-quvvatlash uchun til konstruktsiyalarini taqdim etadi va C # dasturiy ta'minot komponentlarini yaratish va ulardan foydalanish uchun juda tabiiy tilga aylanadi.

Bir nechta C # xususiyatlari mustahkam va bardoshli dasturlarni yaratishda yordam beradi: Axlat yig'ish foydalanilmayotgan ob'ektlar egallagan xotirani avtomatik ravishda qayta tiklaydi; istisnolardan foydalanish xatolarni aniqlash va tiklash uchun tizimli va kengaytirilgan yondashuvni ta'minlaydi; va tilning xavfsiz dizayni bilan boshlanmagan o'zgaruvchilardan o'qish, massivlarni o'z chegaralaridan tashqariga indeksatsiya qilish yoki tekshirilmagan tipdagi gipslarni bajarish mumkin emas.

C # birlashtirilgan turdagi tizimga ega . Ibtidoiy kabi turlari, shu jumladan, barcha C # turlari, intva doublebitta ildiz dan meros objectturi. Shunday qilib, barcha turlar umumiy operatsiyalar majmuini baham ko'radi va har qanday turdagi qiymatlarni doimiy ravishda saqlash, tashish va boshqarish mumkin. Bundan tashqari, C # foydalanuvchi tomonidan aniqlangan mos yozuvlar turlarini va qiymat turlarini qo'llab-quvvatlaydi, bu esa ob'ektlarni dinamik ravishda taqsimlash va engil tuzilmalarni qatorda saqlashga imkon beradi.

Vaqt o'tishi bilan C # dasturlari va kutubxonalari bir-biriga mos ravishda rivojlanishini ta'minlash uchun C # dizaynidagi versiyalarga katta e'tibor berildi . Ko'pgina dasturlash tillarida bu masalaga unchalik ahamiyat berilmaydi va natijada ushbu tillarda yozilgan dasturlar qaram kutubxonalarning yangi versiyalari kiritilganda kerak bo'lgandan ko'ra tez-tez buziladi. Versiyalarni ko'rib chiqishda to'g'ridan-to'g'ri ta'sirlangan C # dizayni jihatlari alohida virtualva overridemodifikatorlarni, usulni haddan tashqari yuklash rezolyutsiyasi qoidalarini va aniq interfeys a'zolari deklaratsiyasini qo'llab-quvvatlashni o'z ichiga oladi .

Salom Dunyo

"Salom, dunyo" dasturi an'anaviy ravishda dasturlash tilini joriy qilish uchun ishlatiladi. Bu erda C #:

C #Nusxalash

using System;


class Hello

{

static void Main() {

Console.WriteLine("Hello, World");

}

}

C # manba fayllari odatda fayl kengaytmasiga ega .cs. Faylda "Salom, Dunyo" dasturi saqlangan hello.csdeb hisoblasak, dastur buyruq satri yordamida Microsoft C # kompilyatori bilan tuzilishi mumkin.

Dastur tarkibi

C # -dagi asosiy tashkiliy tushunchalar dasturlar , nomlar maydonlari , turlari , a'zolari va yig'ilishlaridir . C # dasturlari bir yoki bir nechta manba fayllaridan iborat. Dasturlar a'zolarni o'z ichiga olgan va nomlar maydoniga ajratish mumkin bo'lgan turlarni e'lon qiladi. Sinflar va interfeyslar turlarga misoldir. Maydonlar, usullar, xususiyatlar va hodisalar a'zolarga misoldir. C # dasturlari kompilyatsiya qilinganida, ular jismonan assambleyalarga to'planadi. Assambleyalar odatda fayl kengaytmasiga ega .exeyoki dastur yoki kutubxonalarni.dll amalga oshirishiga qarab .

Misol

C #Nusxalash

using System;


namespace Acme.Collections

{

public class Stack

{

Entry top;


public void Push(object data) {

top = new Entry(top, data);

}


public object Pop() {

if (top == null) throw new InvalidOperationException();

object result = top.data;

top = top.next;

return result;

}


class Entry

{

public Entry next;

public object data;

public Entry(Entry next, object data) {

this.next = next;

this.data = data;

}

}

}

}

deb nomlangan Stacknom maydonida e'lon qilingan sinfni e'lon qiladi Acme.Collections. Ushbu sinfning to'liq malakali nomi Acme.Collections.Stack. Ismli bir maydon: sinf necha a'zolari o'z ichiga olgan top, ikki nomli usullari Pushva Pop, va nomidagi ichki sinf Entry. EntryIsmli bir sohasi: sinf yanada uch nafar a'zo mavjud next, degan bir joy data, va bir quruvchi. Misolning manba kodi faylda saqlangan deb faraz qilsak, acme.csbuyruq satri

KonsolNusxalash

csc /t:library acme.cs

misolni kutubxona sifatida to'playdi ( Mainkirish nuqtasi bo'lmagan kod ) va nomlangan assambleyani ishlab chiqaradi acme.dll.

Assambleyalar oraliq til (IL) ko'rsatmalar shaklida bajariladigan kodni va metama'lumotlar shaklida ramziy ma'lumotlarni o'z ichiga oladi . Amalga oshirilishidan oldin assambleyadagi IL kod avtomatik ravishda .NET Common Language Runtime dasturining Just-In-Time (JIT) kompilyatori tomonidan protsessorga xos kodga aylantiriladi.

C # dasturning dastlabki matnini bir nechta manba fayllarida saqlashga ruxsat beradi. Ko'p faylli C # dasturi kompilyatsiya qilinganida, barcha manba fayllari birgalikda qayta ishlanadi va manba fayllari bir-biriga erkin murojaat qilishlari mumkin - kontseptual ravishda, barcha manba fayllari ishlov berishdan oldin bitta katta faylga birlashtirilganga o'xshaydi. Oldindan deklaratsiyalar hech qachon C # -ga kerak emas, chunki juda kam istisnolardan tashqari, deklaratsiya buyurtmasi ahamiyatsiz. C # manba faylini faqat bitta umumiy turni e'lon qilish bilan cheklamaydi va manba faylida e'lon qilingan turga mos kelishini talab qilmaydi.

Turlari va o'zgaruvchilari

C # da ikki xil tip mavjud: qiymat turlari va mos yozuvlar turlari . Qiymat turlarining o'zgaruvchilari to'g'ridan-to'g'ri ularning ma'lumotlarini o'z ichiga oladi, mos yozuvlar turlarining o'zgaruvchilari esa ularning ma'lumotlariga havolalarni saqlaydi, ikkinchisi esa ob'ektlar deb nomlanadi. Malumot turlari bilan ikkita o'zgaruvchiga bir xil ob'ektga murojaat qilish mumkin va shu bilan bitta o'zgaruvchiga operatsiyalar boshqa o'zgaruvchiga havola qilingan ob'ektga ta'sir qilishi mumkin. Qiymat turlari bilan o'zgaruvchilarning har biri o'z ma'lumotlarining nusxasiga ega va bittasida operatsiyalar boshqasiga ta'sir qilishi mumkin emas ( refva outparametr o'zgaruvchilari bundan mustasno ).

C # ning qiymat turlari oddiy turlarga , enum turlari , struct turlari va null turlarga , C # ning mos yozuvlar turlari esa sinf turlari , interfeys turlari , massiv turlari va vakolat turlariga bo'linadi.

Sakkizta ajralmas turlar imzolangan yoki imzosiz shaklda 8-bit, 16-bit, 32-bit va 64-bit qiymatlarni qo'llab-quvvatlaydi.

Ikkita suzuvchi nuqta turlari floatva double32-bitli bitta aniqlikdagi va 64-bitli ikki tomonlama aniqlikdagi IEEE 754 formatlaridan foydalangan holda namoyish etiladi.

Ushbu decimalturdagi moliyaviy va pul hisob-kitoblari uchun mos bo'lgan 128-bitli ma'lumotlar turi.

boolMantiqiy qiymatlarni ifodalash uchun C # turi ishlatiladi - yoki trueyoki false.

C # da belgilar va satrlarni qayta ishlash Unicode kodlashdan foydalanadi. charTuri, bir UTF-16 kodi birligidan ifodalaydi, va stringturi UTF-16 kodi birliklarining ketma-ketlikni.

C # dasturlari yangi turlarni yaratish uchun tip deklaratsiyalaridan foydalanadi . Turning deklaratsiyasi yangi turdagi a'zolarni va nomlarni belgilaydi. C # turlarining beshta toifasi foydalanuvchi tomonidan aniqlanadi: sinf turlari, tuzilmalar turlari, interfeys turlari, enum turlari va vakil turlari.

Sinf turi ma'lumotlar a'zolarini (maydonlarni) va funktsiya a'zolarini (usullar, xususiyatlar va boshqalarni) o'z ichiga olgan ma'lumotlar tuzilishini belgilaydi. Sinf turlari yagona merosxo'rlik va polimorfizmni qo'llab-quvvatlaydi, natijada olingan sinflar asosiy sinflarni kengaytirishi va ixtisoslashishi mumkin.

Struktur tipi sinf tipiga o'xshaydi, chunki u ma'lumotlar a'zolari va funktsiya a'zolari bo'lgan strukturani ifodalaydi. Biroq, sinflardan farqli o'laroq, tuzilmalar qiymat turlariga kiradi va uyumlarni ajratishni talab qilmaydi. Tuzilmalar turlari foydalanuvchi tomonidan belgilangan merosni qo'llab-quvvatlamaydi va barcha tuzilmalar turlaridan bevosita meros qilib olinadi object.

Interfeys turi shartnomani umumiy funktsiya a'zolarining nomlangan to'plami sifatida belgilaydi. Interfeysni amalga oshiradigan sinf yoki tuzilma interfeysning funktsiya a'zolarini amalga oshirishni ta'minlashi kerak. Interfeys bir nechta asosiy interfeyslardan meros bo'lib o'tishi mumkin va sinf yoki struct bir nechta interfeyslarni amalga oshirishi mumkin.

Vakil turi ma'lum parametrlar ro'yxati va qaytish turiga ega bo'lgan usullarga havolalarni aks ettiradi. Delegatlar usullarni o'zgaruvchilarga berilishi va parametrlar sifatida o'tkazilishi mumkin bo'lgan ob'ektlar sifatida ko'rib chiqishga imkon beradi. Delegatlar ba'zi boshqa tillarda mavjud bo'lgan funktsiya ko'rsatgichlari tushunchasiga o'xshashdir, ammo funktsiyalar ko'rsatkichlaridan farqli o'laroq, delegatlar ob'ektga yo'naltirilgan va xavfsiz turga ega.

Sinf, struktura, interfeys va vakolat turlarining barchasi umumiy turlarni qo'llab-quvvatlaydi, shu bilan ularni boshqa turlar bilan parametrlash mumkin.

Enum turi - konstantalari nomlangan alohida tur. Har bir enum turi sakkizta ajralmas turdan biri bo'lishi kerak bo'lgan asosiy turga ega. Enum tipidagi qiymatlar to'plami asosiy turdagi qiymatlar to'plami bilan bir xil.

C # har qanday turdagi bitta va ko'p o'lchovli massivlarni qo'llab-quvvatlaydi. Yuqorida sanab o'tilgan turlardan farqli o'laroq, massiv turlari ishlatilishidan oldin e'lon qilinishi shart emas. Buning o'rniga, massiv turlari to'rtburchak qavsli turdagi nomga amal qilish orqali tuziladi. Masalan, int[]bu bir o'lchovli massiv bo'lib int, int[,]ikki o'lchovli massiv bo'lib int, int[][]bitta o'lchovli massivning bitta o'lchovli massividir int.

Null turlarini ishlatishdan oldin ularni e'lon qilish shart emas. Null bo'lmagan har bir qiymat turi Tuchun tegishli qiymat mavjud T?, u qo'shimcha qiymatga ega bo'lishi mumkin null. Masalan, int?har qanday 32 bitli tamsayı yoki qiymatni o'z ichiga oladigan tur null.

C # ning tizimi birlashtirilgan bo'lib, har qanday turdagi qiymat ob'ekt sifatida ko'rib chiqilishi mumkin. C # dagi har qanday tip to'g'ridan-to'g'ri yoki bilvosita objectsinf turidan kelib chiqadi va objectbarcha turdagi yakuniy asosiy sinf hisoblanadi. Yo'naltiruvchi turlarning qiymatlari ob'ekt sifatida oddiygina qiymatlarni tip sifatida ko'rib chiqiladi object. Qiymat turlarining qiymatlari boks va qutisidan operatsiyalarni bajarish orqali ob'ekt sifatida ko'rib chiqiladi . Quyidagi misolda intqiymat aylanadi objectva yana qaytariladi int.

C #Nusxalash

using System;


class Test

{

static void Main()

{

int i = 123;

object o = i; // Boxing

int j = (int)o; // Unboxing

}

}

Qiymat turidagi qiymat turga aylantirilganda object, qiymatni ushlab turish uchun "quti" deb ham nomlangan ob'ekt misoli ajratiladi va qiymat shu qutiga ko'chiriladi. Aksincha, objectmos yozuvlar qiymat turiga berilganda, mos yozuvlar ob'ekti to'g'ri qiymat turidagi quti ekanligi tekshiriladi va agar tekshiruv muvaffaqiyatli bo'lsa, qutidagi qiymat ko'chiriladi.

C # ning birlashtirilgan turi tizimi samarali ravishda qiymat turlari "talabga binoan" ob'ektga aylanishi mumkinligini anglatadi. Birlashtirilganligi sababli, objectturdan foydalanadigan umumiy foydalanish uchun mo'ljallangan kutubxonalar mos yozuvlar turlari va qiymat turlari bilan ishlatilishi mumkin.

C # da o'zgaruvchilarning bir nechta turlari mavjud , ular orasida maydonlar, massiv elementlari, mahalliy o'zgaruvchilar va parametrlar mavjud. O'zgaruvchilar saqlash joylarini ifodalaydi va har bir o'zgaruvchining quyidagi jadvalda ko'rsatilgandek o'zgaruvchida qanday qiymatlarni saqlash mumkinligini aniqlaydigan turi mavjud.

Ifodalar

So'zlar dan qurilgan operanddan va operatorlari . Ifoda operatorlari operandlarga qaysi amallarni qo'llash kerakligini ko'rsatadi. Operatorlari misollar+,-,*,/, vanew. Operandlarga misol sifatida literallar, maydonlar, mahalliy o'zgaruvchilar va iboralar kiradi.

Agar ifoda bir nechta operatorni o'z ichiga oladigan bo'lsa, operatorlarning ustuvorligi alohida operatorlarni baholash tartibini boshqaradi. Masalan, ifoda operator operatordan ustunligi yuqori bo'lgani uchun x + y * zbaholanadi .x + (y * z)*+

Aksariyat operatorlar haddan tashqari yuklanishi mumkin . Operatorning haddan tashqari yuklanishi bir yoki ikkala operand foydalanuvchi tomonidan belgilangan sinf yoki struct turidagi operatsiyalar uchun foydalanuvchi tomonidan aniqlangan operator bajarilishini belgilashga imkon beradi.

2.2. Takrorlash operatorlari

Dasturiy jarayonlar faqat bitta holatlarni tekshirishdan iborat emas, ular ko’pincha qandaydir shart bajarilguncha takroriy ravishda amalga oshiriladi. Qandaydir yolg’on bo’lguncha davom etadigan jarayonlarni tashkillashtirish uchun takrorlash operatorlaridan foydalanamiz.


for takrorlash operatori. Takrorlashlar soni oldindan mavjud bo’lgan hollarda for operatoridan foydalaniladi. Uning umumiy ko’rinishi quyidagicha:


for (initsializatsiya; shart; iteratsiya)

operator;


Agar bir nechta operatorlar guruhini bir vaqtning o’zida bajarilishini istasak, u holda operatorlar guruhini blok ichiga olishimiz kerak.


for (initsializatsiya; shart; iteratsiya)

{ operatorlar;}


Bu yerda initsializatsiya – boshlang’ich qadam, shart- jarayon to’xtash sharti, iteratsiya – qanday qadam bilan o’zgarishi.

Sikl qadami oldinga yoki orqaga qarab o’zgarishi mumkin. Faqat bunda shartni to’g’ri qo’yish lozim. Sikl qadamini dasturchining o’zi tanlaydi, u bittaga oshishi/kamayishi yoki n qiymatga oshishi/kamayishi mumkin. Sikl jarayon shart yolg’on bo’lguncha davom etadi. Bunda dastlabki qiymat olinadi so’ng shart tekshiriladi, agar u rost bo’lsa, operator yoki operatorlar guruhi bajariladi, keyin esa u boshlang’ich qiymatga o’zgarish qadami qo’shiladi/ayiriladi, yana tekshiriladi va hokazo.

for siklini ishlatishga doir misollarni ko’raylik.


3.7-listing

using System;

internal class SwitchDemo

{

private static void Main()

{

int i = 1;

for (i = 1; i

Console.WriteLine(i);

}

}


Bunda i-dastlabki qiymat sifatida 1 qiymatni qabul qilgan, jarayon i

Qadamlar sonini har doim bittaga oshirish shart emas. Uni istalgan qadam bilan davom ettirish mumkin:

3.8-listing

using System;

internal class SwitchDemo

{

private static void Main()

{

int i = 1;

for (i = 1; i

Console.WriteLine(i);

}

}


Siklni kamayish tartibida ham bajarish mumkin. Buning uchun dastur qismini quyidagicha o’zgartiramiz:


3.9-listing

using System;

internal class SwitchDemo

{

private static void Main()

{

int i = 1;

for (i = 5; i 1; i--)

Console.WriteLine(i);

}

}


Bunda i-dastlabki qiymat sifatida 5 qiymatni qabul qilgan, jarayon i1 shart yolg’on qiymatni qabul qilguncha davom etadi, siljish qadami sifatida esa 1 olingan. Jarayon qachonki i=1 bo’lsa to’xtaydi.

Ba’zi hollarda dasturchilar for sikli ichida ishlatayotgan indeks o’zgaruvchini (yuqoridagi misollarda – i), faqat ushbu sikl ichida ko’rinarli bo’lishini istashadi. Buning uchun dasturning aynan shu qismida ushbu o’zgaruvchini e’lon qilish lozim. Shunda indeks o’zgaruvchi faqat ushbu for sikli ichida ko’rinarli bo’ladi, qolgan qismlarda bu o’zgaruvchi noma’lum bo’lib qoladi. Bu ko’rinish sohasi deb nomlangan tushuncha bilan bog’liq. Masalan, quyidagi misolga qaraylik:


3.10-listing

using System;

internal class SwitchDemo

{

private static void Main()

{

int a;

for (int i = 1; i

{

Console.WriteLine(i);

Console.WriteLine(i + 5);

}

a=i; //Xatolik! i faqat yuqorida for sikli ichida e'lon qilingan

Console.WriteLine(a);

}

}


for siklini ishlatishda tugash shartini aniq qo’yish muhim ahamiyatga ega. Ba’zi hollarda

Misol. 20 gacha bo’lgan sonlar ichida tub va murakkab sonlarni aniqlovchi dastur tuzing.


3.11-listing

using System;

internal class FindPrimes

{

private static void Main()

{

int n;

int i;

int b;

bool k;

for (n = 2; n

{

k = true;

b = 0;

for (i = 2; i

{

if ((n % i) == 0)

{

k = false;

b = i;

}

}

if (k)

Console.WriteLine(n + " — Tub son.");

else

Console.WriteLine("Murakkab son: " + n +

" Eng katta bo'luvchisi: " + b);

}

}

}


Agar for sikli ichida bir nechta o’zgaruvchining qiymati sinxron ravishda o’zgarishini istasak, takrorlash ifodalarida zarur operatorlarni ‘,’ bilan yozish orqali bunga erishish mumkin. Masalan:


3.12-listing

using System;

internal class Comma

{

private static void Main()

{

int i, j;

for (i = 0, j = 10; i

Console.WriteLine("i va j: " + i + " " + j);

}

}

for siklidan chiqish sharti sifatida faqatgina taqqoslash belgilaridan emas, balki bool turidagi o’zgaruvchining qiymatidan ham foydalansa bo’ladi. Masalan:


3.13-listing

using System;

internal class forDemo

{

private static void Main()

{

int i, j;

bool done = false;

for (i = 0, j = 100; !done; i++, j--)

{

if (i * i = j) done = true;

Console.WriteLine("i, j: " + i + " " + j);

}

}

}


Shart sifatida qachonki done o’zgaruvchisi rost qiymatga teng bo’lishi olingan. done o’zgaruvchisi qachonki i*i=j shart bajarilsa rost qiymatni qabul qiladi.

Yuqoridagi misollardan ko’rdikki, for siklik operatoridan chiqish uchun har doim qandaydir shart qo’yilmoqda. Agar jarayon cheksiz davom etishini istasakchi? Buning uchun quyidagicha ish tutamiz:


for (;;)

{

Console.WriteLine("Cheksizlik!");

}


Agar for sikli qavsi ichida ;; belgisini yozsak, uning tanasida yozilgan har qanday operator cheksiz davom etadi. Xuddi shuningdek, for siklida initsializatsiya, qadamni ham tashlab yozish mumkin:


3.14-listing

using System;

internal class forDemo

{

private static void Main()

{

for (int i = 0; i

{

Console.WriteLine(i);

i++; //qadam

}

int j = 1; //dastlabki qiymat - initsializatsiya

for (; j

{

Console.WriteLine(j);

j++; //qadam

}

}

}


for sikli har doim ham qandaydir tanaga ega bo’lishi shart emas. Masalan quyida tanasiz for sikliga misol keltirilgan:


for (i = 1; i


Bunda hech qanday jarayon bajarilmaydi. Faqat dastur ishlashini ma’lum vaqt to’xtatib turish uchun ushbu holat qo’llanilishi mumkin.


while takrorlash operatori. C# tilida yana bir takrorlash operatorlaridan biri while takrolash operatoridir. Uning umumiy ko’rinishi quyidagichadir:


while()

{

}

while takrorlash operatori oldin ni tekshiradi. Agar u rost bo’lsa, uning tanasidagi operatorlar bajariladi, agar u ilk qiymatidanoq yolg’on bo’lsa, while tanasi bir marta ham bajarilmaydi.

while tanasiga kirgandan so’ng, undan chiqish ham kerak. Shuning uchun uning tanasida ni qachondir yolg’onga aylantiradigan jarayon albatta bo’lishi kerak, bo’lmasa while tanasi cheksiz takrorlanadi, ya’ni undan chiqib bo’lmaydi. Buni quyidagi misolda ko’raylik:


3.15-listing

using System;

internal class forDemo

{

private static void Main()

{

int k = 20;

while(k

{

Console.WriteLine(k);

k++;

}

}

}


k o’zgaruvchisiga dastlabki qiymat sifatida 20 berilgan. sifatida k

Tabiiy savol tug’iladi, while va for takrorlash operatorlarining farqi nimada? for takrorlash operatori asosan takrorlashlar soni oldindan aniq bo’lgan holatda ishlatiladi. while sikli esa takrorlashlar soni oldindan ma’lum bo’lmaganda qo’llanishi mumkin Shuning uchun while sikli yordamida bajariladigan ayrim masalalarni for sikli yordamida hal etishda qiyinchilikka duch kelinadi. Quyidagi misolni ko’raylik.

Misol. Natural sonda nechta raqam borligini aniqlang.


3.16-listing

using System;

internal class WhileDemo

{

private static void Main()

{

int num;

int mag;

num = 435679;

mag = 0;

Console.WriteLine("Son: " + num);

while (num 0)

{

mag++;

num = num / 10;

};

Console.WriteLine("Raqamlar soni: " + mag);

}

}


do-while takrorlash operatori. while operatori bilan deyarli bir xil ko’rinishda bo’lgan takrorlash operatorlaridan yana biri bu do-while operatoridir. Faqat bunda shart bir marta bajarilgandan so’ng tekshiriladi. Uning umumiy ko’rinishi quyidagicha:


do

{

}

while();


Bu operatorning keng qo’llaniladigan holatlari – bu takrorlashni boshlamasdan turib, takrorlash shartini tekshirishning iloji bo’lmagan holatlari hisoblanadi. Masalan, birorta jarayonni davom ettirish yoki to’xtatish haqidagi so’rovga javob olish va uni tekshirish zarur bo’lsin. Ko’rinib turibdiki, jarayonni boshlamasdan turib, bu so’rovni berishning ma’nosi yo’q. Hech bo’lmaganda takrorlash jarayonining bitta qadami amalga oshirilishi kerak:


3.17-listing

using System;

internal class WhileDemo

{

private static void Main()

{

string Parol = "1234";

string Parol1;

do

{

Console.WriteLine("Parolni kiriting:");

Parol1 = Console.ReadLine();

if (Parol == Parol1)

Console.WriteLine("Parol to'g'ri!");

}

while (Parol != Parol1);

}

}


Dastlab Parol o’zgaruvchisiga qiymat berilgan. do-while tanasida esa foydalanuvchidan parol kiritish so’ralmoqda. Agar parol to’g’ri kiritilsa “Parol to’g’ri” yozuvi chiqadi va shart tekshiriladi. Shart bajarilmaguncha sikl davom etadi.









foreach sikl operatori. C# tilida Javadan ko’chib o’tgan yana bir tur sikl operatori mavjud. Bu foreach deb ataladi. Bu operator asosida for takrorlash operatorining g’oyasi yotsa ham, u qiymatlarni qandaydir kolleksiya deb atalavchi to’plamlardan oladi. Kolleksiya – bu obyektlar to’plamidir. Bu takrorlash operatori asosan massivlar bilan bog’liq masalalarni hal etish qo’llaniladi.

break va continue operatorlari. Takrorlash operatorlarini ko’rib chiqib shunga amin bo’ldikki, bu operatorlar tanasidan chiqish uchun shart yolg’on bo’lishini kutib turish kerak. Lekin shunday holatlar bo’lishi mumkinki, ma’lum bir jarayonlarda bu sikl tanasidan shart yolg’on bo’lmasa ham chiqib ketishimizga to’g’ri kelib qoladi. Shuning uchun break operatori qo’llaniladi. Bu operatorning vazifasi takrorlash tanasi ichida qandaydir shart bajarilsa, u holda bu tanadan chiqishni bajarib beradi. Bu operatorni switch shart operatorida ham ishlatgan edik. Demak, uning mohiyati aynan shart bajarilmasa “chiqib ketish” ga asoslangan. break operatori qo’llash natijasidan ayrim ortiqcha sikllardan xalos bo’lish mumkin. Buni quyidagi misolda ko’rishimiz mumkin.

Misol. 100 gacha bo’lgan sonlar ichida uchga qoldiqsiz bo’linuvchi dastlabki 20 ta sonni toping.


3.18-listing

using System;

internal class WhileDemo

{

private static void Main()

{

int i, n = 0;

for (i = 1; i

{

if (i % 3 == 0) //3 ga bo'linishni tekshirish

{

Console.WriteLine(i);

n++; //har bir uchga bo'linuvchi sonni umumiy sonini hisoblab borish

}

if (n 20) //agar uning soni 20 tadan oshsa demak sikldan chiqib ketish

break;

}

}

}

Dasturda for siklining juda ko’p ortiqcha siklidan xalos bo’lingan. Bunda hisoblagich sifatida n o’zgaruvchisi olingan va har safar uning 20 taga yetganini nazorat qilib turilgan. Agar u 20 tadan oshgani hamonoq dastur for siklidan tashqariga chiqqan.

Xuddi shu kabi bu operatorni while siklida ham qo’llash mumkin.


while (t

{

if (t == 10) break;

Console.Write(t + " ");

t++;

}


Ichma-ich joylashgan takrorlash va switch operatorlarida break operatori faqat o’zi joylashgan blokdan chiqish imkoniyatini beradi. Masalan:


for (i = 1; i

{

for(int j=1; j

{

if (j == 10)

break;

Console.WriteLine(j);

}

Console.WriteLine(i);

}


Bunda ichki for sikli qachonki j=10 qiymatni qabul qilguncha davom etadi. j=10 qiymatni qabul qilgandan so’ng esa, u sikldan tashqaridagi for sikliga chiqadi.

continue operatori xuddi break operatoridek takrorlash operatori tanasini bajarishni to’xtatadi, lekin takrorlashdan chiqib ketmasdan keyingi qadamga “sakrab” o’tishni ta’minlaydi. Buni misolda yanayam aniqroq tushunamiz.


3.19-listing

using System;

internal class ContDemo

{

private static void Main()

{

// 0 dan 100 ga cha bo'lgan sonlar ichidan juftlarini topish.

for (int i = 0; i

{

if ((i % 2) != 0) continue; // Agar u 2 ga bo'linmasa ekranga chiqarish operatorini ishlatma!

Console.WriteLine(i);

}

}

}


Dastur kodiga e’tibor bersak, for sikli tanasi ichida i=0 dan 100 gacha bo’lgan sonlarni ekranga chiqarish buyrug’i berilgan, faqat bunda agar u 2 ga qoldiqsiz bo’linmasa, bu qadamni tashlab o’tish maqsadida, continue operatori ishlatilgan. Shu orqali faqat juft sonlarni ekranga chiqarish ta’minlangan.


goto operatori va nishonlar. Nishon - bu davomida ikkita nuqta (‘:’) qo’yilgan identifikator. Nishon bilan qandaydir operator belgilanadi va keyinchalik, dasturning boshqa bir qismidan unga shartsiz o’tish amalga oshiriladi. Nishon bilan har qanday operator belgilanishi mumkin, shu jumladan e’lon operatori va bo’sh operator ham. Nishon faqat funksiyalar ichida amal qiladi.

Nishonga shartsiz o’tish goto operatori yordamida bajariladi. goto operatori orqali faqat uning o’zi joylashgan funksiya ichidagi operatorlarga o’tish mumkin. goto operatorining sintaksisi quyidagicha:

goto ;


Ayrim hollarda, goto operatorining «sakrab o’tishi» hisobiga xatoliklar yuzaga kelishi mumkin. Masalan,

int i = 0;

i++; if (i) goto m;

int j;

m: j += i;


operatorlarining bajarilishi xatolikka olib keladi, chunki j e’lon qilinmay qoladi.

Shartsiz o’tish operatori dasturni tuzishdagi kuchli va shu bilan birgalikda xavfli vositalardan biri hisoblanadi. Kuchliligi shundaki, uning yordamida algoritmning «boshi berk» joylaridan chiqib ketish mumkin. Ikkinchi tomondan, bloklarning ichiga o’tish, masalan, takrorlash operatorlarini ichiga «sakrab» kirish kutilmagan holatlarni yuzaga keltirishi mumkin. Shu sababli, imkon qadar goto operatoridan foydalanmaslik kerak, ishlatilgan taqdirda ham quyidagi qoidaga amal qilish zarur: «blok ichiga, if…else va switch operatorlari ichiga, hamda takrorlash operatorlari tanasiga tashqaridan kirish mumkin emas».

Garchi, nishon yordamida dasturning ixtiyoriy joyiga o’tish mumkin bo’lsa ham, boshlang’ich qiymat berish e’lonlaridan sakrab o’tish man etiladi, lekin bloklardan sakrab o’tish mumkin.



2.3. Shartli o’tish operatorlari

C# sistemasi asosan quyidagi qismlardan iborat. Bular dasturni yozish redaktori, C# tili va standart kutubxonalardir. C# dasturi ma'lum bir fazalardan o'tadi. Birinchisi dasturni yozish va tahrirlash, ikkinchisi preprosessor amallarini bajarish, kompilyatsiya, kutubhonalardagi ob'ekt va funksiyalarni dastur bilan bog'lash (link), hotiraga yuklash (load) va bajarish (execute).

if strukturasi: Biz shartga ko'ra bir necha harakat yo'lidan bittasini tanlaymiz.

Misol uchun agar bolaning yoshi 7 ga teng yoki katta bo'lsa u maktabga borishi mumkin bo'lsin. Buni C# da if ni qo'llab yozamiz.

if (yosh = 7)

maktab();

Bu yerda shart bajarilishi yoki bajarilmasligi mumkin.Agar yosh o'zgaruvchisi 7 ga teng yoki undan katta bo'lsa shart bajariladi va maktab() funksiyasi chaqiriladi. Bu holat true (to'g'ri) deyiladi. Agar yosh 7 dan kichik bo'lsa, maktab() tashlab o'tiladi. Yani false (noto'g'ri) holat yuzaga keladi. Biz shart qismini mantiqiy operatorlarga asoslanganligini ko'rib chiqqan edik. Aslida esa shartdagi ifodaning ko'rinishi muhim

emas – agar ifodani nolga keltirish mumkin bo'lsa false bo'ladi, noldan farqli javob bo'lsa, musbatmi, manfiymi, true holat paydo bo'ladi va shart bajariladi. Bunga qo'shimcha qilib o'tish kerakki, C# da mahsus bool tipi mavjud. Bu tipdagi o'zgaruvchilarning yordamida bul (mantiqiy) arifmetikasini amalga oshirish mumkin. bool o'zgaruvchilar faqat true yoki false qiymatlarini olishlari mumkin.

if/else strukturasi: If…else – bu shartli o’tish operatori bo’lib, shart if qismida bajariladi. Agar shart rost bo’lsa, shartdan so’ng yozilgan instruksiyalar to’plami (tarkibli instruksiya) bajariladi, agar yolg’on bo’lsa, else qismida yozilgan (yozilmagan bo’lishi ham mumkin) tarkibli instruksiya bajariladi. if ni qo'llaganimizda ifoda faqat shart haqiqat bo'lgandagina bajariladi, aks holda tashlanib o'tiladi. if/else yordamida esa shart bajarilmaganda (false natija chiqqanda) else orqali boshqa bir yo'ldan borishni belgilash mumkin. Misolimizni takomillashtirsak. Bola 7 yosh yoki undan katta bo'lsa maktabga, 7 dan kichkina bo'lsa bog'chaga borsin.

if (yosh = 7)

maktab(); //nuqta-vergul majburiydir

else

bogcha();

Yuqorida if ga tegishli bo'lgan blok bitta ifodadan (maktab()) iborat. Shu sababli nuqta-vergul qo'yilishi shart. Buni aytib o'tishimizning sababi, masal Pascalda hech narsa qo'yilmasligi shart. C# da bitta ifoda turgan joyga ifodalar guruhini {} qavslarda olingan holda qo'ysa bo'ladi.

switch strukturasi: if-else-if yordami bilan bir necha shartni test qilishimiz mumkin. Lekin bunday yozuv nisbatan o'qishga qiyin va ko'rinishi qo'pol bo'ladi. Agar shart ifoda butun son tipida bo'lsa yoki bu tipga keltirilishi mumkin bo'lsa, biz switch (tanlash) ifodalarini ishlata olamiz. switch strukturasi bir necha case etiketlaridan (label) va majburiy bo'lmagan default etiketidan iboratdir. Etiket bu bir nomdir. U dasturnig bir nuqtasiga qo'yiladi. Programmaning boshqa yeridan ushbu etiketga

o'tishni bajarish mumkin. O'tish yoki sakrash goto bilan amalga oshiriladi, switch

blokida ham qo'llaniladi.

.Switch operatori quyidagicha ishlaydi :

Switch (ifoda)

{

case : o’zgarmas ifoda : instruksiya

o’tish ifodasi

[default : instruksiya]

}

Switch operatorida default amalini yozish shart emas, chunki u berilgan

qiymatning tanlangan birorta qiymatga mos kelmaganda bajariladigan amallarni

o’z ichiga oladi. Agarda berilgan qiymat birorta tanlangan qiymatga mos kelsa, u

holda case amalidan keyin bajariladigan amallar (ular bir nechta bo’lsa, { } orasiga

olinadi) bajariladi, so’ng break amali switch operatorining ishini shu joyda

to’xtatadi va switch operatoridan keyin keladigan operator ishini davom ettiradi.

C va C++ tillarida keyingi case amaliga avtomatik o’tishingiz mumkin, agarda

oldingi case amalining oxirida break yoki goto operatorlari yozilmagan bo’lsa.

Shunday qilib, C# va C++ da quyidagicha yozish mumkin :

Case : statement 1 ;

Case : statement 2;

Break ;

Quyidagi jadvalda C# tilida yaratilgan tiplar va ularning o’chami keltirilgan:

1.1-jadval.Standart tiplar.

Tip

Qiymat oralig’i

O’lchami

Sbyte

-128 to 127

Belgili 8-bit butun

Byte

0 to 255

Belgisiz 8-bit

Butun

Char U + 0000 to U + FFFF

16-bitli Unicod

Bool

true yoki false.

1 bayt

Short

-32768 to 32767

Belgili 16-bit

Ushort

0 to 65535

Belgisiz 16-bit

Int

-2147483648 to 2147483647

Belgili 32-bit

Uint

0 to 4294967295

Belgisiz 32-bit

Long

-9223372036854775808 to 9223372036854775807

Belgili 32-bit

Ulong

0 to 18446744073709551615

Belgisiz 32-bit

Float

-1.5*10^6 to 3.4 *10^7 4

bayt, aniqlik — 7 razryadli

Double

-1.5*10^6 to 3.4 *10^7 8

bayt, aniqlik —16 razryadli

Decimal






-5.0*10^3 2 4 to 1.7 -lO3 0 8 12

bayt, aniqlik — 28 razryadli










2.4.Shart operatori bo`yicha misollar

Shartli o’tish uchun if, else yoki switch kalit so’zlaridan foydalanish mumkin.Bunday o’tish faqat shart rost bo’lganidagina bajariladi.

If … else operatori. If…else – bu shartli o’tish operatori bo’lib, shart if qismida bajariladi. Agar shart rost bo’lsa, shartdan so’ng yozilgan instruksiyalar to’plami (tarkibli instruksiya) bajariladi, agar yolg’on bo’lsa, else qismida yozilgan (yozilmagan bo’lishi ham mumkin) tarkibli instruksiya bajariladi. Masalan:

If(ab) System.Console.Writeln(“kattasi=”+a);

else System.Console.Writeln(“kattasi=”+b);

Shart operatorining natijasi bool tipiga tegishli bo’lib, true(rost) yoki false(yolg’on) bo’lishi mumkin. C# da quyidagi munosabat amallari mavjud:

= = - tenglik,

- katta,

= - katta yoki teng,

!= - teng emas.

if (shart) operator1; else operator2;

Agar shart rost bo’lsa, operator1 bajariladi, agar yolg’on bo’lsa, operator2 bajariladi. Shuni alohida takidlab o’tish lozimki, agarda siz shart yolg’on bo’lganda dasturingiz hech bir ish bajarmasligini xohlasangiz, operator2 ni yozmasligingiz mumkin.Bunda dastur if else dan so’ng yozilgan kod bo’yicha o’z ishini davom ettiradi. Agarda operator1 yoki operator2 dan so’ng bajarilishi lozim bo’lgan amallar soni 1 tadan ortiq bo’lsa ular figurali {} qavslar orasida yozilishi lozim. Masalan: a va b sonlarni kattasini a ga kichigini b ga yozish dasturi

class Program

{static void Main(string[] args)

{int a, b, c;

a = 10; b=20;

if (a

System.Console.WriteLine(a+” , ”+b);

System.Console.ReadKey();}

}

Ichma-ich shart operatorlari.

Ichma-ich shart operatorlari - bu C# dasturlash tilining afzalligi bo’lib, bunda bir necha murakkab shartlarni bir shart orqali tekshirish, aniqlash mumkin. Bir o’zgaruvchi qiymatini bir necha shartlar orqali tekshirish uchun ichma-ich bir necha shart operatorlaridan foydalanish mumkin:

using System;

class Values

{

static void Main( )

{

int temp = 25;

if (temp 21)

{

if (temp

{

Console.WrireLine ("Temperatura meyorda");

if (temp == 24)

{

Console.WriceLine("ishlash sharoiti optimal");

}

else

{

Console .WriteLine ("ishlash sharoiti optimal emas\n" + "optimal temperatura 24");

} } }


Ko’p shartlilik qo’llanilishi.

Bunda bir necha shartni bir vaqtda tekshirish zarurati hisobga olinadi. C# tilida buning uchun maxsus qo’shish (shartni) kalit so’zlari mavjud : && - va, | | - yoki, ! – inkor (!= bo’lsa, teng emas ma’nosida). Masalan:

using System;

namespace Misol

{class Program

{static void Main(string[] args)

{int n1 = 5;

int n2 = 0;

if ( (n1 = = 5) && (n2 = = 5))

Console.WriteLine(" Salom");

else

Console.WriteLine("Yoshlar");

If ((n1 = = 5) | | (n2 = = 5))

Console.WriteLine("Buxoro");

else

Console.WriteLine("Vaqt");}

}

Bu misolda har bir if operatori ikkita shartni tekshirib boradi.

Switch operatori.

Juda ko’p hollarda ichma-ich yozilgan shart operatorlari ko’p tekshirish olib borib bir nechta amal bajaradi. Lekin bulardan faqat bittasigina haqiqiy bo’ladi. Masalan:

if (myValue == 10) Console.WriteLine("myValue teng 10");

else

if (myValue == 20) Console.WriteLine("myValue teng 20 " ) ;

else

if (myValue == 30) Console.WriteLine("myValue teng 30 " ) ; else ....



Bunday murakkab shart tekshirilishi bo’lganda if operatoridan ko’ra, uning yangi versiyasi bo’lgan switch dan foydalanish afzal.Switch operatori quyidagicha ishlaydi:

Switch (ifoda)

{

case : o’zgarmas ifoda : instruksiya o’tish ifodasi

default : instruksiya

}

Misoldan ko’rinib turibdiki, switchda ham tekshirilayotgan ifoda if … else dagi kabi, ( ) orasiga olingan va operatordan keyin yozilgan.Case(tekshirish) va default (aks holda) bo’limlari qaysi amal bajarilishi zarurligini aniqlab beradi.Case operatori albatta biror bir tenglashtirish uchun qiymat talab qiladi.

{

switch ( myValue )

case 10:

Console.WriteLine("myValue teng 10") ;

break;

case 20:

Console.WriteLine("myValue teng 20");

break;

case 30: Console.WriteLine("myValue teng 30");

break;

}

Switch operatorida default amalini yozish shart emas, chunki u berilgan qiymatning tanlangan birorta qiymatga mos kelmaganda bajariladigan amallarni o’z ichiga oladi. Agarda berilgan qiymat birorta tanlangan qiymatga mos kelsa, u holda case amalidan keyin bajariladigan amallar (ular bir nechta bo’lsa, { } orasiga olinadi) bajariladi, so’ng break amali switch operatorining ishini shu joyda to’xtatadi va switch operatoridan keyin keladigan operator ishini davom ettiradi.

C va C++ tillarida keyingi case amaliga avtomatik o’tishingiz mumkin, agarda oldingi case amalining oxirida break yoki goto operatorlari yozilmagan bo’lsa. Shunday qilib, C va C++ da quyidagicha yozish mumkin :

Case : statement 1 ;

Case : statement 2;

Break ;

Bu misolda statement 1 dan so’ng statement 2 ga avtomatik tarzda o’tiladi (C++ da). C# da bu dastur ishlamaydi, chunki C# tili sintaksisida case1 dan case2 ga ikki xil vaziyatda o’tish mumkin : agarda birinchi amal bo’sh bo’lsa (case dan so’ng hech qanday qiymat tekshiriladi) yoki break, goto operatorlari yordamida. Har bir case operatori o’zida break amalini ushlab turishi lozim. Masalan:

{

switch (a )

case 10:

Console.WriteLine("a= 10" ) ;

break;

case 20:

Console.WriteLine("a=20");

break;

case 30: Console.WriteLine("a= 30");

break;

}

yoki quyidagicha berish ham mumkin :

using System;

namespace Misol

class MyClass

static void Main(string[j] args)

{

int user = 0;

user = Convert.Tolnt32(Console.ReadLine( ));

switch(user)

case 0:

Console.WriteLine("Salom User1");

break;

case 1 :

Console.WriteLine("Salom User2");

break;

case 2:

Console.WriteLine("Salom User3");

break;

default:

Console.WriteLine("Salom yangi foydalanuvchi");

break;

}

Quyida iqtisodiy masalani yechish usuli berilgan :

using System;

namespace C_Sharp_Programing

{

class Part

{

public static void Main()

{

Console.WriteLine("1: mahsulot nomini kiriting,n2: mahsulot sonini kiriting");

int Choice = Convert.Tolnt32(Console.ReadLine());

switch (Choice)

case 1 :

string Kane;

Console.Write("Mahsulot nomini kiriting " ) ;

Name = Console.ReadLine();

break;

case 2:

int Count;

Console.Write("Mahsulot sonini kiriting " ) ;

Name = Console.ReadLine();

Count = Convert.Tolnt32(Console.ReadLine()) ;

break;

default:

break;}

2.5.Switch va satrlar bilan ishlash.

Yuqorida keltirilgan misollarda userlar butun tipga tegishli edi.Agarda siz switch operatorini satrli tipda ishlatmoqchi bo’lsangiz, u holda quyidagicha yozishingiz mumkin:

Case : “Anvar” ;

Agarda tekshirish uchun satrlar ko’p bo’lsa, butun tipli o’zgaruvchilar ko’p marotaba case operatorini ishlatishga majbur etadi. Quyida esa satr o’zgaruvchisi ishlatilgan switch operatori berilgan:

using System;

namespace SwitchStatement

{

class MyClass

{

static void Main(string[] args)

{

string user;

user = Console.ReadLine() ;

switch(user)

{

case "user1":

Console.WriteLine("Salom 1 chi foydalanuvchi");

break;

case "user2":

Console.WriteLine ("Salom 2 chi foydalanuvchi ");

break;

case "user3":

Console.WriteLine ("Salom 3 chi foydalanuvchi ");

break;

default:

Console.WriteLine("Salom 4 chi foydalanuvchi ");

break;

}

}

Bu yerda siz foydalanuvchi bo’lib kirish uchun, butun tip emas balki, satr tipida kiritishingiz mumkin bo’ladi.Agar siz user1 deb yozsangiz ekranda “salom birinchi foydalanuvchi” degan yozuv paydo bo’ladi.





Xulosa

kasb-hunarlarni egallashi, jismonan va ma’nan yetuk insonlar bo‘lib ulg‘ayishi, ularning qobiliyat va iste’dodini, intellektual salohiyatini yuzaga chiqarish, yosh avlod qalbida Vatanga sadoqat va fidoyilik tuyg‘ularini yuksaltirish borasida ulkan ishlar amalga oshirilmoqda. Prezidentimizning 2017-yil 7-fevraldagi "O‘zbekiston Respublikasini yanada rivojlantirish bo‘yicha Harakatlar strategiyasi to‘g‘risida"gi farmonida ijtimoiy soha, xususan, ta’lim va ilm-fan sohalarini takomillashtirish borasida qator vazifalar belgilangan.  Men ushbu kurs ishini tayyorlash davomidagi vaqt oralig`ida juda ko`p bilim, ko`nikma va malakalarga ega bo`ldim. Ushbu kurs ishim yordamida C# tili, uning tarixi, asoschilari, uning asosi, til grammatikasi va qoidalari va operatorlar haqida juda ko`p bilimga ega bo`ldim. Bundan tashqari Visual Studio 2012 dasturi komponentlari haqida o’rgandim. Qisqa qilib aytganda ushbu kurs ishim menga juda ko`p bilim olishimga, izlanishimga majbur qildi va bundan afsuslanmayman. Ushbu kurs ishida men massivlar asoslarini va ulardan qanday qilib C# dan foydalanishni bilib oldim. Ushbu kurs ishining boshida biz bir o'lchovli, ko'p o'lchovli va tarqoq massivlar kabi turli xil massivlarni muhokama qildik. Shundan so'ng biz Array sinfini muhokama qildik. Ushbu kurs ishining oxirida biz Array sinfining turli xil usullari va xususiyatlaridan foydalangan holda massivlar bilan ishlashni ko'rdik.










Foydalanilgan adabiyotlar

1.I.A. Karimov O‘zbеkiston buyuk kеlajak sari.—Toshkеnt.: «O‘zbеkiston», 1998.—528 b.

2O.I. Jalolov, Sh.M. Sharipov C# dasturlash tilida fayllar bilan ishlash (uslubiy qo’llanma) BUXORO 2014

3. Пахомов Б.И. П12 C# для начинающих. — СПб.: БХВ-Петербург, 2014. — 432 с.: ил.

4. Албахари, Джозеф, Албахари, Бен. А45 С# 6.0. Справочник. Полное описание языка 6-е изд. : Пер. с англ. – М. : ООО “И.Д. Вильямс”, 2016. – 1040 с. : ил. — Парал. тит. англ.

5. Шилдт, Герберт. Ш57 C# 4.0: полное руководство.: Пер. с англ. — М.: ООО "И.Д. Вильямс", 2011. — 1056 с.: ил. — Парал. тит. англ.








Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!