Dialog darchalar va oddiy boshqarish elementlari

MAVZU:  Dialog darchalar va oddiy boshqarish
elementlariKURS ISHI  Dialog darchalar va oddiy boshqarish
elementlari, dialog sifini yaratish, kiritmalar
yaratish
Reja:
I. Kirish.
II.Asosiy: 
1.1 C++ tili va uning tarixi
1.2. Dialog darchalar va oddiy boshqarish elaementlari.
III.Xulosa.
IV.Foydalanilgan adabiyotlar. Kirish:
Vaqt   o’tishi   bilan  dasturchilar   oldiga  quyilgan  masalalar  o’zgarib  boryapti.
Bundan   yigirma   yil   oldin   dasturlar   katta   hajmdagi   ma’lumotlarni   qayta   ishlash
uchun   tuzilar   edi.   Bunda   dasturni   yozuvchi   ham,   uning   foydalanuvchisi   ham
kompyuter sohasidagi bilimlar bo’yicha professional bo’lishi talab etilardi. Hozirda
esa   ko’pgina   o’zgarishlar   ro’y   berdi.   Kompyuter   bilan   ko’proq   uning   apparat   va
dasturiy   ta’minoti,   haqida   tushunchalarga   ega   bo’lmagan   kishilar   ishlashyapti.
Kompyuter   odamlar   tomonidan   uni,   chuqur   o’rganish   vositasi   emas,   ko’proq
o’zlarining   oldilariga   qo’yilgan,   o’zlarining   ishlariga   tegishli   bo’lgan
muammolarini echish instrumenti bo’lib qoldi.
Foydalanuvchilarning   ushbu   yangi   avlodini   dasturlar   bilan   ishlashlarini
osonlashtirilishi   bilan   bu   dasturlarning   o’zini   murakkabligi   darajasi   oshadi.
Zamonaviy dasturlar  - foydalanuvchi  bilan do’stona munosabatni  yuqori  darajada
tashkil   qiladigan   ko’p   sondagi   oynalar,   menyu,   muloqot   oynalari   va   vizual
grafikaviy muhitlardan tarkib topgan interfeysga ega bo’lishi lozim.
Dastur   so’zi   ham   komandalarning   alohida   blokini   (berilgan   kodini)
aniqlovchi   so’z,   ham   yaxlit   holdagi   bajariluvchi   dasturiy   mahsulotni   belgilovchi
so’z   sifatida   ishlatiladi.   Dasturlashga   talabni   o’zgarishi   nafaqat   tillarning
o’zgarishiga   balki   uni   yozish   texnologiyasini   ham   o’zgarishiga   olib   keldi.
Dasturlash   evolyusiyasi   tarixida   ko’pgina   bosqichlar   bo’lishiga   qaramay   biz   bu
kursimizda   protsedurali   dasturlashdan   ob’ektlarga   mo’ljallangan   dasturlashga
o’tishni qaraymiz.
Keyingi   yillarda   amaliy   dasturchilarga   juda   ko’p   integratsion   dastur   tuzish
muhitlari taklif etilayapti. 
1.1. C++ tili va uning tarixi.
Birinchi   elektron   hisoblash   mashinalari   paydo   bo’lishi   bilan   dasturlash   tillari
evolyusiyasi   boshlanadi.   Dastlabki   kompyuterlar   ikkinchi   jahon   urushi   vaqtida
artilleriya   snaryadlarining   harakat   traektoriyasini   hisob-kitob   qilish   maqsadida qurilgan   edi.Oldin   dasturchilar   eng   sodda   mashina   tilini   o’zida   ifodalovchi
kompyuter komandalari bilan ishlaganlar. Bu komandalar nol va birlardan tashkil
topgan uzun  qatorlardan  iborat  bo’lar   edi. Keyinchalik,  insonlar   uchun  tushunarli
bo’lgan   mashina   komandalarini   o’zida   saqlovchi   (masalan,   ADD   va   MOV
komandalari)   assembler   tili   yaratildi.   Shu   vaqtlarda   BASIC   va   COBOL   singari
yuqori sathli tillar ham paydo bo’ldiki, bu tillar tufayli so’z va gaplarning mantiqiy
konstruksiyasidan   foydalanib   dasturlash   imkoniyati   yaratildi.   Bu   komandalarni
mashina   tiliga   interpretatorlar   va   kompilyatorlar   ko’chirar   edi.   Interpretator
dasturni   o’qish   jarayonida   uning   komandalarini   ketma   -   ket   mashina   tiliga
o’tkazadi. Kompilyator esa yaxlit programma kodini biror bir oraliq forma - ob’ekt
fayliga   o’tkazadi.Bu   bosqich   kompilyasiya   bosqichi   deyiladi.Bundan   so’ng
kompilyator   ob’ektli   faylni   bajariluvchi   faylga   aylantiradigan   kompanovka
dasturini chaqiradi.
Interpretatorlar   bilan   ishlash   osonroq,   chunki   dastur   komandalari   qanday   ketma   -
ketlikda   yozilgan   bo’lsa   shu   tarzda   bajariladi.   Bu   esa   dastur   bajarilishini   nazorat
qilishni   osonlashtiradi.   Kompilyator   esa   kompilyasiya   va   kompanovka   kabi
qo’shimcha   bosqichlardan   iborat   bo’lganligi   uchun   ulardan   hosil   bo’ladigan
bajariluvchi faylni tahlil qilish va o’zgartirish imkoniyati mavjud emas. Faqatgina
kompilyasiya   qilingan   fayl   tezroq   bajariladi,   chunki   bundagi   komandalar
kompilyasiya jarayonida mashina tiliga o’tkazilgan bo’ladi.
C++ kabi kompilyasiya qiluvchi dasturlash tillarini yana bir afzalligi hosil bo’lgan
dastur   kompyuterda   kompilyatorsiz   ham   bajarilaveradi.   Interpretatsiya   qiluvchi tillarda   esa   tayyor   dasturni   ishlatish   uchun   albatta   mos   interpretator   dasturi   talab
qilinadi.
Ayrim   tillarda   (masalan,   VISUAL   BASIC )   interpretator   rolini   dinamik
bibliotekalar   bajaradi.   Java   tilining   interpretatori   esa   virtual   mashinadir   ( Virtual
Machine , yoki   VM ). Virtual mashinalar sifatida odatda brouzer ( Internet Explorer
yoki  Netscape ) lar qo’llaniladi.
Ko’p   yillar   davomida   dasturlarning   asosiy   imkoniyati   uning   qisqaligi   va   tez
bajarilishi   bilan   belgilanib   kelinar   edi.   Dasturni   kichikroq   qilishga   intilish
kompyuter  xotirasini  juda  qimmatligi   bilan  bog’liq  bo’lsa,   uning  tez   bajarilishiga
qiziqish   protsessor   vaqtining   qimmatbaholigiga   bog’liq   edi.   Lekin
kompyuterlarning   narxi   tushishi   bilan   dastur   imkoniyatini   baholash   mezoni
o’zgardi.   Hozirgi   kunda   dasturchining   ish   vaqti   biznesda   ishlatiladigan   ko’pgina
kompyuterlarning   narxidan   yuqori.   Hozirda   professional   tarzda   yozilgan   va   oson
ekspluatatsiya   qilinadigan   dasturlarga   talab   oshib   bormokda.   Ekspluatatsiyaning
oddiyligi, konkret masalani echish bilan bog’liq bo’lgan talabni ozroq o’zgarishiga,
dasturni ortiqcha chiqimlarsiz oson moslashtirish bilan izohlanadi.
Shu   vaqtgacha   dasturlar   berilgan   ma’lumotlar   ustida   biror   bir   amal   bajaruvchi
protseduralar   ketma-ketligidan   iborat   edi.   Protsedura   yoki   funksiya   ham   o’zida
aniqlangan   ketma-ket   bajariluvchi   komandalar   to’plamidan   iboratdir.   Bunda
berilgan   ma’lumotlarga   murojaatlar   protseduralarga   ajratilgan   holda   amalga
oshiriladi.
Strukturaviy dasturlashning asosiy g’oyasi «bo’lakla va hukmronlik qil» prinsipiga
butunlay   mos   keladi.   Kompyuter   dasturini   masalalar   to’plamidan   iborat   deb qaraymiz. Oddiy tavsiflash uchun murakkab bo’lgan ixtiyoriy masalani bir nechta
nisbatan   kichikroq   bo’lgan   tarkibiy   masalalarga   ajratamiz   va   bo’linishni   toki
masalalar tushunish uchun etarli darajada oddiy bo’lguncha davom ettiramiz.
Misol sifatida kompaniya xizmatchilarining o’rtacha ish haqini hisoblashni olamiz.
Bu masala sodda emas. Uni qator qism masalalarga bo’lamiz:
1. Har bir xizmatchining oylik maoshi qanchaligini aniqlaymiz.
2. Kompaniyaning xodimlari sonini aniqlaymiz.
3. Barcha ish, haqlarini yig’amiz.
4. Hosil bo’lgan yig’indini kompaniya xodimlari soniga bo’lamiz.
Xodimlarning   oylik   maoshlari   yig’indisini   hisoblash   jarayonini   ham   bir   necha
bosqichlarga ajratish mumkin.
1. Har bir xodim, haqidagi yozuvni o’qiymiz.
2. Ish xaqi to’g’risidagi ma’lumotni olamiz.
3. Ish haqi qiymatini yig’indiga qo’shamiz.
4. Keyingi xodim, haqidagi yozuvni o’qiymiz.
O’z   navbatida,   har   bir   xodim,   haqidagi   yozuvni   o’qish   jarayonini   ham   nisbatan
kichikroq qism operatsiyalarga ajratish mumkin:
1. Xizmatchi faylini ochamiz.
2. Kerakli yozuvga o’tamiz.
3. Ma’lumotlarni diskdan o’qiymiz.
Strukturaviy   dasturlash   murakkab   masalalarni   echishda   etarlicha   muvofaqqiyatli
uslub bo’lib qoldi.  Lekin, 1980 – yillar oxirlarida Strukturaviy dasturlashning ham
ayrim kamchiliklari ko’zga tashlandi. Birinchidan,   berilgan   ma’lumotlar   (masalan,   xodimlar,   haqidagi   yozuv)   va   ular
ustidagi amallar (izlash, tahrirlash) bajarilishini bir butun tarzda tashkil etilishidek
tabiiy   jarayon   realizatsiya   qilinmagan   edi.   Aksincha,   protseduraviy   dasturlash
berilganlar   strukturasini   bu   ma’lumotlar   ustida   amallar   bajaradigan   funksiyalarga
ajratgan edi.
Ikkinchidan,   dasturchilar   doimiy   tarzda   eski   muammolarning   yangi   echimlarini
ixtiro qilar edilar.Bu situatsiya ko’pincha velosipedni qaytam ixtiro qilish ham deb
aytiladi.   Ko’plab   dasturlarda   takrorlanuvchi   bloklarni   ko’p   martalab   qo’llash
imkoniyatiga   bo’lgan   hohish   tabiiydir.   Buni   radio   ishlab   chiqaruvchi   tomonidan
priyomnikni   yig’ishga   o’xshatish   mumkin.   Konstruktor   har   safar   diod   va
tranzistorni   ixtiro   qilmaydi.   U   oddiygina   –   oldin   tayyorlangan   radio   detallaridan
foydalanadi   xolos.   Dasturiy   ta’minotni   ishlab   chiquvchilar   uchun   esa   bunday
imkoniyat ko’p yillar mobaynida yo’q edi.
Amaliyotga   do’stona   foydalanuvchi   interfeyslari,   ramkali   oyna,   menyu   va
ekranlarni   tadbiq   etilishi   dasturlashda   yangi   uslubni   keltirib   chiqardi.   Dasturlarni
ketma-ket boshidan oxirigacha emas, balki uning alohida bloklari bajarilishi talab
qilinadigan   bo’ldi.   Biror   bir   aniqlangan   hodisa   yuz   berganda   dastur   unga   mos
shaklda   ta’sir   ko’rsatishi   lozim.   Masalan,   bir   knopka   bosilganda   faqatgina   unga
biriktirilgan amallar bajariladi. Bunday uslubda dasturlar ancha interaktiv bo’lishi
lozim. Buni ularni ishlab chiqishda hisobga olish lozim.
Ob’ektga   mo’ljallangan   dasturlashning   asosiy   maqsadi   berilganlar   va   ular   ustida
amal bajaruvchi protseduralarni yagona ob’ekt deb qarashdan iboratdir. C++   tili   ob’ektga   mo’ljallangan   dasturlash   prinsiplarini   qo’llab   quvvatlaydi.Bu
prinsiplar quyidagilardir:
 Inkapsulyasiya
 Merosxo’rlik
 Polimorfizm
1.2C++Buililder muhitida darchali dasturlash.
C++Builder   muhitida   yaratiladigan   darchali   dasturlarni   loyiha   deb   atashadi.C++
builder   muhitida  loyiha   avtomatik  tarzda   yaratiladi.Yoki   ‘’File  aplication’’   orqali
ham   yaratilishi   mumkin.   C++Builder   ishga   tushirilgandan   so`ng   F9   tugmasini
bosing   va   ekranga   birinchi   wndows   oynali   Form   hosil   bo`ladi.   Odatda   C+
+Builderda barcha dasturlar oynali (darchali) bo`ladi. Siz ixtiyoriy dasturni oynaga
C++Builder   elementlaridan   joylashtirishingiz   mumkin.   Uning   elementlarig
standart   (oddiy)   ,   Additional   (qo`shimcha),   Win32,   System   (tizim),   Data   accaes
(ma`lumotlar   bilan   bo`g`lash),   Data   controls   (ma`lumotlarni   boshqarish),   Expres
va boshqalar kiradi.
Form   bilan   biita   misol   ko`rib   chiqamiz.   Masalan,Oynaning   sarlavhasida
‘’Birinchi   oynam’’,   ekranning   o`rtasidan   ,oq   rangli   ,   balandligi   250,   uzunligi   20
o`lchamda,   yaratilganda   ‘’oyna   yaratilad’’,   yopilganda   ‘’oyna   yopiladi’’,
sichqoncha   bir   marta   bosilsa   ‘’sichqoncha   bosildi’’,   sichqonch   iiki   marta   bosilsa
‘’sichqoncha   ikki   marta   bosildi’’   degan   muloqot   oynalarini   chiqaruvchi   oyna
yarishni olamiz. C++Builder ishga tushirilgan va bir loyiha tayyorlangan bo`lsa,uni
xotiraga olib >new application ). 1.   Form   sarlavhasida   yozish   uchun   object   inspector   oynasidan   properties
bo`limiga o`tib caption “birinchi oynam” matnni yozamiz;
2. Positionga o`tib uni poSCREENCENTER ga tenglashtiramiz;
3. Color oq rangli (cl Window) tanlaymiz;
4. Hight ning qiymatiga 250, widthning qiymatiga 250 ni kiritamiz;
5.Object   inspector   oynasudan   eventc   bo`limiga   o`tib,   OnCreate   o`ng
tomoniga   ikki   marta   sichqonchani   bosib,   void_Fastcall   TForm1:   Form   create   (T
Object   *sender)   protsedurasiga   Show   missage   (oyna   yaratildi);   matnni   kiritiladi.
Show message ekranda xabarlarni chiqaradi.
6.OnClose   O`ng   tomoniga   ikki   marta   sichqonchani   bosib,   void_fastcall
TForm1::FormClose   (TObject*Sender)   protsedurasiga   show   message   (oyna
yopiladi) mtnni kiritiladi
8.OnDblClick   O`ng   tomonga   ikki   marta   sichqonchani   bosib,   void_fast   call
TForm1   ::   FromDbClick   (TObject   *Sender)   protsedurasiga   Show   message
(sichqoncha ikki marta bosildi) matnni kiritiladi.
7.Onclick   O`ng   tomoniga   ikki   mrta   sichqonchani   bosib,   void   _Fastcall
TForm   1::FormDbClick   (TObject   sender)   protsedurasiga   Show   message
(sichqoncha ikki marta bosildi); matnni kiritildi;
Shunday qilib, brilgan vazifa bajarildi. F9 tugmasi  bosib, dasturni  tekshiramiz  va
ishlatamiz.   Yuqoridagi   1,2,3   va   4   peratorlar   bilan   kiritsa   bo`ladi.   Bunig   uchun Object   inspector   oynasidan   events   bo`limiga   o`tib,OnCreate   o`ng   tomoniga   ikki
marta   sicqonchani   bosib,   void_fastcall   TForm1::   FormCreate   (TObject   *Sender)
protsedurasiga quyidagi listing kiritiladi.
Caption=’’Birinchi oynam”;
Position= poScreen Center;
Color= Cl Window;
Height= 250;
Width= 250;
Standart bo`lim elementlari
Standart bo`limidagi elementlar odatiy dasturlarda ko`p foydalanadigan elementlar
guruhidan   tashkil   topadi.   Standart   bo`limining   elementlaridan   oydalanib   dastur
tuzishga   kirishamiz.   Kvadrat   tenglamaning   ildizlarini   hisoblovchi   dastur   tuzilgan
talab qilingan bo`lsin.
Bu   masalani   yechish   uchun   yangi   loyiha   yaratamiz   (File->New-
>Application). Yangi  form yaratildi. Unga TLabel, TEdit va Tbutton elemetlarini
o`rnatamiz   (bir   vaqtda   bir   necha   elementdan   kerak   bo`lsa,uni   tanlaganda   Shift
tugmasini   bosamiz).   Elementlar   O`lchamlarini   O`zgartirish   uchun   xossalaridan
foydalanib   Top,   Left,   Width,   Height   larni   o`zgartirmiz.   Umuman   olganda
sichqoncha   yodaida   qilsa   ham   bo`ladi   (Visual).   Bu   elementlarningnomini o`zgartirish   uchun   name   xossasiga   murojat   qilish   kerrak.Matnlarni   o`zgartirish
uchun caption xossasiga yozish kerak. Hisoblash jarayonini amalga oshirish uchun
esa   button   elementni   ustiga   sichqonchani   ikki   marta   bosamiz   va   ekranga   listing
kodini   yozish   uchun   tahrirlovchi   oyna   void_fastcall   TForm1::   Button   Click
(TObject *sender) bilan hosil bo`ladi.
Navbatdagi tuzadigan dasturimiz xuddi bazaga o’xshash bo’lib unda 
o’zimizga kerakli shaxslarning ismi sharifi, telefon nomeri, uy telefoni, electron 
manzilini kiritib boorish mumkin:
2.1-rasm: Bu dasturni tuzish uchun quyidagi harkatlarni bajarishimiz kerak bo’ladi, birinchi 
bo’lib C++ Builder6 muhitini ishga tushuramiz
           2.2-rasm:
DBGrud1 komponentasini ochib olamiz bu ism, va raqamlarni kiritib olish 
uchun kerak bo’ladi. Uning o’lchamlarini ham kiritib olamiz
             2.3-rasm:
BitBtn1 komponentasi bu komponenta bazadan izlash imkonini beradi va 
unga znachok o’rnatish mumkin              2.4-rasm:
Button1 komponentasini ochamiz bu bazda nima kiritilgan bo’lsa 
hammasiniko’rish imkonini beradi,
            2.5-rasm: Hisobot” programmasini kiritamiz
#include <vcl.h>
#pragma hdrstop
#include "SheetFrm.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
 : TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  // ***  настроитьтаблицу  ***
 StringGrid1->Options
<<goEditing    // taxrir qilishga ruxsat berildi
<<goTabs;    // <Tab> - keyingi jadvalga o`tish
//   << goAlwaysShowEditor; // doimo usor ko`rsatilishi kerak
 // jadval eniga
 StringGrid1->Cells[0][0] = "";
 StringGrid1->Cells[1][0] = "  nom";
 StringGrid1->Cells[2][0] = " baho";
 StringGrid1->Cells[3][0] = " kilo";
 StringGrid1->Cells[4][0] = " summa";
 // jadval kengligida
 StringGrid1->ColWidths[0] = 30;
 StringGrid1->ColWidths[1] = 250;
 StringGrid1->ColWidths[2] = 80;
 StringGrid1->ColWidths[3] = 50;
 StringGrid1->ColWidths[4] = 80;
 // birinchi jadvalni to`ldirish
for ( int i = 1; i < 11; i++)
if (i < 10)
   StringGrid1->Cells[0][i] = " " + IntToStr(i); else
   StringGrid1->Cells[0][i] = IntToStr(i);
int w = 0;
for (int i = 0; i < StringGrid1->ColCount; i++)
  w += StringGrid1->ColWidths[i];
 // StringGrid razmeri bilan ustanovka qilinadi
 // jadval va chegaralangan satrlar
 StringGrid1->Width = w + StringGrid1->ColCount +1 ;
 StringGrid1->Height =
  StringGrid1->DefaultRowHeight * StringGrid1->RowCount +
  StringGrid1->RowCount + 1;
}
#include "Printers.hpp"
// pechat knopkasi bosiladi
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 TPrinter *Prn; //  принтер
 #define LEFT_MARGIN 2 // chapdan 2sm
 #define TOP_MARGIN 2 // tepadan 2sm
float dpiX, dpiY; //X va Y ni chop etishga ruxsat beriladi
float kx, ky;  //  коэф . Ekran kordinatasini hisobga olgan holda
 // mundarija
int p[5]; // kolonok o`rni
int x1,y1,x2,y2; 
int px, py; // nuqta ko`rsatgichi
int i, j;
 /* Ekran va printerning shakllari har xil, shuning uchun ham 
Ekran va printerdagi kerakli razmerga ega bo`lishi uchun, 
Ekrandagi kordinata nuqtalari kordinata prneda boshqariladi 
Va koeefitsiyentga oshiriladi, .
Printer ruxsat berilishiga qarab, misol uchun:
Agar printer ruxsati 300dpi 
Unda koeffitsiyentlarteng 3.125
Ekran kengligi 96 dpi */
 Prn = Printer ();   /*  ф - я  GetDeviceCaps harakteristika olishga yordam beradi.
   LOGP IXELSX - кол-во пикселей на дюйм по X */
dpiX = GetDeviceCaps(Prn->Handle,LOGPIXELSX);
dpiY = GetDeviceCaps(Prn->Handle,LOGPIXELSY);
kx = dpiX / Screen->PixelsPerInch;
ky = dpiY / Screen->PixelsPerInch;
px = LEFT_MARGIN / 2.54 * dpiX;
py = TOP_MARGIN / 2.54 * dpiY;
 // mundarijadagi jadval kordinatalariga jo`natamiz.
p[0] = px;
for (i = 1; i < 5; i++ )
p[i] = p[i-1] + StringGrid1->ColWidths[i-1]* kx + i;
 Prn->BeginDoc(); //  открытьпечать
 // mundrija burchagi
 Prn->Canvas->Font->Name = Label1->Font->Name;
 Prn->Canvas->Font->Size = Label1->Font->Size;
 Prn->Canvas->TextOut(px,py,Label1->Caption);
 // mundarijada StringGrid1 mavjud
py = py + Label1->Font->Size * 2 * ky;
x1 = px; y1 = py; // mundarija burchagidagi chapdan yuqoridagi
 Prn->Canvas->Font->Name = StringGrid1->Font->Name;
 Prn->Canvas->Font->Size = StringGrid1->Font->Size;
x2 = p[4] + StringGrid1->ColWidths[4]* kx;
y2 = py +
   StringGrid1->RowCount * StringGrid1->RowHeights[1] * ky;
for ( j = 0; j < StringGrid1->RowCount; j++)
 {
  // satrlar mundarijasi
for (i = 0; i < StringGrid1->ColCount; i++)
  {
   Prn->Canvas->TextOut(p[i],py,StringGrid1->Cells[i][j]);
   //  гор -> линия
   Prn->Canvas->MoveTo(p[0],py);
   Prn->Canvas->LineTo(x2,py);   }
py = py+ StringGrid1->RowHeights[j]* ky;
 }
 // vertikal yo`nalishdagi liniya
for ( i = 0; i < StringGrid1->ColCount; i++ )
 {
  Prn->Canvas->MoveTo(p[i],y1);
  Prn->Canvas->LineTo(p[i],y2);
 }
 // o`ng chegara
 Prn->Canvas->MoveTo(x2,y1);
 Prn->Canvas->LineTo(x2,y2);
 // pastki chegara
 Prn->Canvas->MoveTo(x1,y2);
 Prn->Canvas->LineTo(x2,y2);
py = y2 + 0.5 / 2.54 * dpiY; //bu yerda 1 – bu 1sm .
 Prn->Canvas->TextOut(p[3],py,Label2->Caption);
 Prn->EndDoc(); // chop etish to`xtatiladi
}
// tayyor knopkasi bosiladi
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float summ;
summ = 0;
for ( int i = 1; i < 11; i++)
 {
  // bajari;ayotganda summa jadvali bo`shligicha qolsa
  // StrToFloat funksiyasida xatolik ro`y bergan bo`ladi.
try
  {
summ += StrToFloat(StringGrid1->Cells[4][i]);
  }
catch (Exception &e)
  {
  }
 }
 Label2->Caption = " Всего : " + FloatToStr(summ) + "  руб .";
} Xulosa
Xulosa   o’rinida   shuni   aytib   o’tish   mumkinki,   k eyingi   yillarda   amaliy
dasturchilarga   juda   ko’p   integratsion   dastur   tuzish   muhitlari   taklif   etilayapti.   Bu
muhitlar   u   yoki   bu   imkoniyatlari   bilan   bir–biridan   farq   qiladi.   Aksariyat
dasturlashtirish muhitlarining fundamental asosi C++ tiliga borib taqaladi.
Ko’p yillar davomida dasturlarning asosiy imkoniyati uning qisqaligi va tez
bajarilishi   bilan   belgilanib   kelinar   edi.   Dasturni   kichikroq   qilishga   intilish
kompyuter  xotirasini  juda  qimmatligi   bilan  bog’liq  bo’lsa,   uning  tez   bajarilishiga
qiziqish   protsessor   vaqtining   qimmatbaholigiga   bog’liq   edi.   Lekin
kompyuterlarning   narxi   tushishi   bilan   dastur   imkoniyatini   baholash   mezoni
o’zgardi.   Hozirgi   kunda   dasturchining   ish   vaqti   biznesda   ishlatiladigan   ko’pgina
kompyuterlarning   narxidan   yuqori.   Hozirda   professional   tarzda   yozilgan   va   oson
ekspluatatsiya   qilinadigan   dasturlarga   talab   oshib   bormokda.   Ekspluatatsiyaning
oddiyligi, konkret masalani echish bilan bog’liq bo’lgan talabni ozroq o’zgarishiga,
dasturni ortiqcha chiqimlarsiz oson moslashtirish bilan izohlanadi.
Shu   vaqtgacha   dasturlar   berilgan   ma’lumotlar   ustida   biror   bir   amal
bajaruvchi protseduralar ketma-ketligidan iborat edi. Protsedura yoki funksiya ham
o’zida aniqlangan ketma-ket bajariluvchi komandalar to’plamidan iboratdir. Bunda
berilgan   ma’lumotlarga   murojaatlar   protseduralarga   ajratilgan   holda   amalga
oshiriladi. 
Strukturaviy   dasturlashning   asosiy   g’oyasi   «bo’lakla   va   hukmronlik   qil»
prinsipiga butunlay mos keladi. Kompyuter dasturini masalalar to’plamidan iborat
deb   qaraymiz.   Oddiy   tavsiflash   uchun   murakkab   bo’lgan   ixtiyoriy   masalani   bir
nechta   nisbatan   kichikroq   bo’lgan   tarkibiy   masalalarga   ajratamiz   va   bo’linishni
toki masalalar tushunish uchun etarli darajada oddiy bo’lguncha davom ettiramiz.
C++   tili   zamonaviy   dasturlash   texnologiyalarining   takomillashgan
mevasidir.  Foydalanilgan adabiyotlar
1. Axrorov P., «Elementar matematika va sonlar nazariyasi».
2. Jess Liberti, “Osvoy samostoyatelno C++ za 21 den”, Sankt Peterburg 2000, 
815 s.
3. Liberti D. Osvoy samostoyatelno C++: 10 minut na urok. Per s angl. Vilyams, 
374 str,2004 g.
4. Shmidskiy YA.K. Prorammirovanie na yaz ы ke C++: Samouchitel. Uchebnoe 
posobie. Dialektika. 361 str, 2004 g.
5. Kimmel P., «Borland C++5».  SPb.: BHV, 1997.
6. Sayfiev J. F., «C++ tiliga kirish», Buxoro 2004 y.
7. Nazirov Sh. A., Qobulov R. V., «Ob’ektga mo’ljallangan dasturlash», Toshkent 
2006 y.
8. Boltaev Sh. J., Elov B.B., «Zamonaviy dasturlash tillari», Buxoro 2004 y.
9. Elov B. E., Boltaev Sh. J., «Dasturlash texnologiyalari», Toshkent, 2002 y.