Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 12000UZS
Размер 43.9KB
Покупки 0
Дата загрузки 08 Май 2025
Расширение docx
Раздел Курсовые работы
Предмет Информатика и ИТ

Продавец

Abdulla Inomboyev

Дата регистрации 02 Май 2024

0 Продаж

Ko'p oqimlilik

Купить
Mavzu:  Ko`p oqimlilik .
REJA:
I. Kirish
II. Asosiy qism
1. Ko'p oqimlilikka kirish. Thread sinfi .
2. Oqimlarning yaratilishi. ThreadStart delegati .
3. Parametrlar va ParameterizedThreadStart bilan oqimlar.
4. Oqimlarni sinxronlashtirish .
III. Xulosa
IV. Foydalanilgan adabiyotlar
1 I. KIRISH
Bugungi   kunda   ta’lim-tarbiya   sohasida   o’yin   orqali   darslarni   tashkil   etish
dolzarb   muammolardan   biridir.   Didaktik   o’yin   ta’lim   jarayonini   faollashtiruvchi
pedagogik   usullar   orasida   alohida   o’rin   egallaydi,   ta’limiy-o’yin   bo’lib,   u   o’zida
maqsadga   yo’naltirilgan   mutaxasislikning   kasbiy   faoliyatini   qamrab   oladigan
o’zaro bog’liqlikni mujassamlashtiradi. Chet  el  va o’zbek yetakchi  pedagoglaring
tajribasi,   tadqiqotlari   va   izlanishlari   an’anaviy   (imperativ)   pedagogikani   ta’lim
sub’ektning   individual   sifatlarini   bilim,   malaka   va   ko’nikmalar   asosida
rivojlantiruvchi hamkorlik va rivojlanish pedagogikasiga almashtirilishi zarurligini
ta’kidlaydi.   Bu   pedagogika   ta’lim   texnologiyasini   tubdan   o’zgartiradi.   Uning
maqsadi   o’quvchining   o’zlashtirish   faolligini   oshirish,   mustaqil   fikrlash   va
faoliyatga undashdan iborat. Buning uchun o’quvchi ta’limga ijod jarayoni sifatida
yondoshmog’ii va bilimlarni mustaqil egallashga intilmog’i lozim.
O’yinlar   ta’lim   metodining   asosiy   ijobiy   tomoni   bo’lib,   quyidagilarni
amalga   oshirish   imkonini   beradi:   birinchidan,   ta’lim   oluvchilar   jamiyatga   zarar
yetkazaib   qo’yishi   mumkin   bo’lgan   xatolarni   qilishdan   qo’rqmaydilar,   aksincha
qilgan   xatolari   asosida   tajriba   orttiradilar;   ikkinchidan   real   jarayonlarning   vaqti
o’tishi ancha tezlashadi (masalan, hayotda bir necha yil davom etadigan voqealarni
bir   necha   soatgacha   qisqartirish   mumkin);   uchinchidan   malakalarning
mustahkamlanishi   uchun   u   yoki   bu   harakatlarni   bir   necha   marta   takrorlash
imkoniyati   yaratiladi   to’rtinchidan   faoliyat   “shartli”   (model)   holatda   tashkil
qilingani   tufayli   ta’lim   oluvchilarni   holatlarni   kuzatish   va   foydaliroq   yechimlarni
topishga   undash   imkoniyati   mavjud   bo’ladi.   O’yin   faoliyati   tomonidan
yondoshganda   didaktik   ta’limiy   o’yin   -   bu   ta’lim   oluvchilarning   ijtimoiy   va
predmetli   faoliyatni   o’yin   jarayonida,   o’yin   qoidalariga   singdirilgan   kasbiy
faoliyatning   shartli   vaziyatlari   orqali   muammolarning   yechimini   topishda   amalga
oshiriladigan   bilish   va   o’zlashtirishdir.   Ta’lim   faoliyatini   tashkil   etish   nuqtai
2 nazaridan bu murakkab pedagogik texnologiyadir, ta’limiy o’yin talabaning o’quv-
ta’limiy faoliyatning maxsus tashkil etishni o’zida mujassamlashtiradi.
3 II. ASOSIY QISM
1. Ko'p oqimlilikka kirish. Thread sinfi .
Zamonaviy dasturlashning asosiy jihatlaridan biri bu multithreadingdir. Bu
o'p   oqim   bilan   ishlashda   asosiy   tushuncha   hisoblanadi.   Tarmoq   dasturdagi   kod
qismini   ifodalaydi.   Dastur   bajarilganda,   har   bir   ipga   ma'lum   bir   vaqt   oralig'i
ajratiladi.   Va   multithreading   yordamida   biz   ilovada   bir   vaqtning   o'zida   turli
vazifalarni   bajaradigan   bir   nechta   iplarni   tanlashimiz   mumkin.   Agar   bizda,
aytaylik,   biron   bir   serverga   so'rov   yuboradigan   yoki   katta   faylni   o'qiydi   va   qayta
ishlovchi   grafik   ilovaga   ega   bo'lsak,   unda   ko'p   ishlamay   turib,   biz   vazifaning
davomiyligi uchun grafik interfeysni bloklaymiz. Va mavzular tufayli biz so'rovni
yuborishni   yoki   uzoq   vaqt   davomida   qayta   ishlanishi   mumkin   bo'lgan   boshqa
vazifani   alohida   mavzuga   ajratishimiz   mumkin.   Shuning   uchun,   masalan,   mijoz-
server ilovalari (va nafaqat ular) ko'p oqimsiz amalda tasavvur qilib bo'lmaydi.
Ilovada   iplardan   foydalanishning   asosiy   funksionalligi   System.Threading
nom   maydonida   jamlangan   .   U   bitta   ipni   ifodalovchi   sinfni,   Thread   sinfini
belgilaydi.
Thread klassi  ip haqida ma'lumotni boshqarish va olish imkonini beruvchi
bir qancha usullar va xususiyatlarni belgilaydi. Sinfning asosiy xususiyatlari:
 ExecutionContext:   ip   bajarilayotgan   kontekstni   olish   imkonini
beradi.
 IsAlive:  ish zarrachasi hozirda ishlayotganligini bildiradi.
 IsBackground:  mavzu fonda ekanligini ko'rsatadi.
 Ism:  mavzu nomini o'z ichiga oladi.
 ManagedThreadId:  joriy ipning raqamli identifikatorini qaytaradi.
 Priority:   mavzuning   ustuvorligini   saqlaydi   -   ThreadPriority   enum
qiymati:
o Eng past.
4 o Oddiydan past.
o Oddiy.
o Oddiydan yuqori.
o Eng yuqori.
Odatiy bo'lib, oqim Oddiy qilib o'rnatiladi. Biroq, dastur ishlayotgan paytda
biz   ustuvorlikni   o'zgartirishimiz   mumkin.   Masalan,   ustuvorlikni   Eng   yuqoriga
o'rnatish orqali ipning ahamiyatini oshiring. Umumiy tilning ishlash vaqti ustuvor
qiymatlarni   o'qiydi   va   tahlil   qiladi   va   ularga   asoslanib,   ushbu   mavzuga   ma'lum
vaqt ajratadi.
 ThreadState   ipning   holatini   qaytaradi   -   ThreadState   enum
qiymatlaridan biri:
o To'xtatildi : Mavzu to'xtadi, lekin hali to'liq tugatilmagan.
o AbortRequested:   mavzuning   Abort   usuli   chaqirildi,   lekin
mavzu hali tugatilmagan.
o Orqa fon:  mavzu fonda ishlamoqda.
o Ishlamoqda:  ip ishlamoqda (to'xtatilmagan).
o To'xtatildi:  mavzu tugatildi.
o StopRequested:  Mavzu to'xtatish so'rovini oldi.
o To'xtatilgan:  ip to'xtatilgan.
o SuspendRequested:  Mavzu to'xtatib qo'yish so'rovini oldi.
o Boshlanmagan:  mavzu hali boshlanmagan.
o WaitSleepJoin:   Uyqu   yoki   qo'shilish   usullari   natijasida   ip
bloklangan.
Ipning ishlashi davomida uning holati usullar ta'sirida ko'p marta o'zgarishi
mumkin. Shunday qilib, eng boshida, hatto Start usuli qo'llanilishidan oldin, uning
holati   ga   o'rnatiladi   Unstarted.   Mavzuni   ishga   tushirgandan   so'ng,   biz   uning
5 holatini ga o'zgartiramiz Running. Kutish usulini chaqirish orqali holat ga o'zgaradi
WaitSleepJoin.
Bundan   tashqari,   Thread   sinfining   CurrentThread   statik   xususiyati   joriy
ipni   olish   imkonini   beradi.   C#   dasturida   hech   bo'lmaganda   bitta   ish   zarrachasi
mavjud bo'lib, unda Main usuli bajariladi. Masalan, mavzu haqida ma'lumot olish
uchun yuqoridagi xususiyatlardan foydalanamiz:
System.Threading yordamida;
Thread currentThread = Thread.CurrentThread;
Console.WriteLine($"Mavzu nomi: {currentThread.Name}");
currentThread.Name = "Asosiy usul";
Console.WriteLine($"Mavzu nomi: {currentThread.Name}");
Console.WriteLine($"Mavzuli mazmuni: {currentThread.IsAlive}");
Console.WriteLine($"Mavzu ID: {currentThread.ManagedThreadId}");
Console.WriteLine($"Ustuvor mavzu: {currentThread.Priority}");
Console.WriteLine($"Mavzu holati: {currentThread.ThreadState}");
Bunday holda, biz quyidagi natijaga o'xshash narsani olamiz:
Mavzu nomi: mavzu
Mavzuli mazmuni: asosiy usul
Mavzu ID: 1 mavzu
Ustuvor mavzu: oddiy mavzu
Mavzu holati: ishlayotgan
Thread   obyektlarining   Name   xossasi   sukut   bo'yicha   o'rnatilmaganligi
sababli,   birinchi   holatda   biz   ushbu   xususiyatning   qiymati   sifatida   bo'sh   qatorni
olamiz.
Thread   klassi   shuningdek,   ipni   boshqarishning   bir   qancha   usullarini
belgilaydi. Ulardan asosiylari:
 Statik  GetDomain  usuli ilova domeniga havolani qaytaradi
6  GetDomainID   statik usuli  joriy oqim ishlayotgan dastur  domenining
identifikatorini qaytaradi.
 Statik  Sleep  usuli ipni ma'lum bir millisekundlar uchun to'xtatadi
 Interrupt usuli  WaitSleepJoin  holatidagi ipni to'xtatadi.
 Qo'shilish   usuli   uni   chaqirgan   ipning   bajarilishini   ushbu   Join   deb
nomlangan ip tugaguncha bloklaydi .
 Start  usuli ipni boshlaydi
Masalan,   ilovaning   bajarilishini   kechiktirish   uchun   Sleep   usulidan
foydalanamiz:
using System.Threading;
for(int i = 0; i < 10; i++)
{
Thread.Sleep(500);
Console.WriteLine(i);
}
2. Oqimlarning yaratilishi. ThreadStart delegati .
C# tili ilova ichida bir vaqtning o'zida bajariladigan bir nechta iplarni ishga
tushirish va bajarish imkonini beradi.
Thread sinfining konstruktorlaridan biri ip yaratish uchun ishlatiladi:
 Thread(ThreadStart):   parametr   sifatida   ipda   bajariladigan   amalni
ifodalovchi ThreadStart delegat ob'ektini oladi.
 Thread(ThreadStart,   Int32):   ThreadStart   delegatiga   qo'shimcha
ravishda   u   ushbu   mavzu   uchun   ajratilgan   stek   hajmini   belgilovchi   raqamli
qiymatni qabul qiladi.
 Thread(ParameterizedThreadStart):   parametr   sifatida   ipda
bajariladigan amalni ifodalovchi ParameterizedThreadStart delegat ob'ektini oladi.
7  Thread(ParameterizedThreadStart,   Int32):   ParameterizedThread   -
Start   delegati   bilan   birgalikda   u   ushbu   mavzu   uchun   stek   hajmini   belgilovchi
raqamli qiymatni oladi.
Qaysi   konstruktorni   yaratish   uchun   ishlatilishidan   qat'iy   nazar,   biz   ipda
bajarilgan   harakatni   aniqlashimiz   kerak.   Ushbu   maqolada   biz   ThreadStart
delegatidan foydalanishni ko'rib chiqamiz. Bu delegat hech qanday parametr qabul
qilmaydigan va hech qanday qiymat qaytarmaydigan amalni ifodalaydi:
public delegate void ThreadStart();
Ya'ni,   bu   delegat   ostida   biz   bekor   turiga   ega   bo'lgan   va   hech   qanday
parametrlarni   qabul   qilmaydigan   usulni   aniqlashimiz   kerak.   Mavzu   ta'rifiga
misollar:
Thread myThread1 = new Thread(Print); 
Thread myThread2 = new Thread(new ThreadStart(Print));
Thread myThread3 = new Thread(()=>Console.WriteLine("Hello 
Threads")); 
void Print() => Console.WriteLine("Hello Threads");
Yangi mavzuni boshlash uchun Thread sinfining Start usulidan foydalaning:
using System.Threading;
// yangi mavzu yaratish
Thread myThread1 = new Thread(Print);
Thread myThread2 = new Thread (yangi ThreadStart(Print));
Thread myThread3 = new Thread(()=>Console.WriteLine("Hello 
Threads"));
myThread1.Start(); // myThread1 mavzusini boshlang
myThread2.Start(); // myThread2 mavzusini boshlang
myThread3.Start(); // myThread3 mavzusini boshlang
void Print() => Console.WriteLine("Salom mavzular");
8 Mavzular   bir   vaqtning   o'zida   ishlashi   mumkin   bo'lgan   afzalliklarga   ega.
Masalan:
using System.Threadin;
Thread myThread = new Thread(Chop etish);
myThread.Start();
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Asosiy mavzu: {i}");
Thread.Sleep(300);
}
voidPrint()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Ikkinchi mavzu: {i}");
Thread.Sleep(400);
}
}
Bu yerda yangi ip Chop etish usulida belgilangan amallarni bajaradi, ya'ni
0   dan   4   gacha   bo'lgan   raqamlarni   konsolga   chop   etadi.   Bundan   tashqari,   har   bir
chiqishdan keyin 400 millisekundlik kechikish amalga oshiriladi.
Asosiy   mavzuda   -   Main   usulida   Chop   etish   usuli   bajariladigan   yangi   ipni
yarating va boshlang:
Thread myThread = new Thread(Print);
myThread.Start();
Bundan tashqari, biz shunga o'xshash  harakatlarni  asosiy  ipda bajaramiz -
biz   konsolda   0   dan   4   gacha   raqamlarni   300   millisekundlik   kechikish   bilan
ko'rsatamiz.
9 Shunday qilib, bizning dasturimizda Main usuli bilan ifodalangan asosiy ip
va Chop etish usuli bajariladigan ikkinchi ip bir vaqtda ishlaydi. Barcha mavzular
tugashi   bilan   dastur   o'z   bajarilishini   yakunlaydi.   Natijada,   biz   quyidagi   konsol
chiqishini olamiz:
Asosiy oqim: 0 
Ikkinchi oqim: 0 
Asosiy oqim: 1 
Asosiy oqim: 0 
Ikkinchi oqim: 0 
Asosiy oqim: 1 
Ikkinchi oqim: 1 
Asosiy oqim: 2 
Ikkinchi oqim: 2 
Asosiy oqim: 3  Ikkinchi oqim: 3 
Asosiy oqim: 4 
Ikkinchi oqim: 41 
Asosiy oqim: 2 
Ikkinchi oqim: 2 
Asosiy oqim: 3 
Ikkinchi oqim: 3 
Asosiy oqim: 4 
Ikkinchi oqim: 4
Shunga o'xshab, biz uchta, to'rtta va muayyan vazifalarni hal qila oladigan
yangi iplar to'plamini yaratishimiz va ishga tushirishimiz mumkin.
3. Parametrlar va ParameterizedThreadStart bilan oqimlar.
Oldingi   maqolada   parametrlarsiz   usullarni   alohida   mavzularda   qanday
ishga tushirish ko'rib chiqildi. Ammo biz oqimga ba'zi parametrlarni o'tkazishimiz
kerak bo'lsa-chi?
Buning uchun Thread klassi konstruktoriga uzatiladigan 
ParameterizedThreadStart  delegati ishlatiladi:
public delegate void ParameterizedThreadStart(object? obj);
ParameterizedThreadStart   delegatidan   foydalanish   bilan   ishlashga
o'xshaydi ThreadStart. Keling, bir misolni ko'rib chiqaylik:
using System.Threading;
Thread myThread1 = new Thread(new ParameterizedThreadStart(Print));
Thread myThread2 = new Thread(Print);
10 Thread myThread3 = new Thread(message => 
Console.WriteLine(message));
myThread1.Start("Hello");
myThread2.Start("Привет");
myThread3.Start("Salut");
void Print(object? message) => Console.WriteLine(message);
Yiv   yaratilganda,   Thread   sinfining   konstruktoriga
ParameterizedThreadStart   delegat   ob'ekti   new   Thread(new
ParameterizedThreadStart(Print))yoki   to'g'ridan-to'g'ri   ushbu   delegatga   (   )   mos
keladigan   usul   new   Thread(Print),   shu   jumladan   lambda   ifodasi   (   new
Thread(message => Console.WriteLine(message))) shaklida uzatiladi.
Keyin ip ishga tushirilganda Start()qiymat usulga o'tkaziladi, u Chop etish
usuli parametriga o'tkaziladi. Va bu holda, biz quyidagi konsol chiqishini olamiz:
Salut
Hello
Привет
ParameterizedThreadStart   dan   foydalanganda   biz   cheklovga   duch   kelamiz:
biz   faqat   turdagi   ob'ektni   oladigan   ikkinchi   ish   zarrachasida   usulni   ishga
tushirishimiz   mumkin   object?.   Shuning   uchun,   agar   biz   boshqa   turdagi
ma'lumotlardan   foydalanmoqchi   bo'lsak,   biz   usulning   o'zida   turdagi   castni
bajarishimiz kerak. Masalan:
using System.Threading; 
int number = 4;
Thread myThread = new Thread(Print);
myThread.Start(number);    // n * n = 16
void Print(object? obj)
{
if (obj is int n)
11 {
Console.WriteLine($"n * n = {n * n}");
}
}
bu   holda,   hisob-kitoblarda   foydalanish   uchun   uzatilgan   qiymatni   qo'shimcha
ravishda int turiga o'tkazishimiz kerak.
Ammo   biz   bir   emas,   balki   har   xil   turdagi   bir   nechta   parametrlarni
o'tkazishimiz   kerak   bo'lsa-chi?   Bunday   holda   siz   o'zingizning   turlaringizni
belgilashingiz mumkin:
using System.Threading;
Person tom = new Person("Tom", 37);
Thread myThread = new Thread(Print);
myThread.Start(tom);
void Print(object? obj)
{
if (obj is Person person)
{
Console.WriteLine($"Name = {person.Name}");
Console.WriteLine($"Age = {person.Age}");
}
}
record class Person(string Name, int Age);
Birinchidan,   biz   maxsus   Person   sinfini   aniqlaymiz,   uning   ob'ekti   ikkinchi
ipga o'tkaziladi va Main usulida uni ikkinchi ipga o'tkazamiz.
Ammo bu erda yana bitta cheklov bor: usul tipga Thread.Startxavfsiz emas,
ya'ni  biz unga istalgan turni  o'tkazishimiz  mumkin, keyin esa o'tkazilgan ob'ektni
o'zimizga   kerak   bo'lgan   turga   chiqarishimiz   kerak   bo'ladi.   Ushbu   muammoni   hal
12 qilish uchun barcha foydalanilgan usullar  va o'zgaruvchilarni  maxsus  sinfda e'lon
qilish va asosiy dasturda ThreadStart orqali ipni boshlash tavsiya etiladi. Masalan:
using System.Threading;
Person tom = new Person("Tom", 37);
Thread myThread = new Thread(tom.Print);
myThread.Start();
record class Person(string Name, int Age)
{
public void Print()
{
Console.WriteLine($"Name = {Name}");
Console.WriteLine($"Age = {Age}");
}
}
4. . Oqimlarni sinxronlashtirish.
Mavzular   butun   dastur   uchun   umumiy   bo'lgan   ba'zi   umumiy   resurslardan
foydalanishi   odatiy   hol   emas.   Bu   umumiy   o'zgaruvchilar,   fayllar   va   boshqa
resurslar bo'lishi mumkin. Masalan:
int x = 0;
for (int i = 1; i < 6; i++)
{
Thread myThread = new(Print);
myThread.Name = $"Urunish {i}";
myThread.Start();
}
void Print()
{
x = 1;
13 for (int i = 1; i < 6; i++)
{
Console.WriteLine($"{Thread.CurrentThread.Name}: {x}");
x++;
Thread.Sleep(100);
}
}
Bu erda bizda Chop etish usulini chaqiradigan va umumiy x o'zgaruvchisi
bilan ishlaydigan beshta ip mavjud. Va biz bu usul 1 dan 5 gacha bo'lgan barcha x
qiymatlarini aks ettiradi deb taxmin qilamiz. Va har bir ip uchun. Biroq, haqiqatda,
ish   jarayonida   iplar   o'rtasida   almashinish   sodir   bo'ladi   va   x   o'zgaruvchining
qiymatini   oldindan   aytib   bo'lmaydi.   Misol   uchun,   mening   holimda   men   quyidagi
konsol chiqishini oldim (har bir holatda u farq qilishi mumkin):
Urunish 1: 1
Urunish 5: 1
Urunish 4: 1
Urunish 2: 1
Urunish 3: 1
Urunish 1: 6
Urunish 5: 7
Urunish 3: 7
Urunish 2: 7
Urunish 4: 9
Urunish 1: 11
Urunish 4: 11
Urunish 2: 11 Urunish 3: 14
Urunish 5: 11
Urunish 1: 16
Urunish 2: 16
Urunish 3: 16
Urunish 5: 18
Urunish 4: 16
Urunish 1: 21
Urunish 5: 21
Urunish 3: 21
Urunish 2: 21
Urunish 4: 21
Muammoni   hal   qilish   iplarni   sinxronlashtirish   va   ular   ish   zarrachalari   tomonidan
foydalanilayotganda  umumiy  resurslarga  kirishni   cheklashdir.  Buning uchun  lock
14 kalit   so'zi   ishlatiladi   .   Qulflash   bayonoti   kod   blokini   belgilaydi,   uning   ichida
barcha kod bloklanadi  va joriy oqim  tugaguncha  boshqa oqimlarga kirish imkoni
yo'q. Qolgan iplar kutish navbatiga joylashtiriladi va joriy ip berilgan kod blokini
chiqarguncha   kuting.   Natijada,   lock   yordamida   biz   oldingi   misolni   quyidagicha
qayta yozishimiz mumkin:
int x = 0;
object locker = new();
for (int i = 1; i < 6; i++)
{
Thread myThread = new(Print);
myThread.Name = $"Urunish {i}";
myThread.Start();
}
void Print()
{
lock (locker)
{
x = 1;
for (int i = 1; i < 6; i++)
{
Console.WriteLine($"{Thread.CurrentThread.Name}: {x}");
x++;
Thread.Sleep(100);
}
}
}
lock   kalit   so'ziga   ega   bo'lgan   qulf   uchun   stub   ob'ekti   ishlatiladi,   bu   holda
o'zgaruvchi  locker. Bu odatda  ob'ekt  turidagi  o'zgaruvchidir. Va bajarish  qulflash
15 bayonotiga yetganda, qulflash ob'ekti bloklanadi va uni blokirovka qilish davomida
faqat   bitta   ip   kod  blokiga   eksklyuziv   kirish   huquqiga   ega.   Kod   bloki   tugagandan
so'ng,   qulflash   ob'ekti   bo'shatiladi   va   boshqa   mavzular   uchun   mavjud   bo'ladi.
Bunday holda, konsol chiqishi yanada tartibli bo'ladi:
Urunish 1: 1
Urunish 1: 2
Urunish 1: 3
Urunish 1: 4
Urunish 1: 5
Urunish 5: 1
Urunish 5: 2
Urunish 5: 3
Urunish 5: 4
Urunish 5: 5
Urunish 3: 1
Urunish 3: 2
Urunish 3: 3 Urunish 3: 4
Urunish 3: 5
Urunish 2: 1
Urunish 2: 2
Urunish 2: 3
Urunish 2: 4
Urunish 2: 5
Urunish 4: 1
Urunish 4: 2
Urunish 4: 3
Urunish 4: 4
Urunish 4: 5
III.XULOSA
Axborot   texnologiyalarining   misilsiz   taraqqiyoti   dunyo   miqyosida
yaxlitaxborotlashgan   jamiyat   shakllanishiga   olib   keldi.   Ana   shunday   sharoitda,
Respublikamizda   ham   bugungi   kunda   axborot   tizimi   rivojlanmoqda.   Kurs   ishni
bajarishimning   asosiy   maqsadi   ham   axborot   tizimini   rivojlantirishni   mukammal
o’rganib   kelajakda   butun   dunyo   stadartlarija   javob   beradigan   axborot   tizimini
yaratishdir. 
O’z   dasturimni   tayyorlash   jarayonida   shunga   amin   bo’ldimki,   har   bir
dasturchi, o’z dasturini tuzar ekan, avvalambor uning foydalanuvchiga tushunarli,
boshqarishga   oson,   hamma   qismlari   puxta   hisob-kitob   qilingan,   dasturda   yuz
berishi mumkin bo’lgan xatoliklarni oldi olingan, dasturning yashash sikli hisobga
16 olingan   bo’lishi   lozim   ekan.   Shundagina   yaratilgan   dastur   foydalanuvchiga   uzoq
muddat, samarali hizmat qilishi mumkin.
Takrorlanuvchi jarayonlarni shart asosida dasturlashda  for, while  yoki  do…
while  operatorlaridan foydalaniladi. Ushbu operatorlarning qay biridan foydalanish
afzalligini   esa   masala   shartidan   bilishimiz   mumkin.   Takrorlanish   jarayoni   necha
marta   amalga   oshishini   avvaldan   bilgan   holda   for   operatoridan,   boshqa   hollarda
esa,  while  yoki  do…while  operatoridan foydalanish maqsadga muvofiqdir.
Boshqaruvni   uzatish   operatorlari   esa   biror   takrorlanuvchi   jarayonlarni
dasturlashda,   yoki   istisnoli   vaziytlarda   qo’llash   uchun   juda   qulaydir.   Ushbu
operatorlar yordamida biz, bajarilayotgan jarayonda algoritmning istalgan qismiga
o’tishimiz   yoki   takrorlanayotgan   siklni   to’xtashimiz   yoxud   uni   bir   muddatga
to’xtatib,   qayta   takrorlashimiz   mumkin   bo’ladi.   Ammo,   eng   asosiysi,   biror
masalaning yechimini topish uchun unga mukammal algoritm ishlab chiqish lozim.
Algoritm to’g’ri va puxta tuzilsa, nafaqat C#, balki, ixtiyoriy dasturlash tilida ham
oson dastur tuza olishimiz aniq.
17 IV.Foydalanilganadabiyotlar.
Foydalanilgansaytlar.
1. https://dot-net.uz
2. https://metanit.com
18

Kurs ishi

Купить
  • Похожие документы

  • Access dasturi yordamida “dorixona” ma‘lumotlar bazasini yaratish
  • Agile va Scrum metodologiyalari dasturiy ta'minot ishlab chiqish
  • Tashkilot miqyosida masofadan muloqot qilish.
  • Talabalar haqida ma'lumot saqlovchi tizim
  • HTML tili, uning asosiy elementlari. Jadval va rasm hosil qilish. Gipermatn va freymlar joylashtirish

Подтвердить покупку

Да Нет

© Copyright 2019-2025. Created by Foreach.Soft

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha