logo

VISUAL STUDIO MUXITIDA BUDILNIK DASTURINI YARATISH

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

1265.09375 KB
 
 	
 	
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA 	
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI	 	
 	
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI	 	
URGANCH FILIALI	 	
 	
KOMPYUTER INJINIRINGI FAKULTETI	 	
 	
DASTURIY INJINIRINGI KAFEDRASI	 	
 
 
 
 
 	
C++ DA DASTURLASH FANIDAN	 	
 	
Kurs ishi	 	
 	
MAVZU: 	VISUAL STUDIO MUXITIDA BUDILNIK DASTURINI YARATISH.	 	
 
 	
 
 
 
Bajardi:	 	
911-14 guruh 	
talabasi 	 	
Babajanov 
Xursandbek	 	
 
Ilmiy rahbar: 	 	
Dasturiy injiniring 
kafedrasi	 	
assistenti	 	
Xo’jayev Otabek	 	
 
 
   
 	
 	
MUNDARIJA	 	
   	 	
    	KIRISH	………………………………………………………………….	..2  	
    	I. NAZARIY 	QIS	M	………………………………………………………	3 	
    	1.1.	 Budilnik  dasturi  haqida  umumiy  ma’lumot	………………………..	3 	
   	 1.2.	 Visual  Studio  2012  dastur	lash muhiti	………………………………	5  	
    1.3.Masalaning qo’yilishi	………………………………………………...	10	  	
    II. ASOSIY	 QISM	……………………	…………………………………	11	 	
    2.1. Dastur komponentalari	……………………………………………....	11	 	
    	2.2	. Foydalanuvchi uchun qo’llanma	…………………………………….	15	  	
    XULOS	A	………………………………………………………………...	19	 	
    FOYDALANILGAN  ADABIYOTLAR	………………………………	20	 	
   	 ILOVA	…………………………………………………………………...	21	 	
 	
 
 
 	
 	
 	
 
 	
 
 
 
 
 	
   
 	
 	
KIRISH.	 	
Ilmiy  texnika  rivojining  diqqatga  sazovor	  xususiyatlaridan  biri 	- hisoblash 	     	
texnikasining  inson  faoliyatining  barcha  sohalariga  keng  miqyos	ida  tatbiq 	
qilinishidir.  Xalq  xo’jaligining  rivoji  o’z  navbatida  yuqori  unumli  elektron 
hisob	lash mashinalarini (EHM), raqamli	-programmali boshqariladigan stanoklar va 	
qurilmalar,  sanoat  robotlari  va  ishlab  chiqarish  modullarini  ishlab  chiqarishni 
ko’paytirish  va  keng  miqyosda  tatbiq  etishni  talab  etadi.  Avtomatlashtirishning 
asosiy  quroli  bo’lib,	 o’zining  algoritmik  va  programma  ta’minotiga  ega  bo’lgan 	
kompyuterlar  xizmat  qiladi.	 Dvigatel  va  robotlarning  kashf  qilinishi  jismoniy 	
mehnatni  avtomatlashtirish  asrini  ochgan  bo’lsa,  kompyuter  va  sun’iy  intellekt 
vositalarning  paydo  bo’lishi  inson  aqliy 	faoliyatida  xuddi  shunday  yangi  davrni 	
boshlab berdi.	 	
A	хborot  te	хnologiyalari  jahonda  jadal  sur'atlar  bilan  rivojlanib, 	
takomillashib  borayotgan  sohadir.  Bu  sohaning  rivoji  uchun  bizning  buyuk 
ajdodlarimizning  ilmiy  kashfiyotlari  asos  bo’lib 	хizmat  qilmoqda.  Bu  haqda 	
Prezidentimiz  I.A.Karimov  o’zining  "Yuksak 	ma'naviyat 	- yengilmas  kuch" 	
asarida  quyidagi  fikrlarni  keltirib  o’tadi:  "Shu  nuqtai  nazardan  qaraganda, 
zaminimizda  yashab  o’tgan  buyuk  allomalarimiz,  mutafakkir  bobolarimizning 
ibratli hayoti va faoliyati, bemisl ilmiy	-ijodiy kashfiyotlari bugun ham jaho	n ahlini 	
hayratga solayotganin	i g’urur bilan ta'kidlash lozim‖	. 	
Xususiy kompyuterlarning paydo bo’lishi informatikani tatbiq etish va 	
"kompyuter bo’yicha savodsizlik"ni tugatishni tezlatishga asosiy turtki bo’ldi. 
Hozirgi zamon kompyuterlariga bo’lgan qizi	qish shuning uchun ham oshdiki, ular 	
masalani yechishda mehnat unumdorligini keskin oshirdi. Bu integral sxemalar 
yangi kompyuterlarda qo’llanishini hisobga olsak, kompyuterlarning 
mukammallashib borishi juda tez yuz berishi va yaqin orada juda ham mukamma	l 	
kompyuterlar yaratilishi kutilishiga umid qilishimiz mumkin.	 	
   
 	
 	
I. NAZARIY QISM	 	
1.1.	 Budilnik  dasturi  haqida  umumiy  ma’lumot	 	
Ushbu  kurs  ishi 	Budilnik	 	dasturini  yaratishga  qaratilgan  bo`lib,  bu 	
dasturning  vazifasi	 vaqtni  belgilash  yoki 	biror  narsani  esl	atishni  amalga  oshirish 	
hiso	blanadi.	 	
Ushbu  dasturiy  vositani  ishlab  chiqishda  o’ziga  hos  talablar	 	
mavjud. Bu talablar quyida sanab o’tiladi.	  	
Dasturiy  vositani  ishlab  chiqish  uchun  masalaning  qo’yilishi  haqida  yoritib 	
beramiz.	 	
Dastur kompleksi quyidagi vaz	ifalarni bajarishi talab etiladi.	 	
 	Eslatmalarni amalga oshirish;	 	
 	Vaqtni soat bo’yicha to’g’rilash	 	
 	Vaqtni sekund, minut, soatlarda belgilash;	 	
Budilnik qadim zamonlardan beri keng 	foydalanib kelinayotgan dastur h	isoblanadi.	 	
Budilnik dasturini bir necha 	 xil v	az	ifada ishlatish mumkin	: 	
1.Uyg’otgic	h 	 	
2.Eslatma	 	
    	 	 Biz  asosan  bundan  uyg’otgich  sifatida  foydalanamiz.	 Qadim  zamonlarda 	
ham  vaqtni  belgilash  uchun  qum  soatlardan  foydalanishgan.  Bu  qum  soatlari  turli 
xil bo’lgan. Masalan, bir daqiqalik, ikki daqiqalik	, bir soatlik va shunga o’xshagan 	
turlari  bo’lgan.  U  paytlarda  hozirgidek  budilniklar  bo’lmaganligi  tufayli  shunga 
o’xshash  soatlardan  foydalanishganlar.  Ilm	-fan,  texnika  rivojlangani  sayin 	
zamonaviy  soatlar  ishlab  chiqarila  boshladi.  Bu  zamonaviy  soatlarn	ing  deyarli 	
hammasida  budilnik  mavjud.  Chunki  hozirgi  ishlab  chiqarilayotgan  soatlarning 
budilniklari foydalanishga judayam qulay va oson hisoblanadi. Shuning uchun ham 
bunaqangi  soatlarga  hozirda  talab  tobora  oshib  bormoqda. 	Budilnik  qadimgi 	
Xitoyda quyos	h va linza va sekin yonuvchan tayoqchadan foydalanib qo’llanilgan.	 	
   
 	
 	
Qadimgi  Yunonistonda 	quri	lmaga  o’xshash  suv  soatlardan 	
foydalanilgan.Mexanik soatlar sanoat inqilobi davrida 	1787	-yilda Ameri	kalik	  Levi 	
Xatchins  tomonidan  qurilgan  mex	anizm  faqat  soat  4:0	0 	da  jiringlar  edi.1847	-yili 	
esa  F	ransiyalik  olim  Antonie	 Radek  tomonidan  yaratilgan  qurilma  har  qanday 	
vaqtda h	am j	iringlar edi va u budilnik loyih	asi uchun patent oldi.1908	-yil	da esa bu 	
quri	lmadan  Londondagi  Big  Ben  soatida  qo’llash  taklifi  bilan  chiqdil	ar.	 Bundan 	
keyin  esa  elek	tron  budilniklar  ixtiro  qilana  boshlandi  bu  esa  mexanik  soatlarni 	
butkul  sindirish  arafasida  edi.  Elektron  budilniklarning  afzal  jihatlari  mexanik 
soatlargidek  12  soatdan  jiringlamay  24	 soat  ichida  x	ohlagan  soatda  minut 	
sekundigach	a to’g’rilash mumkin edi.	 Bu esa insonlarda qulaylik tug’dirdi.	  	
    	 	 Qiziqarli  ma’lumot:	   	Sensorwake  dasturchilari  uyqudan  uyg’otishning 	
noodatiy  yo’lini  taklif  qildi.  Ularning  taklifiga  ko’ra,  endilikda  ertalablari 
uyg’onish  uchun  qattiq  tovush  talab  e	tilmaydi.  Yangi  budilnik  okeanlar,  jungli 	
o’rmonlari, kofe, shokolad, yalpiz yoki hatto dollarning o’tkir hidini taratish orqali 
uyg’otadi.	 	
Budilnikdagi kukunlar hidi hech qanday kimyoviy reaksiyaga olib kelmaydi. Agar 
hid  3  daqiqa  ichida  uyg’ota  olmasa,  b	udilnik  ovoz  chiqara  boshlaydi.	 Bunday 	
budilnik kartrij orqali ishlaydi.	 	
Leonardo  da  Vinchi  ixtiro  qilgan  budilnik  uxlayotgan  odamning  oyoqlarini 	
qitiqlab uyg’otgan ekan.	 	
 
 	
 
 
 
 
 	
   
 	
 	
1.2.	 Vi	sual  Studio  2012 	 dasturla	sh  muhiti	 	
Visual  Studio  2012  (VS2012)  das	turida  dasturlash  o`ziga  yarasha 	
qulayliklarni yaratadi. Shuning uchun biz shu muhitda  dasturlash tilini visual C++ 
da    dasturlashni  amalga  oshiramiz.  Siz  esa  o`zingizga  yoqqan  muxitda,  dasturlash 
tilida  va  albatta  o`qituvchining  talablarini  inobatga  olga	n  holda    ishlashingiz 	
mumkin. Misol uchun Turbo paskal, turbo C++, Borland Delphi 7,	 	
C-Free  Standart  ,Borland  C++  Dev  C++,  Visual  C++,    boorlend  Delfy  2009  va 	
Visual Studioning boshqa versiyalarida ishlashingiz mumkin.	 	
 VS2012  dasturini  ishga tushiramiz  va	 VS2012 dasturining  asosiy  oynasi  va 	
bosh sahifa ochiladi (1 	- rasm).VS2012 dasturida  ko`p dasturlash tillari yordamida  	
dasturlash  mumkin  misol  uchun  C++,  J#,  VB  va  boshqa  dasturlash  tillari 
yordamida dasturlash  mumkin. Dasturlashni boshlashdan oldin yan	gi proyekt yoki 	
yaratilgan  proyektni  ochib  dasturlashimiz  mumkin. 	Biz  bu  misolda  yangi  proyekt 	
yaratib dasturlashni boshlaymiz.	 	
 	
 	
(1 	– rasm	). 	MS Visual Studio muloqot 	oynasi	. 	
 	   
 	
 	
Yangi proyektni yaratish fayl menyusi yordamida yoki bosh sahifadan yangi 	
proy	ekt oynasini ochish orqali amalga oshiriladi. 	Fayl menyusi orqali ochish 	 	
File 	– >New 	– >Project	 orqali amalga  oshiriladi. Yangi proyektni yaratish 	 	
(1.1	- rasmda	) ko`rsatilgan. 	 	
 	
(1.1 	– rasm	) yangi loyiha	 yaratish oynasi	. 	
Yangi proyekt oynasida 	 dasturla	sh tilini, proyekt turini tanlash, proyekt nomini  	
ko`rsatish kerak.  Biz dasturlash tilining Visual C++, proyektni turi  nomini va 
saqlash joyini ko’rsatamiz, 	Ok	 tugmasini bosamiz va shunda 3 	– rasmdagi oyna 	
ochiladi.	 	
 
 
 
   
 	
 
 	
(1.2	-rasm	) form oynasining ko’r	inishi.	 	
Bunda  VS2012  ning  asosiy  oynasi  va  dasturiy  qismi  (kodi)  saqlanuvc	hi  fayl 	
sahifasi  ham  ochiladi  (1.3	 – rasm). 	Bu  sahifaga  misolning  dasturiy  qismi  yoziladi 	
va shu faylda saqlanadi.   	 	
 	
(1.3 	– ras	m	) dastur kodi yoziladigan oyna.	 	
 
 
   
 	
 	
Dasturlashga o`t	ishdan oldin uning algaritmini tuzish kerak.	  Ushbu kurs ishi 	
dasturini yaratishda .Net Freamwork 2 mu	хiti tanlandi. Bu mu	хitni tanlanishi 	 	
dasturlash  tili  ishlashi  uchun  mu	хimdir.  Microsoft  kompaniyasi  2002	-yil  Sank 	- 	
Peterburg  shahrida  bo’lib  o’tgan  konf	erentsiyada  Devid  Chappelning  .Net 	
Freamwork  ka  bag’ishlab  doklad  qildi.  U  .Net  platformasini  yaratilishi  Windows 
mu	хtida  hamma  narsani  o’zgartiradi,  yani  dasturlash  tillari,  interfeys  va 	
biblotekalar,  ilovalarni  yaratilishini  .Net  markasi  orqali  quyidagi 	asosiy 	
ma	хsulotlar  etkazib  beriladi,  bular  : 	- .Net  Framework 	- amalga  oshirish  mu	хiti, 	
unda  yaratilgan  dasturiy  komponentlar  ishlatiladi.  Bu  mu	хit  dasturiy  kodlarni 	
хavsizligini  taminlash  ,  avtomatik  ravishda  keraksiz  kodlarni  yig’ishtirish  va 
boshqa  ishl	ar  uchun  mo’ljallangandir. 	- Visual  Studio.  Net 	- yaratuvchilar  uchun 	
yaratilgan  mu	хit  bo’lib,  u  bitta  kompilyatordan  iboratdir,  yani  C++ 	
kompilyatoridir.  C++  bunda  Yangi  ,  o’zgartirilgan  integrallashtirish  ishlab  chiqish 
mu	хitidir.  U  programm  komponentlar	ini  yaratishga  bag’ishlangan.  Bundan 	
tashqari  boshqa  ko’pgina  dasturlash  tillarini  ko’llab  quvvatlaydi. 	- .Net  Interprise 	
Servers (.Net korporativ serveri) 	- SQL Server 2000, Ehchange 2000 va boshqalar. 	
.Net  Framework  ikkita  komponentdan  tashkil  topgan.  Un	ing  ilova  yaratuvchi 	
asosiy  instrumenti  bu  Visual  Studio.Net  hisoblanadi.  Unda 	хar  bir 	
programmalashtirish  .Net  Framework  bilan  umumiy  interfeys  orqali  aloqada 
bo’ladi.  Vs.Net  tarkibiga  juda  ko’p  dasturiy  tillar  kiradiki,  ulardan  asosiysi  esa 
C++  tilidir.  Microsoft  .Net  (dot	-net)  dasturiy  te	хnologiya  bo’lib,  u  oddiy  dasturlar 	
kabi,  v	eb 	- ilovalarni  yaratish  uchun  ishlatiladi.  (platforma  sifatida  birmunchi 	
bo’lib  Microsoft  firmasi  tomonidan  taklif  kilingan)  .Net  Microsoft  firmasining 
patentga ega te	хnologiyasi hisoblanadi. .Net 	- ilovalarini yaratish mu	хti. 	 	
.Net  yaratish  mu	хiti 	хuddi 	Java  te	хnologiyasi  kabi  bayt 	- kod  yaratadi.  .Net  ilova 	
yaratuvchi  model  hisoblanadi.  Uning  asosiy  maksadi 	- qurilma  va  platformadan 	
mustaqil  bo’lgan  ilova  yaratishdir,  yana  Internet  orqali  ma'lumotlarga  murojat 
etishni  shakllantiradi  .Net  yadrosini  quyida	gi  te	хnologiyalar  tashkil  etadi:  .Net   
 	
 	
Framework .Net Enterprise Servers . "quruvchi blok" 	хizmati . Vs.Net .Net 	 	
platformasi klient oslari, server va 	хizmatlar bilan integrallashgan va 	 	
quyidagilardan iborat: 	- dastur modeli, ya'ni XML 	- Web 	хizmati va ilo	va yaratish 	
imkonini  beradi 	- хizmatlar  to’plami 	- "quruvchi  blok",  ya'ni  maksimal  samarali 	
ilova  yaratish  imkonini  beradi. 	- .Net  Enterprise  Servers 	- serverlarni  to’liq  jami 	
bo’lib, u ilova yaratish uchun ishlatiladi. Shuningdek klient dasturiy ta'minoti	 (XP, 	
CE)  va  Vs.Net  kiradi.  .Net  Framework  quyidagilardan  tashkil  topgan: 	- CLR 	
(Common  Language  Runtime); 	- bibloteka  klassi  (Web  va  Windows  formalari) 	
.Net quyidagi muammolarni echadi: 	- platformadan mustaqillik .Net tillarini o’zaro 	
bog’liqligini tashki	l qiladi.	 	
1985  yilda  "C++  tilida  dasturlash"  ning  birinchi  to’liq  dasturi  nashrdan 	
chiqdi  va  u  yildan  yilga  o’z  mundarijasini  to’ldirib  bordiyu  o	хirgi  nashrda 	
shablonlar, nomlanish so	хasi turlarni yangicha belgilanishi buleva turi keltirilgan.	 	
C++  standart  biblotekasiga  birinchi  bo’lib,  kiritish 	– chiqarish  potoki  qo’shildi. 	
Kegin esa standart biblotekaga shablonlar ko’shilishi boshlandi.	 	
 
 
 
 
 	
 
 
 
 
 
 
 	
   
 	
 	
1.3.Masalaning qo’yilishi	 	
          	Ushbu  budilnik  dasturini  yaratishda  Visual  Studio  2012  dasturidan 	
foydalangan  holda  yaratildi. 	Bu  turdagi  dasturlash  tillarida  tuzilgan  dasturlar 	
ishlashi uchun avvalo Microsoft companiyasing 	Microsoft .NET Framework	 turli	  	
bibliotekasidan 	 foydalana  olish  imkoni	  bo`lishi  shart. 	Soatlarning  budilniklarni 	
ishlatish uchun uning buragichini burash orqali ma’lum bir vaqtni belgilaymiz. Biz 
yaratgan budilnik dasturi esa kompyuter uchun mo’ljallangan. Bu budilnik dasturni 
ishga  tushirish  uchun  kompyuteringizda  yuqorida  aytib  o’tilgan  Microsoft  .Net 
Framework dasturi kerak bo’ladi.  	Bu budilnik dasturini ishlab chiqishdan maqsad 	
turli xil sohalarda qulayliklar  yaratish uchun ishlab chiqildi.     	 	
          	Budilnik dasturi 	quyidagi vazifalarni bajarishi lozim:	 	
1.	 Eslatmalarni amalga oshirish	 	
2.	 Uyqudan uyg’otish	 	
3.	 Vaqtni belgilash va h	.k.z	 	
   	   	Eslatmalarni  amalga  oshirishda  esingizdan  chiqishi  mumkin  bo’lgan  barcha 	
ma’lumotlarni  yozib  qo’yishingiz  mumkin.	 	Bunda  o’sha  budilnik  dast	urini 	
ochganimizda  dastur  oynasi  hosil  bo’ladi  va  bu  oynaning  pastki  qismida  yozish 
uchun  mo’ljallangan  bo’shliq  paydo  bo’ladi.	 Siz  esa  o’sha  ajratilgan  joyga 	
xohlagan  narsani  yozib  qo’yishingiz  mumkin.	  	Uyqudan  uyg’otishda  ham  xuddi 	
shu  kabi  usullarni  qo’	llashingiz  mumkin.	 Bunda  ertalab  o’qish  yoki  ishga  borish 	
uchun vaqtni belgilab qo’yishingiz  mumkin.	 Bu  vaqtni belgilashda ham  xuddi shu 	
kabi  oyna  hosil  bo’ladi  va  o’sha  oynada  ko’rsatilgan  soat,  minut,  sekundlari 
o’zingizga kerakli bo’lgan vaqtni belgilas	h imkonini beradi.	 Bunda ham eslatmalar 	
yozishingiz  mumkin.  Masalan  ertalab  uyqudan  uyg’onganingizdan  keyin  ish  yoki 
o’qishingizga olib ketishingiz kerak bo’lgan narsalarni yozib qo’yish mumkin.	 	
        	 	
 
   
 	
 	
II. ASOSIY QISM	 	
2.1 Dastur komponentalari	 	
        	   	NumericUpDown komponentasi	 	
NumericUpDown  komponentasi  sonlardan  iborat  foydalanuvchi 	
tomonidan o`suvchi va kamayuvchi sonlarni tashkil etishda ishlatiladi.	 	
Komponentaning  o`ng  tomonida  pastga  va  tepaga  yo`naltirilgan  strelkalar 	
yordamida sonlarni ortti	rish yoki kamaytish mumkin.	 	
Xususiyatlari	 	
Increment	 – bu  xususiyatida  sonlar	  	o`sish  yoki  kamayishining  qiymati 	
belgilanadi  ya`ni  1  bo`lsa  u  holda  1  birlikda  ortib  borish  tartibida 
bo`ladi.(1,2,3….).	 	
Maxsimum	 – bu  xususiyatda  sonlarning  maxsimal  ortishi  mu	mkin  bo`lgan 	
qiymati belgilanadi.	 	
Minimal	 	- 	sonlarning  minimal  kamayishi  mumkin  bo`lgan  qiymati 	
belgilanadi.	 	
Button komponentasi	 	
Tugmalar  boshqaruv  elementlari  hisoblanadi  va  ma`lum  funksional 	
vazifalarni  bajarishga  buyruq  berish  uchun  ishatiladi.  Tugma  yu	zasida  matn  va 	
yoki rasm tasvirlanishi mumkin.	 	
Visual  Studioda	 standart  tugma  Button  kompanenti  yordamida  berilgan. 	
Tugma  yuzasidagi  bosilganda  bajaradigan  ish	-harakatni  tavsiflovchi  yozuvga  ega 	
bo`lishi mumkin.	 	
      	 Tugma  uchun  asosiy  hodisa  u  bosilgan	da  yuzaga  keladigan  OnClick  hodisasi 	
hisoblanadi.  Bunda  tugma  bajarilayotgan  harakatni  Visual  (ko`rinarli)  tasvirlovchi 
mos ko`rinishga ega bo`ladi. OnClick hodisasini qayta ishlovchi qism dasturda 	 	
   
 	
 	
joylashgan harakat tugma qo`yib yuborilishi bilanoq baja	riladi.	 	
Tugmani quyidagi usullar bilan bosish mumkin:	 	
- 	sichqonchani qirsillatish bilan ;	 	
- 	Caption xususiyatida berilgan tugmalar majmuini tanlash bilan;	 	
- 	<Enter> yoki probel tugmalarini bosish bilan;	 	
- 	<Esc> tugmasini bosish bilan.	 	
 
 	
  Label komponentasi	 	
Label	 Yozuv  (label  komponenti)  yorliqni  ifodalaydi  va  ko`pincha  o`zining 	
Text  xususiyatiga  ega  bo`lmagan  boshqa  boshqaruv  elementlarining 	
sarlavasi  sifatida  ishlatiladi.  Ko`pincha  yozuvlarni  tasvirlash  uchun  nishon  deb 
nomlanadigan  Label  kompanenti  ishlatiladi.	 	U  dastur  bajarilish  vaqti 	
foydalanuvchi  tahrirlashi  mumkin  bo`lgan  oddiy  matnni  tasvirlash  uchun 
ishlatiladi.	 	
Visual  Studio  dasturida  Label  kompanentasini  ishlatish  uchun  ―	Панель	 	
элементов	‖ oynasida Label nomli kompanenta tanlanadi.	 	
Xususiyatlari.	 	
BorderS	tyle	 —	 bu  xususiyat  orqali  Label  komponentasini  chegara  sohasini 	
o`zgartirish mumkin.	 	
Chegara  sohasining  3xil  ko`rinishi  mavjud:    none,  (bir  chiziqli) 	окантовка	 	
одной	 линией	 , окантовка	 под	 трехмерное	 пространство	(uch o`lchovli);	 	
Text 	—	 xususiyatida Label 	komponentiga kiritiladigan matn yoziladi.	 	
AutoSize	 	—	 	Nishon  matniga  bog`liq  ravishda  Label  kompanenti 	
o`lchamlarini  avtomatik  rostlashni  boshqarish  uchun  Boolean  turidagi  AutoSize 
xususiyati  xizmat  qiladi.  Agar  xususiyat  (odatdagidek)  True  qiymatga  ega  bo`	lsa, 	
Label kompanenti Caption xususiyatidagi matnga ko`ra o`lchamlarini o`zgartiradi.	 	
TextAlign	 —	  yozilgan matnning Label chegarasi bo`ylab qanday 	   
 	
 	
 
joylashishini belgilash. Label kompanenti ichida matnni rostlash uchun quyidagi 	 	
qiymatlarni qabul qiluvch	i TAlignment turidagi Alignment xususiyati qo`llaniladi:	 	
- TopLeft	– chap yon bo`ylab rostlash;	 	
- TopCenter 	– matnni markazlashtirish;	 	
- TopRight 	– o`ng yon bo`ylab rostlash.	 	
Nishonning  shaffof  yoki  bo`yalganligi  Boolean  turidagi  Transporent 	
xususiyati  belg	ilaydi.  Bo`yoq  rangi  Color  xususiyati  yordamida  o`rnatiladi. 	
Odatda,  Transporent  xususiyati  False  qiymatiga  ega  va  nishon  noshaffof  bo`ladi. 
Shaffof  Label  kompanenti  nishon  rasm  ustida  joylashtirilganda  va  tasvirni 
yopmasligi  zarur  bo`lgan  hollarda  kerak  b	o`lishi  mumkin.  Masalan,  geografik 	
xaritada.	 	
RichTextBOX komponentasi	 	
Ko`p  satrli  matn  bilan  ishlash  uchun  Visual  Studioda 	RichTextBOX	 	
kompanenti  mavjud.  Ko`p  astrli  redaktorlar  bir  satrli  redaktorlar  ega  bo`lgan 
imkoniyatlarga  ega.  Bu  boshqruv  elementlari	ning    asosiy  farqi  shundaki,  ko`p 	
satrli redaktorlar bir necha satrlarga ega bo`lishi mumkin.	 	
Ko`p  satrli  redaktordagi  ma`lumotga  murojaat  qilish  uchun  String  turidagi 	
Text  xususiyati  qo`llaniladi.  Bu    holda 	RichTextBOX	 kompanentidagi  barcha 	
ma`lumot  bitta	 	satr  ko`rinishiga  tasvirlanadi.  <Enter>  tugmasi  bosilganda 	
qo`yiladigan  satr  oxiri  #13#10  kod  yordamida  yoziladi,  shuning  uchun 
foydalanuvchi  ko`rayotgan  simvollar  soni    Text  satridagidan  kam  bo`ladi.  Bu 
o`ziga xoslikni , masalan, berilgan simvolning 	Rich	TextBOX	 kompanenti satridagi 	
joyini aniqlashda hisobga olish zarur.	 	
  
 
 
   
 	
 	
 	
 	
                             	(2.1	-rasm	) budilnik dasturi ochilgan oyna.	 	
 
 	
 	
(2.2	-rasm	) budilnik dasturining ishlash oynasi	 	
   
 	
 	
 	
2.2	. Foydalanuvchi uchun qo’llanma	 	
Bu  dastur    Visual  St	udio  2012  dasturida  tuzildi.	 Bu  turdagi  dasturlash 	
tillarida  tuzilgan  dasturlar  ishlashi  uchun  avvalo  Microsoft  companiyasing 
Microsoft  .NET  Framework 	turli	  bibliotekasidan 	 foydalana  olish  imkoni	  	
bo`lishi  shart.  Buning  uchun	  esa  sizning	  Operatsion 	 sistemangiz	  yangilanish 	 	
yoki 	Microsoft .NET Framework 	2.0 turi 	 o`rnatilishi	  kerak.	 	
 Ushbu 	budilnik 	dasturni ikki xil usulda ishlatish mumkin:	 	
1.	 Biror vaqtni belgilash	 orqali ishlatish	 	
2.	 Biror vaqtdan keyin 	ishga tushirish	 	
Biror vaqtni belgilash orqali ishlat	ish jarayoni boshlanganda quyidagi	(2.3	-rasm	)da 	
ko’rsatilgandek oyna hosil bo’ladi	 	
 	
 	
(2.3	-ras	m	) budilnik dasturi	ning biror vaqtda ishlashashni boshqarish	 oynasi	.   
 	
 	
 
Bu dastur	ning chalingan 	holati	da esa quyidagicha oyna hosil 	 bo’ladi	 	
 	
(2.4	-rasm	) budilnik ch	alingan holati	  	
Bu dasturning ikkinchi holati ya’ni biror vaqtdan keyin ishlash holati esa 
quyidagicha 	: 	
 	
(2.5	-rasm	) budilnik dasturining biror vaqtdan keyin ishlashashni boshqarish 	
oynasi.	   
 	
 	
 
 	
 	
(2.6	-rasm	) budilnik chalingan holati	 	
 
Bundan tashqari bu dast	urimizga eslatmalarni ham yozib qo’yishimiz mumkin	 	
 	
 	
(2.7	-rasm	) budilnik dasturiga eslatma yozish oynasi	   
 	
 	
 
 	
 	
(2.8	-rasm	) budilnik chalingan holati	 	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
 	
 	
 	
XULOSA	 	
    	 	 Ushbu kurs ishini ishlab chiqish natijasida 	budilnik dasturi haqida va uning 	
ish	lash  prinsplari 	dasturiy  vositasi  ishlab  chiqildi. 	Bu  budilnik  dasturi  turli  xil 	
sohalarda  qo’llanilishi  mumkin.  Budilnik  dasturini  yaratish  uchun  ―Visual  Studio 
2012‖ das	turidan foydalanildi. Hozirgi kunga kelib budilnikning turli xillari ishlab 	
chiqarilm	oqda.  Bular:  ovozli  budilniklar,  hid  bilan  uyg’otuvchi  budilniklar  va 	
boshqa  ko’plab  turlari  mavjud.  Budilnik	dan  yosh	-u  qari  birdek  foydalanadi. 	
Budilnik  dasturi  deyarli  barcha  tizimlarda  mavjud.  Masalan  uy  soatlari,  qo’l 
soatlari,  uy  telefonlari,  mobil  te	lefonlar,  kompyuterlar  ,  televizorlar  va  boshqa 	
ko’plab  qurilmalarda  uchratish  mumkin.  Biz  bu  budilnik  dasturidan	  	uyg’otgich 	
sifatida  deyarli  har  kuni  foydalanamiz.  Budilnik  dasturi  ko’proq  yoshi  kattalarga 
qulay  hisoblanadi.  Chunki  yosh  o’tgan  sayin  inso	n  xotirasi  susayib  boradi  va 	
budilnik dasturiga talab yanada kuchayadi. Budilnik dasturi esa barcha  esingizdan 
chiqadigan  barcha  narsalarni  eslatib  turadi.	 Bu  dasturni  ishga  tushirish  juda  oddiy 	
va qulay hisoblanadi.	 	
       	 	Bu  budilnik  dasturini  ishlab  c	hiqishdan  maqsad  turli  xil  sohalarda 	
qulayliklar  yaratish uchun ishlab chiqildi.     	 	
          	Budilnik dasturi quyidagi vazifalarni bajarishi lozim:	 	
1.	 Eslatmalarni amalga oshirish	 	
2.	 Uyqudan uyg’otish	 	
3.	 Vaqtni belgilash va h	.k.z	 	
      	 	Eslatmalarni  amalga  oshi	rishda  esingizdan  chiqishi  mumkin  bo’lgan  barcha 	
ma’lumotlarni  yozib  qo’ysangiz  bo’ladi.  Ertalab  o’qish  yoki  ishga  borish  uchun 
vaqtni belgilab qo’yishingiz  mumkin.  Bunda  ham  eslatmalar  yozishingiz  mumkin. 
Masalan  ertalab  uyqudan  uyg’onganingizdan  keyin  is	h  yoki  o’qishingizga  olib 	
ketishingiz kerak bo’lgan narsalarni yozib qo’yish mumkin.	 	
       	   
 	
 	
 	
FOYDALANILGAN ADABIYOTLAR	 	
1. Karimov I.A. Yuksak ma'naviyat	-engilmas kuch.	-T.: "Ma'naviyat", 2008 y. 	 	
 
2. 	Г.Р.Громов	 Основы	 информацион технология . 	 	
3. Алимов К. Создание новых информационных компьютерных технологий и 
систем. 1993. 	 	
 
4.  О.Ефимов,  В.Морозов,  Н.Угрипович.  «Курс  компьютерной  технологии  с 
основами информатики», М., 1999 г. 	 	
5. The C++ Programming	 Languge Brain W.Kernighan Denis M.Ritchie	 	
6. Ф	.Скотт	, Баркер	. «Профиссиональное  программированиев  Access  2002». 	
М.	-С.Пб.	-Киев, 2002 	 	
7.  Климов  В.Г.  Информационные  и  к	оммуникационные  технологии 	
обучения:  проблемы,  методика  внедрения,  перспективы.  Пермь:  Изд	-во 	
«ОАО Книжное издательство», 2005 	 	
8. 	Khorton Visual C++  2010	  Полны	 курс	-2011	 	
9.  Петцолъд  Ч.  Программирование  для  Microsoft  Windows  на 
С#.Издательско	-торговый до	м «Русская Редакция», 2002.	- 576 с 	 	
10	.  Троелсен.  Э.  С#  и  платформа  .NET.  Библиотека  программиста.Питер, 	
2004. 	—	   	796 с 	 	
11. 	www.google.uz	 	
12. 	www.referat.uz	  	
   
 	
 	
 	
ILOVA	 	
//Form1	 	
#prag	ma	 once	 	
#include	 "vaqt.h"	 	
namespace	 Bud {	 	
 
 	using	 namespace	 System;	 	
 	using	 namespace	 System::ComponentModel;	 	
 	using	 namespace	 System::Collections;	 	
 	using	 namespace	 System::Windows::Forms;	 	
 	using	 namespace	 System::Data;	 	
 	using	 namespace	 System::Drawing;	 	
 	us	ing	 namespace	 System::IO;	 	
 	/// 	<summary>	 	
 	/// 	Сводка	 для	 Form1	 	
 	/// 	</summary>	 	
 	public	 ref	 class	 Form1 : 	public	 System::Windows::Forms::Form	 	
 	{ 	
 	public	: 	
 	 	Form1(	void	) 	
 	 	{ 	
 	 	 	InitializeComponent();	 	
 	 	 	//	 	
 	 	 	//TODO: 	добавьте	 код	 конструктора	 	
 	 	 	//	 	
 	 	 	
 
 
 
   
 	
 	
 
} 
 	 	
protected	: 	
 	 	/// 	<summary>	 	
 	 	/// Освободить все используемые ресурсы.	 	
 	 	/// 	</summary>	 	
 	 	~Form1()	 	
 	 	{ 	
 	 	 	if	 (components)	 	
 	 	 	{ 	
 	 	 	 	delete	 components;	 	
 	 	 	} 	
 	 	} 	
#pragma	 endregion	 	
 	 	 	
 	 	int	 n,m,num1,num2,num3,S,S2; String ^a;	 	
 	 	int	 secund,minut,soat,vaqt;	 	
 	 	void	 start(){	 	
 	 	num1=System::Convert::ToInt64(numericUpDown3	->Value);	 	
 	 	 	num2=System::Convert::ToInt64(numericUpDown2	-	
>Value);	 	
 	 	 	num3=System::Convert::ToInt64(numericUpDown1	-	
>Value);	 	
 	 	 	S=num1+(num2*60)+(num3*3600);	 	
 	 	 	S2=secund+(minut*60)+(soat*3600);	 	
 	 	 	if	(((S==S2) || (S2==vaqt)) && numericUpDown1	- 	
 
 
 
 
   
 	
 	
 
>Enabled==	false	){	 	
 	 	 	 	 	
 
Vaqt ^ f2 = 	gcnew	 Vaqt();	 	
 	 	 	 	 	
 
f2	->Show();	 	
 	 	 	 	
} 
 	 	 	secund++;	 	
 	 	 	if	(secund<=9){	 	
 	 	 	label2	-	
>Text=	"0"	+System::Convert::ToString(secund);	 	
 	 	 	}else	 	
 	 	 	{label2	->Text=System::Convert::T	oString(secund);}	 	
 	 	 	if	(secund==59){	 	
 	 	 	secund=0; 	 	
 	 	 	minut++;	 	
 	 	 	if	(minut<=9){	 	
 	 	 	label3	-	
>Text=	"0"	+System::Convert::ToString(minut);	 	
 	 	 	}else	 	
 	 	 	label3	->Text=System::Convert::ToString(minut);	 	
 	 	 	} 	
 	 	 	if	(minut==59){	 	
 	 	 	minut=0;	 	
 	 	 	soat++;	 	
 	 	 	if	(soat<=9){	 	
 	 	 	 	 	
 
   
 	
 	
 
label4	- 	
 
>Text=	"0"	+System::Convert::ToString(soat);	 	
 	 	 	 	
}else	 	
 	 	
 
label4	->Text=System::Convert::ToString(soat);	 	
 	 	 	 	
 
} 
 	 	} 	
 	 	
 
private	: System::Void Form1_Load(System::Object^  sender, 	
System::EventArgs^  e) {	 	
 	 	 	 	 a=__TIME__;	 	
 	 	 	 	 	
                   	                      	 label2	->Text=a	- 	
 
 
>Substring(6);	 	
 	 	 	 	 	
 label3	->Text=a	->Substring(3,2);	 	
 	 	 	 	 label4	->Text=a	->Substring(0,2);	 	
 	 	 	 	secund=System::Convert::ToInt64(label2	-	
>Text);	 	
 	 	 	 	 minut=System::Convert::ToInt64(label3	- 	
 
 
   
 	
 	
 
>Text);	 	
 	 	 	 	
 
 	 soat=System	::Convert::ToInt64(label4	->Text);	 	
 	 	 	 	  	timer1	->Enabled=	true	; 	
 	 	 	 	  	
 
 	 	 	 } 	
 	private	: System::Void button1_Click(System::Object^  sender, 	
System::EventArgs^  e) {	 	
 	 	 	 	 	
 
 File::WriteAllText(	"1.txt"	,richTextBox1	->Text); 	 	
 	 	 	  	numericUpDown1	->Enabled=	false	;  	 	  	 	
 	 	 	  	numericUpDown2	->Enabled=	false	; 	
 	 	 	  	numericUpDown3	->Enabled=	false	; 	
 	 	 	 	if	(radioButton2	->Checked==	true	){	 	
 	 	 	 	 	 	
 
 
num1=System::Convert::ToInt64(numericUpDown3	->Value);	 	
 	 	 	num2=System::Convert::ToInt64(numericUpDown2	- 	
 
 
>Value);	 	
 	 	 	num3=System::Conver	t::ToInt64(numericUpDown1	-	
>Value);	 	
 	 	 	 	
 	vaqt=num1+(num2*60)+(num3*3600)+secund+(minut*60)+(soat*3600);	 	
 	 	 	 	 	notifyIcon1	->Visible=	true	; 	 	
 	 	 	 	 	   
 	
 	
 
this	->Hide();	 	
 	 	 	 	 	
} 
 	 	 	 	
 
 } 	
private	: System::Void button2_Click(System::Object^  sender, 	
System::EventArgs^  e) 	{ 	
 	 	 	  	 	 	 	 numericUpDown1	- 	
 
 
>Enabled=	true	; 	 	 	  	 	
 	 	 	 	  	numericUpDown2	->Enabled=	true	; 	
 	 	 	 	  	numericUpDown3	->Enabled=	true	; 	
 
 	 	 } 	
 
 
private	: System::Void richTextBox1_TextChanged(System::Object^  	
sender, System::EventArgs^  e) {	 	
 	 	 } 	
private	: System::Void tim	er1_Tick(System::Object^  sender, 	
System::EventArgs^  e) {	 	
 	 	 	 start();	 	
 	 	 } 	
private	: System::Void 	
notifyIcon1_MouseDoubleClick(System::Object^  	 	
 
 
sender, System::Windows::Forms::MouseEventArgs^  e) {	 	
 	 	 	  	 	 	 this	->Show();	   
 	
 	
 
 	 	 } 	
};	 	
} 
 
 
//Form2	 	
#pragma	 onc	e 	
 
namespace	 Bud {	 	
 	 	} 	
 
 
#pragma	 endregion	 	
 	private	: System::	Void	 Vaqt_Load(System::	Object	^  	sender	, 	
System::	EventArgs	^  	e) {	 	
 
 	 	 	 	 richTextBox1	->Text= 	
File	::ReadAllText(	"1.txt"	);	 	
 	 	 	 } 	
 	 	
 
private	: System::	Void	 button1_Click(System::	Object	^  	sender	, 	
System	::	EventArgs	^  	e) {	 	
 	 	 	 	 this	->Close();	 	
 	 	 	 } 	
};	 	
}

O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI URGANCH FILIALI KOMPYUTER INJINIRINGI FAKULTETI DASTURIY INJINIRINGI KAFEDRASI C++ DA DASTURLASH FANIDAN Kurs ishi MAVZU: VISUAL STUDIO MUXITIDA BUDILNIK DASTURINI YARATISH. Bajardi: 911-14 guruh talabasi Babajanov Xursandbek Ilmiy rahbar: Dasturiy injiniring kafedrasi assistenti Xo’jayev Otabek

MUNDARIJA KIRISH …………………………………………………………………. ..2 I. NAZARIY QIS M ……………………………………………………… 3 1.1. Budilnik dasturi haqida umumiy ma’lumot ……………………….. 3 1.2. Visual Studio 2012 dastur lash muhiti ……………………………… 5 1.3.Masalaning qo’yilishi ………………………………………………... 10 II. ASOSIY QISM …………………… ………………………………… 11 2.1. Dastur komponentalari …………………………………………….... 11 2.2 . Foydalanuvchi uchun qo’llanma ……………………………………. 15 XULOS A ………………………………………………………………... 19 FOYDALANILGAN ADABIYOTLAR ……………………………… 20 ILOVA …………………………………………………………………... 21

KIRISH. Ilmiy texnika rivojining diqqatga sazovor xususiyatlaridan biri - hisoblash texnikasining inson faoliyatining barcha sohalariga keng miqyos ida tatbiq qilinishidir. Xalq xo’jaligining rivoji o’z navbatida yuqori unumli elektron hisob lash mashinalarini (EHM), raqamli -programmali boshqariladigan stanoklar va qurilmalar, sanoat robotlari va ishlab chiqarish modullarini ishlab chiqarishni ko’paytirish va keng miqyosda tatbiq etishni talab etadi. Avtomatlashtirishning asosiy quroli bo’lib, o’zining algoritmik va programma ta’minotiga ega bo’lgan kompyuterlar xizmat qiladi. Dvigatel va robotlarning kashf qilinishi jismoniy mehnatni avtomatlashtirish asrini ochgan bo’lsa, kompyuter va sun’iy intellekt vositalarning paydo bo’lishi inson aqliy faoliyatida xuddi shunday yangi davrni boshlab berdi. A хborot te хnologiyalari jahonda jadal sur'atlar bilan rivojlanib, takomillashib borayotgan sohadir. Bu sohaning rivoji uchun bizning buyuk ajdodlarimizning ilmiy kashfiyotlari asos bo’lib хizmat qilmoqda. Bu haqda Prezidentimiz I.A.Karimov o’zining "Yuksak ma'naviyat - yengilmas kuch" asarida quyidagi fikrlarni keltirib o’tadi: "Shu nuqtai nazardan qaraganda, zaminimizda yashab o’tgan buyuk allomalarimiz, mutafakkir bobolarimizning ibratli hayoti va faoliyati, bemisl ilmiy -ijodiy kashfiyotlari bugun ham jaho n ahlini hayratga solayotganin i g’urur bilan ta'kidlash lozim‖ . Xususiy kompyuterlarning paydo bo’lishi informatikani tatbiq etish va "kompyuter bo’yicha savodsizlik"ni tugatishni tezlatishga asosiy turtki bo’ldi. Hozirgi zamon kompyuterlariga bo’lgan qizi qish shuning uchun ham oshdiki, ular masalani yechishda mehnat unumdorligini keskin oshirdi. Bu integral sxemalar yangi kompyuterlarda qo’llanishini hisobga olsak, kompyuterlarning mukammallashib borishi juda tez yuz berishi va yaqin orada juda ham mukamma l kompyuterlar yaratilishi kutilishiga umid qilishimiz mumkin.

I. NAZARIY QISM 1.1. Budilnik dasturi haqida umumiy ma’lumot Ushbu kurs ishi Budilnik dasturini yaratishga qaratilgan bo`lib, bu dasturning vazifasi vaqtni belgilash yoki biror narsani esl atishni amalga oshirish hiso blanadi. Ushbu dasturiy vositani ishlab chiqishda o’ziga hos talablar mavjud. Bu talablar quyida sanab o’tiladi. Dasturiy vositani ishlab chiqish uchun masalaning qo’yilishi haqida yoritib beramiz. Dastur kompleksi quyidagi vaz ifalarni bajarishi talab etiladi.  Eslatmalarni amalga oshirish;  Vaqtni soat bo’yicha to’g’rilash  Vaqtni sekund, minut, soatlarda belgilash; Budilnik qadim zamonlardan beri keng foydalanib kelinayotgan dastur h isoblanadi. Budilnik dasturini bir necha xil v az ifada ishlatish mumkin : 1.Uyg’otgic h 2.Eslatma Biz asosan bundan uyg’otgich sifatida foydalanamiz. Qadim zamonlarda ham vaqtni belgilash uchun qum soatlardan foydalanishgan. Bu qum soatlari turli xil bo’lgan. Masalan, bir daqiqalik, ikki daqiqalik , bir soatlik va shunga o’xshagan turlari bo’lgan. U paytlarda hozirgidek budilniklar bo’lmaganligi tufayli shunga o’xshash soatlardan foydalanishganlar. Ilm -fan, texnika rivojlangani sayin zamonaviy soatlar ishlab chiqarila boshladi. Bu zamonaviy soatlarn ing deyarli hammasida budilnik mavjud. Chunki hozirgi ishlab chiqarilayotgan soatlarning budilniklari foydalanishga judayam qulay va oson hisoblanadi. Shuning uchun ham bunaqangi soatlarga hozirda talab tobora oshib bormoqda. Budilnik qadimgi Xitoyda quyos h va linza va sekin yonuvchan tayoqchadan foydalanib qo’llanilgan.

Qadimgi Yunonistonda quri lmaga o’xshash suv soatlardan foydalanilgan.Mexanik soatlar sanoat inqilobi davrida 1787 -yilda Ameri kalik Levi Xatchins tomonidan qurilgan mex anizm faqat soat 4:0 0 da jiringlar edi.1847 -yili esa F ransiyalik olim Antonie Radek tomonidan yaratilgan qurilma har qanday vaqtda h am j iringlar edi va u budilnik loyih asi uchun patent oldi.1908 -yil da esa bu quri lmadan Londondagi Big Ben soatida qo’llash taklifi bilan chiqdil ar. Bundan keyin esa elek tron budilniklar ixtiro qilana boshlandi bu esa mexanik soatlarni butkul sindirish arafasida edi. Elektron budilniklarning afzal jihatlari mexanik soatlargidek 12 soatdan jiringlamay 24 soat ichida x ohlagan soatda minut sekundigach a to’g’rilash mumkin edi. Bu esa insonlarda qulaylik tug’dirdi. Qiziqarli ma’lumot: Sensorwake dasturchilari uyqudan uyg’otishning noodatiy yo’lini taklif qildi. Ularning taklifiga ko’ra, endilikda ertalablari uyg’onish uchun qattiq tovush talab e tilmaydi. Yangi budilnik okeanlar, jungli o’rmonlari, kofe, shokolad, yalpiz yoki hatto dollarning o’tkir hidini taratish orqali uyg’otadi. Budilnikdagi kukunlar hidi hech qanday kimyoviy reaksiyaga olib kelmaydi. Agar hid 3 daqiqa ichida uyg’ota olmasa, b udilnik ovoz chiqara boshlaydi. Bunday budilnik kartrij orqali ishlaydi. Leonardo da Vinchi ixtiro qilgan budilnik uxlayotgan odamning oyoqlarini qitiqlab uyg’otgan ekan.