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

Docx

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

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

Цена 10000UZS
Размер 5.4MB
Покупки 0
Дата загрузки 29 Февраль 2024
Расширение docx
Раздел Курсовые работы
Предмет Информатика и ИТ

Продавец

Shahboz Rajabboyev

Дата регистрации 28 Февраль 2024

14 Продаж

C++ algoritmik tilining asosiy tushunchalari

Купить
O`ZBEKISTON RESPUBLIKASI ALOQA VA
AXBOROTLASHTIRISH AGENTLIGI
Samarqand davlat universiteti
Mexanika-matematika fakulteti
Axborotlashtirish kafedrasi
Dasturlash asoslari fanidan
Mavzu:   C++ algoritmik tilining asosiy tushunchalari
Bajardi:      202-gurux
               Karimov  Sh. 
Tekshirdi:    Bek murodov  Z.
SAMARQAND KURS  ISHIKURS  ISHI  Mavzu:   C++ algoritmik tilining asosiy
tushunchalari
        
Reja:
I. Kirish
II. Nazariy qisim
III. Amaliy qisim
A) Tuzilayotgan dastur haqida ma’lumot
B) Tuzilayotgan dastur ketma-ketligi
IV. Ilova
V. Xulosa
VI. Foydalanilgan adabiyotlar
       
2    I.Kirish
  D а stl а b   d а sturl а sh   а nch а yin   b о shq о tirm а   i х tir о   bo`lib,   u   d а sturchil а rg а
d а sturl а rni   k о mmut а tsiya   bl о ki   о rq а li   k о mpyut е rning   а s о siy   хо tir а sig а   to`g`rid а n-
to`g`ri   kiritish   imk о nii   b е rdi.   D а sturl а r   m а shin а   till а rid а   ikkilik   t а s а vvurd а   yozil а r
edi. D а sturl а rni m а shin а  tilid а  yozishd а  t е z-t е z  ха t о l а rg а  yo’l qo’yil а r edi, eng ustig а
ul а rni   tuzilm а l а shtirish   imk о ni   bo`lm а g а ni   tuf а yli,   k о dni   kuz а tib   b о rish   а m а ld а
d е yarli   mumkin   bo`lm а g а n   h о l   edi.   Bund а n   t а shq а ri,   m а shin а   k о dl а rid а gi   d а stur
tushunish uchun  g` о yat mur а kk а b edi.
V а qt   o’tishi   bil а n   k о mpyut е rl а r   t о b о r а   k е ngr о q   qo’ll а n а   b о shl а di   h а md а
yuq о rir о q   d а r а j а d а gi   pr о ts е dur а   till а ri   p а yd о   bo`ldi.   Bul а rning   d а stl а bkisi
FORTRAN tili edi. Bir о q   о b’ е ktg а   mo’lj а ll а ng а n yond о shuv riv о jig а   а s о siy t а ’sirni
k е yinr о q   p а yd о   bo`lg а n,   m а s а l а n,   ALGOL   k а bi   pr о ts е dur а   till а ri   ko’rs а tdi.
Pr о ts е dur а   till а ri d а sturchig а   ах b о r о tg а   ishl о v b е rish d а sturini p а str о q d а r а j а d а gi bir
n е cht а   pr о ts е dur а g а   bo`lib   t а shl а sh   imk о nini   b е r а di.   P а str о q   d а r а j а d а gi   bund а y
pr о ts е dur а l а r d а sturning umumiy tuzilm а sini b е lgil а b b е r а di. Ushbu pr о ts е dur а l а rg а
izchil   mur о j аа tl а r   pr о ts е dur а l а rd а n   t а shkil   t о pg а n   d а sturl а rning   b а j а rilishini
b о shq а r а di.
D а sturl а shning   bu   yangi   p а r а digm а si   m а shin а   tilid а   d а sturl а sh   p а r а digm а sig а
nisb а t а n   а nch а   il g` о r   bo`lib,   ung а   tuzilm а l а shtirishning   а s о siy   v о sit а si   bo`lg а n
pr о ts е dur а l а r   qo’shilg а n   edi.   M а yd а r о q   funktsiyal а rni   n а f а q а t   tushunish,   b а lki
s о zl а sh   h а m   о s о nr о q   k е ch а di.   Bir о q,   b о shq а   t о m о nd а n,   pr о ts е dur а li   d а sturl а sh
k о dd а n  t а kr о r а n  f о yd а l а nish   imk о nini   ch е kl а b  qo’yyadi.  Buning   ustig а   d а sturchil а r
t е z-t е z «m а k а r о n» d а sturl а r h а m yozib turishg а nki, bu d а sturl а rni b а j а rish lik о pd а gi
sp а g е tti uyumini  а jr а tishg а  o`xsh а b k е t а r edi. 
3 II. Nazariy qisim
C++ algoritmik tilining alifbosi quyidagilardan iborat :
 katta va kichik lotin harflari; 
 0 dan 9 gacha raqamlari; 
 maxsus belgilar (+,-,*,/,=,>,<,{,},[,],’)  ni o’z ichiga oladi. 
C++ tilida  so’z  deb bir nechta belgilar ketma – ketligi tushuniladi. Xizmatchi so’z
deb C++ tilidagi standart nom tushuniladi. Bu nom maxsus ma’noni anglatadi va uni
ma’lumotlarga berib bo’lmaydi. Masalan:  int, float, for, while  va hokazo.
C++   tilida   ma’lumotlarning   elementlari   bo’lib   o’zgaruvchilar,   o’zgarmaslar,   izohlar
xizmat qiladi.
O’zgaruvchi   - x otiraning nomlangan qismi bolib, o’zida ma’lum bir toifadagi
qiymatlarni   saqlaydi.   O’zgaruvchining   nomi   va   qiymati   bo’ladi.   O’zgaruvchining
nomi   orqali   qiymat   saqlanayotgan   xotira   qismiga   murojaat   qilinadi.   Dastur   ishlashi
jarayonida   o’zgaruvchining   qiymatini   o’zgartirish   mumkin.   Har   qanday
o’zgaruvchini ishlatishdan oldin, uni e’lon qilish lozim. 
Quyida   butun   sonlardan   foydalanish   uchun   b,   haqiqiy   sonlardan   foydalanish
uchun h o’zgaruvchisi e’lon qilingan:
int b;
float h; 
O’zgarmaslar   ( const )   hisoblash   jarayonida   qiymatini   o’zgartirmaydigan
kattaliklarga aytiladi.  float const  pi =  3.14;
Izohlar - dasturning ma’lum qismini tavsiflash uchun ishlatiladi va bu qatorda
hech qanday amal bajarilmaydi, ya’ni dasturning biror qismini yaxshiroq tushuntirish
uchun xizmat qiladi. Izoh "/*" va "*/" simvollari orasida beriladi. 
/* Bu yerga izoh yoziladi. */
Bundan tashqari bir satrli izohlardan ham foydalanish mumkin. Buning uchun
izoh boshiga "//" belgisi qo’yiladi. 
4 Operator -   t ilning   yakunlangan   jumlasi   hisoblanadi   va   ma’lumolar   taxlilining
tugallangan   bosqichini   ifodalaydi.   Operatorlar   nuqtali   vergul   “;”   bilan   ajratiladi.
Ya’ni   “;”   operatorning   tugallanganligini   bildiradi.   C++   da   operatorlar   progammada
keltirilgan ketma - ketlikda bajariladi. 
Identifikator   - dasturchi   tomonidan   dastur   elementlari   (funksiya,
o’zgaruvchilar, o’zgarmaslar …) uchun ixtiyoriy tanlangan nom.
Identifikator tanlaganda quyidagilarga ahamiyat berish kerak:
 Identifikator lotin harflaridan boshlanishi shart; 
 Ikkinchi simvoldan boshlab raqamlardan foydalanish mumkin; 
 C++ da katta kichik harflar farq qiladi. Ya’ni quyidagilarning har biri alohida
identifikator hisoblanadi: KATTA, katta, KaTTa, kAttA, Katta, KattA, ... 
 Probel   C++   da   so’zlarni   ajratish   uchun   ishlatiladi.   Shuning   uchun
identifikatorda probeldan foydalanib bo’lmaydi; 
 Xizmatchi   ( int,   float,   for,   while   kabi)   so’zlardan   identifikator   sifatida
foydalanib bo’lmaydi; 
 
Dasturning tuzilishi
C++   da   dastur   funksiya   yoki   funksiyalardan   tashkil   topadi.   Agar   dastur   bir
nechta funksiyadan iborat bo’lsa, bir funksiyaning nomi   main   bo’lishi shart. Dastur
aynan main funksiyasining birinchi operatoridan boshlab bajariladi.
Funksiyaning aniqlashishi quyidagicha bo’ladi:
qaytariluvchi_qiymat_toifasi   funksiya_nomi  (  [parametrlar]  ) 
{
 funksiya tanasini tashkil qiluvchi operatorlar 
}
Qoida   bo’yicha   funksiya   qandaydir   bir   qiymatni   hisoblash   uchun   ishlatiladi.
Shuning uchun funksiya nomi oldidan, funksiya qaytaradigan qiymat toifasi yoziladi.
Agar   funksiya   hech   qanday   qiymat   qaytarmaydigan   bo’lsa,   void   toifasi   yoziladi.
5 Agar   funksiya   qaytaradigan   qiymat   toifasi   yozilmagan   bo’lsa,   int   (butun)   toifali
qiymat qaytariladi deb qabul qilinadi.
C++da oddiy matnni ekranga chiqaruvchi dasturni ko’rib chiqamiz
  # include  <iostream.h>  // ekranga ma’lumot chiqarish uchun  
 int  main()
 {
  cout  << "Salom dunyo!\n";
  return  0;
 } 
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
Har bir satrni tahlil qilamiz:
1   -   satrda,   klaviaturadan   ma’lumotlarni   kiritish   va   ekranga   chiqarish   uchun
<iostream>   sarlavha fayli  dasturga qo’shilyapti. Bu  satr  klaviatura  orqali  ma’lumot
kirituvchi   va   ekranga   nimadir   chiqaruvchi   har   qanday   dasturda   bo’lishi   shart.   Aks
xolda   xato   sodir   bo’ladi.   Eski   versiyadagi   kompilyatorlar   uchun   <iostream.h>
yozishiladi. 
"// ekranga ma’lumot chiqarish uchun"  yozuvi bir satrli izoh hisoblanadi. 
2 - satrda butun toifadagi qiymat qaytaruvchi  main  funksiyasi berilgan.  int  xizmatchi
so’zi butun toifadagi ma’lumotlarni e’lon qilishi uchun ishlatiladi. 
3- satrdagi ochuvchi figirali { funksiya tanasining boshlanganini bildiradi.
6- satrdagi yopuvchi figirali } funksiya tanasining tugaganini bildiradi.
4- satrda  cout  << orqali ma’lumotlar ekranga chiqariladi. Qo’shtirnoq ( "_" ) orasida
yozilgan   ma’lumotlar   satr   deyiladi.   Qo’shtirnoq   orasida   nima   yozilsa,   hech   qanday
o’zgarishsiz   ekranga   chiqariladi.   Satr   oxiridagi   nuqtali   vergul   (   ;   )   cout   operatori
tugallanganligini   bildiradi.   ;   operatorlarni   bir   -   biridan   ajratish   uchun   xizmat   qiladi.
Ya’ni operator tugallanganligini bildiradi. 
6 5-   satrdagi   return   xizmatchi   so’zi   orqali   funksiya   0   qiymat   qaytaradi   va   dastur
muvoffaqiyatli yakunlanadi. 
O’zgaruvchilarni e’lon qilish  
Dasturda   ishlatilgan   barcha   o’zgaruvchilarni   qaysi   toifaga   tegishli   ekanligini
e’lon qilish kerak. Ma’lulotlarni e’lon qilishning umumiy ko’rinishi quyidagicha:
 toifa_nomi  o’zgaruvchi;
Agar   bir   nechta   o’zgaruvchi   bir   toifaga   mansub   bo’lsa,   ularni   vergul   bilan
ajratib berish mumkin.
Butun   sonlarni   ifodalash   uchun   int   va   haqiqiy   sonlarni   ifodalash   uchun   float
xizmatchi   so’zlaridan   foydalaniladi.   Bu   ma’ruzada   shu   2   tasini   bilish   bizga   kifoya
qiladi. Keyingi mavzuda butun va haqiqiy sonlar haqida batafsil gaplashamiz. 
int  x,y;  // butun toifadagi o’zgaruvchilarni e’lon qilish  
float  a,b,c;  // haqiaiy toifadagi o’zgaruvchilar e’lon qilish
Kiritish va chiqarish operatorlari
Dasturda   klaviatura   orqali   ma’lumot   kiritish   va   ekranga   chiqarish   uchun
preprotsessor   direktivasini,   ya’ni   #include   <iostream>   ni   dasturga   qo’shish   shart.  
Ma’lumotlarni   kiritish   cin   >> ,   ma’lumotlarni   chiqarish   cout   <<   operatori   orqali
amalga oshiriladi. 
cin >> a;
Bu operator bajarilganda ekranda kursor paydo bo’ladi. Kerakli ma’lumot klaviatura
orqali kiritilgandan so’ng  Enter  tugmasi bosiladi. 
cout   orqali   ekranga   ixtiyoriy   ma’lumotni   chiqarish   mumkin.   Satrli   ma’lumotlarni
ekranga chiqarish uchun, ularni qo’shtirnoq orasida yozish kerak.
Arifmetik amallar :
 + qo’shish 
 - ayirish 
 * ko’paytirish 
 / bo’lish 
Butun va haqiqiy sonlar
7 Biz   butun   va   haqiqiy   sonlarni   e ’ lon   qilishni   bilamiz .  Bulardan tashqari C++ da
butun   va   haqiqiy   sonlarni   e’lon   qilish   uchun   bir   nechta   toifalar   mavjud.   Ular   bir-
biridan   kompyuter   xotirasida   qancha   hajm   egallashi   va   qabul   qiluvchi   qiymatlar
oralig’i bilan farq qiladi.
 Butun sonlar 
Toifa ko’rinishi Qabul qiladigan qiymatlar
oralig’i Kompyuter xotirasida
egallagan hajmi
unsigned short int 0..65535 2 bayt
short int –32768..32767 2 bayt
unsigned lo`ng int 0..42949667295 4 bayt
lo`ng int –2147483648..2147483647 4 bayt
int  (16 razryadli) –32768..32767 2 bayt
int  (32 razryadli) –2147483648..2147483647 4 bayt
unsigned int  (16 azryadli) 0..65535 2 bayt
unsigned int  (32 azryadli) 0..42949667295 4 bayt
 
  Haqiqiy sonlar 
Toifa ko’rinishi Qabul qiladigan
qiymatlar oralig’i Kompyuter xotirasida 
egallagan hajmi
Float 1.2 ye –38..3.4 ye 38 4 bayt
Double 2.2 ye –308..1.8 ye 308 8 bayt
lo`ng double  (32 razryadli) 3.4e-4932..-3.4e4932 10 bayt
  Boshqa toifalar
Toifa 
ko’rinishi Qabul qiladigan qiymatlar
oralig’i Kompyuter xotirasida 
egallagan hajmi
bool true  yoki  false   1 bayt
char 0..255 1 bayt
void 2 yoki 4   
8   Har   xil   toifadagi   o ’ zgaruvchilar   kompyuter   xotirasida   turli   xajmdagi   baytlarni
egallaydi .  C ++  da   ixtiyoriy   toifadagi   o ’ zgaruvchilarning   o ’ lchamini   sizeof   funksiyasi
orqali   aniqlash   mumkin .   Bu   funksiyani   o ’ zgarmasga ,   biror   toifaga   va   o ’ zgaruvchiga
qo ’ llash   mumkin .  
Ba ’ zi   matematik   funksiyalar : 
Matemetik   funksiyalardan   dasturda   foydalanish   uchun   math.h   sarlavha   faylini
progarmmaga qo’shish kerak.
#include <math.h> 
Funksiyaning  C++  da 
ifodalanishi Funksiyaning matematik ifodalanishi
1. abs(x) - butun sonlar 
uchun 
2. fabs(x) - haqiqiy 
sonlar uchun
3. labs(x) - uzun butun 
son uchun  /x/
pow( x, y) x y
pow10( x) 10 x
sqrt(X) x soning arifmetik ildizi
ceil(x) haqiqiy toifadagi x o’zgaruvchisi qiymatini unga eng 
yaqin katta butun so`nga aylantiradi. 
floor(x) haqiqiy toifadagi x o’zgaruvchisi qiymatini unga eng 
yaqin kichik butun so`nga aylantiradi
cos(x)  x burchak kosinusini aniqlash. x radian o’lchovida. 
sin(x)  x burchak sinusini aniqlash. x radian o’lchovida. 
exp(x)  e x
log(x)  x sonining natural logarifmini qaytaradi.
log10(x)  x sonining 10 asosli logarifmini qaytaradi.
Eslatma : Barcha trigonometrik funksiyalar radian o’lchovida beriladi. 
           C++ tilida ifodalar
9 C++   tilida   o’zgaruvchi   qiymatini   birga   oshirish   va   kamaytirishning   samarali
usullari mavjud. Ular inkrement (++) va dekrement (--) unar amallaridir. 
Inkrement va dekrement amallarining prefiks va postfiks ko’rinishlari mavjud.
x = y++; // postfiks
x = --y; // prefiks
sanagich++; // unar amal, "++sanagich;" bilan ekvivalent
a--; // unar amal, "--a;" bilan ekvivalent
    Quyida keltirilgan amallar bir xil vazifani bajaradi:
i++; i = i + 1;
i--; i = i - 1;
a += b; a = a + b;
a -= b; a = a - b;
a *= b - c; a = a * (b - c);
++i; i++;
--c; c--;
   
C++ da ifodalar quyidagi tartibda hisoblanadi:
1. Qavs ichidagi ifodalar hisoblanadi
2. Funksiyalar qiymati hisoblanadi. (sin(x), cos(x), sqrt(x) va xakazo)
3. Inkor amali ( not )
4. Bo’lish, ko’paytirish kabi amallar (/,*, %, ...)
5. Qo’shish kabi amallar (+, -, or, xor )
6. Munosabat amallari (=, <>, <, >, <=, >= )
1- Misol: √|x−1|	
1+x2
2+	y2
4     ifodani C++ tilida ifodalang.
sqrt(abs(x-1))/(1+sqr(x)/2+sqr(y)/4)
10 Ma’lumotlarning mantiqiy toifalari
Mantiqiy toifa  bool  ikki hil qiymat qabul qilishi mumkin: true (rost, 1) va false
(yolg’on,   0).   Mantiqiy   ma’lumotlarni   e’lon   qilish   uchun   bool   xizmatchi   so’zidan
foydalaniladi. 
bool a,b  ; 
Mantiqiy toifadagi o’zgaruvchilarga qiymat berish quyidagicha amalga oshiriladi: 
a =  true ; // rost 
b =  0 ; // yolg’on, false 
Mantiqiy amallar:  
!   (inkor   qilish)   -   mantiqiy   operatori   mantiqiy   ifodalar   yoki   o’zgaruvchilar
oldidan   qo’yiladi.   Mantiqiy   ifoda   yoki   o’zgaruvchining   qiymatini   teskarisiga
o’zgartiradi.
&&  (Mantiqiy ko’paytirish) - mantiqiy operatori ikkita mantiqiy o’zgaruvchini
birlashtiradi.   Agar   ikkala   o’zgaruvchi   ham   rost   qiymatga   ega   bo’lsa   natija   rost,   aks
holda yolg’on natija beradi.
||   (mantiqiy   qo’shish)   -   mantiqiy   operatori   ikkita   mantiqiy   o’zgaruvchini
birlashtiradi.   Agar   o’zgaruvchilardan   kamida   bittasi   rost   qiymatga   ega   bo’lsa   natija
rost, aks holda yolg’on natija beradi. 
Misollar
1- Misol.   Ikkita A, B haqiqiy sonlar berilgan. Ularning yigindisini, ayirmasini va
ko’paytmasini toping.
#include <iostream>
using namespace std;
int main()
{
 double a, b, s,r,p;
 cin >> a;
 cin >> b;
 s = a + b;
 r = a - b;
11  p = a * b;
 cout << a<<"+"<<b<<" = " << s << endl;
 cout <<a<<"-"<<b<<" = " << r << endl;
 cout <<a<<"*"<<b<<" = " << p << endl;
 return 0;
}
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
2-Misol.   Kub   kirrasining   uzunligi   berilgan.   Kubning   hajmini   va   yon   sirtining
yuzini toping.
#include <iostream>
using namespace std;
int main()
{
 int x,S,V;
 cin >> x;
 S = x * x * 6;
 V = x * x * x;
 cout << "S = " << S << endl;
 cout << "V = " << V << endl;
 return 0;
}
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
12 3-Misol.   Berilgan   ikkita   son   uchun   o’rta   arifmetik   va   o’rta   geometrik   qiymatni
toping:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
 double x, y;
 double r1,r2;
 cout <<"x="; cin >> x;
 cout <<"y="; cin >> y;
  r1 = ( x + y ) / 2;
  r2 = sqrt( x * y );
 cout << "O`rta arifmetik ="<< r1 << endl;
 cout << "O`rta geomtrik ="<<r2 << endl;
 return 0;
}
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
4- Misol.  a   haqiqiy soni berilgan. Bu sonning arifmetik ildizini hisoblang.  
#include <iostream>
#include <math.h>
13 using namespace  std ;
int  main()
{ 
  float  a;
  cout  << "a=";  cin  >> a;
 a =  sqrt (a);
  cout  << a <<  endl ;
  return  0;
}
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
5- Misol.  Toifalarni kompyuter xotirasida egallagam xajmini aniqlash 
#include <iostream>
using namespace std;
int main()
{
 cout << "char = " << sizeof(char) << endl;
 cout << "bool = " << sizeof(bool) << endl;
 cout << "int = " << sizeof(int) << endl;
 cout << "float = " << sizeof(float) << endl;
 cout << "double= " << sizeof(double)<< endl;
 return 0;
} 
14 Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
6- Misol:  n va m natural sonlari berilgan. n sonini m soniga bo’lib, qoldiqni 
aniqlovchi dastur tuzilsin
#include <iostream>
int main()
{
 int n, m, qoldiq;
 cout << "n="; cin >> n;
 cout << "m="; cin >> m;
  // % qoldiqni olishni bildiradi
 qoldiq = n % m;
 cout << "Qoldiq=" << qoldiq << endl;
 return 0;
}
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
7 - Misol:  n va m natural sonlari berilgan. n sonini m soniga bo’lib, butun 
qismini aniqlovchi dastur tuzilsin
#include <iostream> 
15 int  main()
{
  int  n, m, b;
 cout << "n="; cin >> n;
 cout << "m="; cin >> m;
 b = n / m;
 cout << "Butun qismi=" << b << endl;
  return  0;
}
Dastur ishga tushganda ekranda quyidagicha natija chiqariladi:
III. Amaliy qisim
A) III.1  Biz quyida tuzadigan dastur bu og’irlikni funt birligida kiritib hisoblash 
tugmasini bossangiz o’girlikni kilogram birligida chiqarib beruvchi dastur bu 
dasturni tuzishdan maqsad foydalanivchilar ishini yengillashtirishdan iborat 
har bir tuzgan dasturimiz siz foydalanuvchlar uchun kerakli dastur bo’lishidan 
mamnunmiz!!!
16 III.2  Ikkinchi tuziladigan dasturimiz bu juda qiziqarli dastur bo’lib bu o’yin 15
dasturidir ya’ni bu o’yin 15 ta sonni tartib raqami bilan joylashtirishdan iborat 
bu o’yin dastur aqilni charxlaydi .
Dastur ko’rinishi
B)  Biz dastur tuzishni boshladik C++Builder6 muhitiga kirib Form1 oynasida 
quydagi konsitiruksiyalarni kiritamiz 
17 Bunda Button1 ni hosil qilish uchun OK tugmasi bosiladi ya’ni quyidagicha
Va   Form 1  oynasining   qayeriga   joylashtirilmoqchi   bo ’ lsa   sichqoncha   kursori   o ’ sha
joyga   bosiladi   va   natijada   quydagi   hosil   bo ’ ladi
18 Button1 ustiga sichqoncha kursori bir marta bosilib object inspector oynasidagi 
caption xususiyatidan Button1 ni o’chirib Hisoblash deb o’zgartiramiz bu quydagicha
Endi Label tugmalarini qanday chiqarishni qaraymiz.Buning uchun  A  tugmasi 
bosiladi tasvirda sichqoncha kursori turgan joy ya’ni quydagicha 
19 Va Forim1 oynasidagi joylashtirmoqchi bo’lgan joyga sichqoncha kursori bir marta 
bosiladi hosil bo’lgan oyna quydagicha
Endi object Inspektor oynasidagi caption xususiyatiga dastur qanday dasturligini 
yozamiz ya’ni quydagicha
20 Va Label2 ni ham xuddi shunday hosil qilamiz va ichini bo’sh qoldiramiz chunki u 
yerga natijani chiqaramiz quydagicha
21 Endi Edit1 ni hosil qilishni ko’rib chiqamiz buning uchun ab tugmasini bir marta 
bosamiz va Forim1 oynasining qayeriga joylashtirmoqchi bo’lsak o’sha yerga 
sichqoncha kursori bir marta bosiladi quydagicha
Va object Inspector oynasidagi Text xususiyatidan Edit1 yozuvni o’chirib tashlaymiz 
bosh joy qoladi chunki u yerga qiymat kiritamiz quydagicha
22 Forim1 oynasiga kiritganlarimizni o’lchamlarini objecy Inspektor oynasidagi Font-
>size bo’limidan o’lchamlarini o’zqartirib qulay shakilga keltiramiz quydagicha
Endi dastur kodini yozish uchun Hisoblashning ustiga ikki marta bosib quydagi 
oynani hosil qilamiz
23 Va dastur kodini kiritamiz
24 25 26 Va F9 tugmasini bossak dastur ishga tushadi quydagicha
Va natija olish uchun qiymat kiritamiz
27 Va Hisoblash tugmasini bosamiz 
Shu bilan bizning dasturimiz tayyor bo’ldi.
2-dastur:
Biz o’yin 15 dasturini tuzishni boshladik buning uchun C++Builder6 muhitiga kirib 
Form1 oynasining nomini o’yin 15 dasturi deb o’zgartiramiz buning uchun object 
Inspector oynasidan caption xususiyatidan Form1 ni o’chirib o’yin 15 dasturi deb 
yozamiz quydagicha
28 Hosil bo’lgan oyna quydagicha
29 Va o’yin 15 oynasi tagidagi oynaga quydagi oynaga
Dastur kodini kiritamiz 
30 31 32 33 34 Dasturni ishga tushurish uchu F9 tugmasini bosamiz hosil bo’lgan oyna quydagicha
Biz tuzgan dasturimizning natijasi quygagicha
          
Shu bilan dasturimiz tugadi.
VII. Ilova.
1-Dastur kodi:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "FuntToKg_u.h"
35 //---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
 /* Edit1 hosil qilib uning ichini bo'sh qoldiramiz*/
 Button1->Enabled = False;
}
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
 // Key - ishlatiladigan tugmalar
 // kiritilgan simvollarni tekshiring
 if ((Key >= '0') && (Key <= '9')) //цифра
  return;
 if (Key == DecimalSeparator)
 {
  if ((Edit1->Text).Pos(DecimalSeparator) != 0)
   Key = 0;
  return;
 }
 if (Key == VK_BACK) // tugma <Backspace>
  return;
36  if (Key == VK_RETURN) // tugma <Enter>
 {
  Button1->SetFocus();
  return;
 }
 // tugmaning qolgani tugatilsin
 Key = 0; // belgi aks ettirilmasin
}
// maydonni Edit1 ga saqlamoq
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
 if ( (Edit1->Text).Length() == 0)
  Button1->Enabled = False; // hisoblash tugmasiga kirish
 else Button1->Enabled = True; // hisoblash tugmasiga kirmaslik
 Label2->Caption = "";
}
// hisoblash tugmasini bosish
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 double funt; // Funtdagi og'irlik
 double kg; // Kilogramdagi og'irlik
 // hisoblash tugmasini bosish,
 // Edit1 ga kiritsangiz kiritsangiz
 // natijani hisoblab beradi.
37  funt = StrToFloat(Edit1->Text);
 kg = funt * 0.4995;
 Label2->Caption = FloatToStrF(funt,ffGeneral,5,2) +
      " Funt. - bu- " +
      FloatToStrF(kg,ffGeneral,5,2) + " kilogram";
} 
2-Dastur kodi:
/*
 O'yin "15"
*/
#include <vcl.h>
#pragma hdrstop
#include "g15frm.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#include "math.hpp" // Kirish joyi tasodifiy
// Katakchalar O'lchami 48х48
#define WC 48
#define HC 48
byte pole[4][4]; // O'yin maydoni
38 byte ex,ey;  // Yurish uchun bo'sh joy
__fastcall TForm1::TForm1(TComponent* Owner)
 : TForm(Owner)
{
 Form1->Font->Size = 12;
}
// programma ishining boshlanishi
void __fastcall TForm1::FormShow(TObject *Sender)
{
 NewGame();
}
// Yangi o'yin
void __fastcall TForm1::NewGame()
{
 // shakl o'lchamini o'rnatish
 ClientWidth = WC * 4;
 ClientHeight = HC * 4;
 // Asosiy qilib berilgan (to'g'ri) tanlangan Fishka
 int k = 1;
 for (int i = 0; i < 4; i++)
  for (int j = 0; j < 4; j++)
   pole[i][j] = k++;
 Mixer();  // Aralashgan fishka
 ShowPole(); // O'yin shakli namunasi
}
39 // Aralashgan fishka
void __fastcall TForm1::Mixer()
{
 int x1,y1; // bo'sh katakcha
 int x2,y2; // bo'shini bunga o'tkazmoq
 int d;  // bo'sh joyga berilgan yo'llanma
 Randomize();
 x1 = 3; y1 = 3; // см. yozilgan massiv stp
 for ( int i = 0; i < 150; i++) // кол-во yangilanmoq
 {
  do {
   x2 = x1;
   y2 = y1;
   /* bo'sh joy o'rniga fishkani o'tkazmoq */
   d = RandomRange(1,5);
   switch ( d ) {
    case 1: x2--; break;
    case 2: x2++; break;
    case 3: y2--; break;
    case 4: y2++; break;
   }
  } while ((x2 < 0) || (x2 >= 4) || (y2 < 0) || (y2 >= 4));
  /* katakcha bo'sh joy o'rniga o'tkaziladi va
     fishka bilan joy almashadi */
  pole[y1][x1] = pole[y2][x2];
  pole[y2][x2] = 16;
40   x1 = x2;
  y1 = y2;
 };
 // katakcha bo'sh joyi saqlab qolinadi
 ex = x1;
 ey = y1;
}
void __fastcall TForm1::ShowPole()
{
 int x,y; // katakcha yuqorida chapda burchakda
 for (int i = 0; i < 4; i++)
  for (int j = 0; j < 4; j++)
  {
   x = j * HC;
   y = i * WC;
   if (pole[i][j] != 16 ) {
    Canvas->Brush->Color = clBtnFace;
    Canvas->Rectangle(x,y, x+WC-1, y+HC-1);
    Canvas->TextOutA(x+15,y+10, IntToStr(pole[i][j]));
   }
   else {
    Canvas->Brush->Color = clBtnHighlight;
    Canvas->Rectangle(x,y, x+WC-1, y+HC-1);
   }
  }
}
bool Finish(); // to'g'ri tekshirilgan katakcha o'lchami
41 // katakchani chertish
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton 
Button,
  TShiftState Shift, int X, int Y)
{
 int cx,cy; // katakcha joyi
 cx = X / WC;
 cy = Y / HC;
 // bo'sh katakchalarni tanlab yonidagiga yuborish
 if ( ( abs(cx - ex) == 1 && cy-ey == 0 ) ||
   ( abs(cy - ey) == 1 && cx-ex == 0 ) )
 {
  // fishkani yuborish (cx,cy) в (ex,ey)
  pole[ey][ex] = pole[cy][cx];
  pole[cy][cx] = 16;
  ex = cx;
  ey = cy;
  ShowPole();
  if ( Finish () )
  {
   ShowPole();
   int r = MessageDlg ("urunmoq yana bir bor?",
        mtInformation, TMsgDlgButtons() << mbYes << mbNo, 0);
   if ( r == mrNo )
    Form1->Close(); // programma ishini tugatish
   else
   {
42     NewGame();
    ShowPole();
   }
  }
 }
}
/* tozalangan katakcha surati tekshiriladi */
bool Finish()
{
 bool result;
 int row, col;
 int k = 1;
 result = true; // tozalangan joyga fishka o'tkaziladi
 for (row = 0; row < 4; row++)
 {
  for (col = 0; col < 4; col++)
   if ( pole[row][col] == k )
    k++;
   else {
    result = false;
    break;
   }
  if ( ! result ) break;
 }
  return (result);
};
// Paintdan taxrirlash uchun o'tkaziladi
43 void __fastcall TForm1::FormPaint(TObject *Sender)
{
 ShowPole();
}
44 Xulosa
Dasturchining   maqsadi   yaratgan   dasturi   orqali   foydalanuvchilarga   qulaylik
yaratishdir.   Men   ushbu   kurs   ishini   bajarish   davomida   kadrlarni   ro’yxatga   olish   va
kadrlar ustida ish olib borishni o’rganib oldim. C++ Builder dasturlash tilida ko’plab
kompanentalar bilan tanishdim.Men dars davomida olgan bilimlarimga asoslanib C+
+   dasturlash   imkoniyatlaridan   foydalanibimage   komponentasidan   foydalanishni
o’rgandim.   Bu   kurs   ishini   bajarish   mobaynida   dastur   tuzish   haqida   malumot   va
tasavvurlarga ega bo’ldim. Endi yana xam C++ Builder dasturlash tilida bilimlarimni
mustahkamlab   korxona,   fabrika,   talim   sohalariga   o’z   dasturimni   yaratmoqchiman.
Men   dastur   tuzish   davomida   C++   Builderda   keng   imkoniyatlar   yaratilganligini
tushundim.   C++   Builder   dasturlash   tili   boshqa   dasturlash   tillariga   nisbatan   qulay
ekanini tushundim.     
 
45 Foydalanilgan   adabiyotlar
A. B. Axmedov N. I. Tayqalov
Informatika. «O’zbekiston»Toshkent 2001 A. Sattorov
Informatika va axbarot texnologiyalari. «O’qituvchi» Toshkent 2003
A. A. Abduqaxxorov 
A. /. Xayitov
 R. R. SHodiev 
Axborot texnologiyalari. «O’qituvchi» Toshkent 2003
YU. SHafrin
Osnova kompyuternoy texnologii. Uchebn. posobie-M:1997
D. B. Polyakov I. YU. Polyakov
Programmirovanie v srede Turbo-Paskal.  M. Izd MAI 1992 
T. X. Xolmatov N. I. Taylaqov
Informatika va xisoblash texnologiyasi. Samarqand 1994
A. B. Axmedov
N. I. Taylaqov  Informatika. 2 nashr «O’zbekiston» Toshkent 2002
46

C++ algoritmik tilining asosiy tushunchalari 

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

  • Axborot resurs markazi uchun avtomatlashtirilgan tizim kurs ishi
  • Talabalar bilimini baholovchi dastur yaratish
  • Access dasturi yordamida “dorixona” ma‘lumotlar bazasini yaratish
  • Agile va Scrum metodologiyalari dasturiy ta'minot ishlab chiqish
  • Tashkilot miqyosida masofadan muloqot qilish.

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

Да Нет

© Copyright 2019-2025. Created by Foreach.Soft

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