logo

C++ dasturlash tilida strukturalar. Strukturalardan foydalanish asosida dastur yaratish

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

105.26953125 KB
O’ZBEKISTON RESPUBLIKASI 
OLIY VA O’RTA-MAXSUS TA’LIM VAZIRLIGI
SHAROF RASHIDOV NOMIDAGI
SAMARQAND DAVLAT UNIVERSITETI
RAQAMLI TEXNOLOGIYALAR FAKULTETI
KOMPYUTER ILMLARI VA DASTURLASH TEXNOLOGIYALARI
YO’NALISHI
MUSTAQIL
 ISHI
1 C++ dasturlash tilida strukturalar.
Strukturalardan foydalanish asosida dastur
yaratish.
1. MASALANING QO’YILISHI.
Struktura va o`quvchining shaxsiy hujjatlaridan foydalanib Pasport formasi
tuzilsin.
2. ISHNING MAQSADI
Strukturalarni o’rganib chiqish. Qo’yilgan masala yuzasidan strukturalar
tuzish. Struktura yordamida masalani yechish va Pasport formasini tayyorlash.
3. NAZARIY QISM
Dasturlashtirish masalalarida biron bir tashkilot yoki muassasalarning ma`lu-
motlar bazasini hosil qilish va ma`lumotlar bazasi tarkibidagi ma`lumotlarni qayta
ishlashga to`g`ri keladi. Ma`lumotlar bazasini hosil qilishda bitta ob`yekt uchun bir
nechta parametrlar saqlanadi, bunday holatlar uchun bitta ob`yekt uchun bir nechta
parametrlarni birlashtirilish kerak bo`ladi. Ma`lumotlar bazasini hosil qilish uchun
dasturlash   tillaridan   qulay   bo`lgan   dasturiy   ta`minot-lar   ham   ko`p,   lekin   ba`zi
hollarda   dasturlash   tillari   ham   keng   qo`llaniladi.   Ma`lu-motlar   bazasini   yaratish
jarayoni   dasturlash   tillari   tarkibida   keng   imkoniyatlari   mavjud.   C++   dasturlash
tilida   bir   nechta   turlarni   birlashtirib   yangi   tur   hosil   qilish   jarayoni   strukturalar
yaratish   deb   ataladi.   C++   dasturlash   tilida   ma`lumotlar   ba-zasini   hosil   qilish
uchun strukturalardan foydalaniladi. Struktura tarkibida bitta turga bir nechta turlar
birlashadi.   Masalan   talaba   haqida   ma`lumotlar   bazasi   ho-sil   qilishda   talaba   deb
nomlangan struktura tarkibida talaba familyasi, ismi, rey-tingi, tug`ilgan vaqti kabi
parametrlari   saqlanish   kerak.   Demak,   har   bir   talaba   uchun   yuqoridagi   barcha
parametrlar inobatga olinishi kerak bo`ladi. Struktura tarkibida bitta o`zgaruvchini
bir  nechta   qiymatlari  bo`lishi  mumkin.  Bir   nechta  talabalar  haqida  ma`lumotlarni
qayta   ishlash   davrida   bitta   talaba   uchun   bir   nechta   parametrlar   mavjud,   bunday
holatlarni hal etish uchun strukturalardan foydalaniladi.
Struktura va ularni e`lon qilish.
C++ dasturlash tili tarkibida bir nechta turlarni birlashtirib bitta tur asosida
Ma`lumotlar  bazasini  yaratish  va ularni  qayta  ishlash  imkoniyati  keng yaratilgan.
Bir nechta turlarni birlashtirish natijasida strukturalar hosil qilib C++ dasturlash tili
tarkibida tashkilotlarga tegishli bo`lgan bir nechta masalalarni hal etish imkoniyati
mavjud.
Ta`rif: 
C++   dasturlash   tilida   bir   yoki   bir   nechta   turlarni   jamlanmasini
birlashtirishdan hosil bo`lgan jarayon     struktura     deb nomlanadi.   
Strukturalarni ba`zi hollarda  yozuvlar  ham deb ataladi, strukturalartarkibidagi
turlarning har biri maydon deb nomlanadi.
2 Ta`rif: 
Ob`yektning bitta xususiyatini uzida saqlaydigan parametr      maydon      deb   
nomlanadi.
Talaba   haqida   ma`lumotlar   strukturasi   hosil   qilinishda   quyidagi   maydonlar
bo`-lishi   mumkin:   Talabani   familyasi,   ismi,   otasining   ismi,   tug`ilgan   vaqti,
telefoni,
manzili va hakoza. Strukturalar maydonlardan tashkil topgan ekan, struktura tarki-
bidagi   har   bir   maydon   strukturani   bitta   parametrini   o`zida   saqlaydi.   Struktura
maydoni   uchun   xotira   hajmi,   mayon   uzunligiga   teng   bo`ladi.   Struktura   maydoni
qiy-matlari   ifodalarda   ishlatilishi   mumkin.   C++   dasturlash   tilida   strukturalarni
e`lon   qi-lishda   struct   xizmatchi   so`zidan   foydalaniladi.   Struktura   e`lon
qilingandan   so`ng   dastur   tarkibida   o`zgaruvchilarni   struktura   nomi   bilan   e`lon
qilinadi.
C++   dasturlash   tilida   strukturalarni   tasvirlashning   umumiy   ko`rinishi
quyidagicha ko`rinishda bo`ladi:
struct <struktura nomi>
{ <tur1> <maydon 1>;
<tur2> <maydon 2>;
 _  _    _  _  _
<tur n> <maydon n>;
};
Strukturalarni tasvirlashda   struct   xizmatchi so`zidan keyin   struktura nomi
va   figurali   qavsda   uning   maydonlari   kiritilishi   shart.   Structura   nomi   masala
mohiya-tiga   qarab   tanlansa,   maqsadga   muvofiq.   Masalan,   talabalar   haqida
ma`lumotlar   bazasida   struktura   nomini   talaba   yoki   supermarket   mahsulotlari
narxlari   bazasida   esa   narx   deb   nomlash   mumkin.   Strukturalar   tarkibidagi
maydonlarni e`lon qilish xuddi oddiy o`zgaruvchilarni e`lon qilishdek bajariladi va
oxiri blok yopilishidan so`ng, albatta, nuqtali vergul qo`yilishi shart.
Strukturalar yartish jarayonini tushunish uchun C++ dasturlash tilida talaba-
lar haqida ma`lumotlar bazasini struktura yordamida quyidagicha hosil qilinadi:
Misol:
Talabalar   (familyasi,   ismi,   telefoni,   reytingi,   tug`ilgan   yili)   haqida
ma`lumotlarga asosan C++ dasturlash tilida struktura hosil qiling.
#include <bits/stdc++.h>
using namespace std; 
struct talaba
3 { 
char [20] fam;  //familyani saqlovchi maydon  
char [20] ism;  //ismni saqlovchi maydon
char [20] tel;  //telefonni saqlovchi maydon 
int reyting;  //reyting balini saqlovchi maydon 
int tugy;  //tug`ilgan vaqtini saqlovchi maydon
}; 
int main() 
{ 
return 0; 
}
Yuqoridagi  masalada  talaba   haqida  ma`lumotlar  strukturasini  hosil  qilishda
struktura   nomiga   talaba   deb   nomlandi   va   uning   maydonlari   familyasi(fam),
ismi(ism), telefoni(tel), reytingi(reyting), tug`ilgan yili(tugy) ko`rinishlarida tasvir-
landi.   Maydonlarni   e`lon   qilishda   dastur   tarkibida   qanday   maqsadlarda
foydalanishi e`tiborga olinishi kerak. Agar dastur tarkibida maydonlar ustida hisob
ishlari olib borilmasa, uning turini char yoki string turi ko`rinishida e`lon qilinsa,
dastur bir muncha yengil ishlaydi.
Strukturalarga murojat qilish va ulardan foydalanish.
C++ dasturlash tili tarkibida yaratilgan strukturalardan foydalanish mumkin, 
faqat qayta ishlanadigan ma`lumotlar bazasi uchun olingan struktura o`zgaruvchi-
sini yaratilgan struktura nomi bilan e`lon qilish kerak. Talaba haqida 
ma`lumotlarni qayta ishlash davrida bitta talabaning bir nechta parametrlariga 
murojat qilish mumkin.  Dasturlashda struktura o`zgaruvchisini e`lon qilishda tur 
sifatida struktura nomi beriladi. Talaba haqida ma`lumotlar bazasini hosil qilishda 
talaba deb nom-langan struktura yaratiladi, talabalar ma`lumotlar bazasini esa A 
o`zgaruvchiga saqlanadi, A o`zgaruvchini turini talaba deb nomlanadi. Struktura 
o`zgaruvchisini e‘lon qilishning umumiy ko`rinishi quyidagicha bo`ladi:
<struktura nomi> <struktura o`zgaruvchisi>
Talaba ma`lumotlar bazasini qayta ishlash uchun talaba nomi bilan struk-
tura yaratib, ma`lumotlarni esa A o`zgaruvchiga saqlanish holatini e`lon qilish jara-
yonini quydagi dastur yordamida ko`rib chiqamiz:
#include <bits/stdc++.h>
using namespace std; 
4 struct talaba 
{
char [20] fam;  //familyani saqlovchi maydon 
char [20] ism;  //ismni saqlovchi maydon 
char [20] tel;  //telefonni saqlovchi maydon  
int reyting;  //reyting balini saqlovchi maydon  
int tugy;  //tug`ilgan vaqtini saqlovchi maydon
}; 
int main ()
{talaba A;  // A o`zgaruvchini talaba turi bilan e`lon qilish  
return 0; 
}
Demak ma`lumotlar bazasini yaratishda uning uchun ajratilgan o`zgaruvchi-
ni struktura nomi bilan e`lon qilish kerak.
C++ dasturlash tilida struktura maydoniga murojat qilish uchun struktura 
nomi va maydon nomi nuqta bilan birlashtirilgan holda amalga oshiriladi. Struktu-
ra ma`lumotlarini dastur tarkibiga kiritish vaqtida har bir maydon elementlarini 
kiritish ke-rak bo`ladi. C++ dasturlash tilida strukturalarga murojat qilishning 
umumiy ko`ri-nishi quyidagicha bo`ladi:
<operator funksiya> <struktura o`zgaruvchisi>.<maydon nomi>
Strukturalarga murojatni amalga oshirish uchun quyidagi masalaga e`tibor 
qarating:
Misol:
Supermarketdagi ichimlik narxi, saqlash yili haqida ma`lumot berilgan 
2015- yildan hozirgacha chiqarilgan ichimliklarni narxini chiqaring aks holda 
muddati o`t-ganligini aniqlang.
Bu masalani hal etish uchun ichimlik nomli struktura yaratiladi, strukturani 
ikkita narxi va saqlash muddati uchun maydonlari mavjud bo`ladi. Ichimlik 
haqida-gi ma`lumotni A o`zgaruvchiga saqlaymiz. A o`zgaruvchini saqlash 
muddati may-donini 2015 bilan solishtiriladi, agar kichik bo`lsa, muddati o`tgan 
aks holda narxi chiqariladi.
#include <bits/stdc++.h>
5 using namespace std; 
struct ichimlik 
{
string nomi;  //ichimlik nomini saqlovchi maydon 
int narx;  //ichimlik narxini saqlovchi maydon 
int muddat;  //ichimlik saqlash muddattini saqlovchi maydon
}; 
int main () 
{ichimlik A;
cin>>A.nomi;
cin>>A.narx; 
cin>>A.muddat;
if (A.muddat<2015) cout<<"muddat utgan"; 
else cout<<A.narx<<"sum"; 
return 0; 
}
Kiritishga ma‘lumot  Dastur natijasi
Pepsi 4500 2014 Muddat o`tgan
Fanta 5000 2016 5000 sum
C++ dasturlash tilida strukturalar yaratib ularga murojat qilish oddiy o`zga-
ruvchilar kabi bajariladi faqat struktura o`zgaruvchisi nuqta bilan maydon nomi 
yoziladi. Biror bir tashkilot yoki mussasa ma‘lumotlar bazasi yaratish uchun struk-
tura o`z-garuvchisini ko`p qiymatidan foydalanishga to`g‘ri keladi. Struktura o`z-
garuvchisini ikki va undan ortiq qiymatlariga murojat qilish uchun struktura o`zga-
ruvchisini massiv sifatida qarash mumkin.
Struktura massivi
Dasturlash tarkibida strukturalardan yakka tartibda foydalanish maqsadga 
muvofiq bo`lmaydi. Strukturalar biror bir tashkilot ma‘lumotlar bazasi berilganda 
ularning qayta ishlash uchun qulay vosita hisoblanadi. Agar strukturalar bir nechta 
6 qiymat-lar uchun ishlatilsa, struktura o`zgaruvchisini struktura massivi sifatida 
qarash kerak.
Ta‘rif:   struktura o`zgaruvchisi bir nechta qiymatlar uchun ishlatilsa, 
struktura o`zgaruvchisi  struktura massivi  deb ataladi.
Struktura massivini e‘lon qilish, xuddi oddiy massiv kabi e’lon qilinadi, fa-
qatgina massiv turiga struktura nomi ko`rsatiladi. C++ dasturlash tilida struktura 
massivlarini e‘lon qilishning umimiy ko`rinishi quyidagicha bo`ladi:
<struktura nomi> <struktura massivi>[<qiymatlar soni>]
Struktura massiviga murojaat qilish uchun massiv elementlariga murojaat 
qilishdek bajariladi faqatgina massiv elementlariga maydon nomi bilan birga mu-
rojaat qilinadi. Talabalar haqida ma`lumotlar yaratish va ularni qayta ishlash uchun
struktura massividan foydalanish kerak, chunki bitta talaba uchun bir nech-ta 
parametr ishlatiladi va ma`lumotlar bazasida n ta talaba haqida ma`lumot saq-
lanadi.
Misol:  
N ta talaba haqida ismi, familyasi, tug`ilgan yili haqida ma’lumot berilgan. 
20 yoshdan katta bo`lgan talabalarning ismi va familyasini ekranga chiqaruvchi 
dastur tuzing.
#include <bits/stdc++.h>
using namespace std; 
struct talaba 
{ 
string fam; 
string ism; 
int tyili; 
};
int main (int argc, char* argv[]) 
{talaba A[50]; int n=3; 
for(int i=0;i<n;i++)
{
7 cin >> A[i].fam; 
cin >> A[i].ism;
cin >> A[i].tyili; 
}
for(int i=0;i<n;i++)
if((2017-A[i].tyili)>20)
{cout<<A[i].fam<<" "; cout<<A[i].ism << "\n"; }
return 0; 
}
Kiritilgan ma`lumot Dastur natijasi
Alloyorov Jasur 1995 Alloyorov Jasur
Abduvaliv Umar 1998 Saydiyev Sardor
Saydiyev Sardor 1996
Misol:  
O`qituvchilarning ismi, familyasi, ilmiy darajasi haqida ma’lumot berilgan. 
Professorlar, dotsentlar, assistentlar sonini aniqlovchi dastur tuzing.
#include <bits/stdc++.h>
using namespace std; 
struct uqituvchi {
string fam; 
string ism; 
string idaraja; 
};
int main(int argc, char* argv[])
{uqituvchi A[50]; int n=3; 
for(int i=0;i<n;i++)
8 {cin>>A[i].fam; 
cin>>A[i].ism; 
cin>>A[i].idaraja; 
} 
int p=0,d=0,s=0; 
for(int i=0;i<n;i++) {
if(A[i].daraja == ”professor”) p++;
if(A[i].daraja == ”dotsent”) d++;
if(A[i].daraja == “assistent”) s++;
}
cout << “ professorlar soni ” << p << “\n”;
cout << “dotsentlar soni ” << d << “\n”;
cout << “asissentlar soni ” << s << “\n”;
return 0;
;
Kiritilgan ma`lumot Dastur natijasi
Tolipov Temur asistent professorlar soni 1
Soliyev Aktgam dotsent dotsentlar soni 1
Karimov Obid professor assistentlar soni 1
Endi amaliy masalalardan namunalar keltiramiz:
Misol.  
Avtomobillar uchun ma`lumotlar bazasini yarating. Bunda avtomobil egasi-
ning familiyasi, ismi, mashinasining rusumi va rangini aniqlash mumkin bo`lsin.
#include <bits/stdc++.h>
using namespace std; 
9 struct mashina 
{string fam; 
string ism; 
string rusum; 
string rang; 
}; 
int main(int argc, char* argv[]) 
{ mashina A[50]; int n; string s; cin>>n;  //cin>>s;  
for(int i=0;i<n;i++)
{
cin >> A[i].fam;
cin >> A[i].ism;
cin >> A[i].rusum; cin>>A[i].rang;
}
for(int i=0;i<n;i++){
cout<<A[i].fam<<"     "<<A[i].ism<<"ning    mashinasi ";
cout<<A[i].rusum<<" rusumli, rangi "<<A[i].rang<<"\
n";
}
system(“pouse”);
return 0;
}
Dasturdan foydalanishda haydovchilar sonini 3 ta qilib tanlab, ularga 
tegishli ma`lumotlarni quyidagicha tartibda kiritib, dastur ishlashini sinab 
ko`ring.
3
Karimov Olim Nexya Oq
10 Toxirov Ochilxo`ja Damas  Ko`k
Ochilov Yopildi Cobalt Qora
Dastur natijasi ekranda quyidagicha e`lon qilinadi:
Karimov Olimning mashinasi Nexya rusumli, rangi Oq Toxirov 
Ochilxo`janing mashinasi Damas rusumli, rangi ko`k Ochilov 
Yopildining mashinasi Cobalt rusumli, rangi Qora.
C++ dasturlash tilida ma‘lumotlar bazasini ma‘lum bir qismlarini yaratish va
ularni qayta ishlash imkoniyatini strukturalar yordamida amalga oshirish mumkin. 
C++ dasturash tili tarkibida strukturalar va ulardan foydalanish yuqoridagi ho-
latlar bo`yicha amalga oshiriladi.
11 4. AMALIY QISM
Masalaning C++ dasturlash tilidagi dasturi
#include <iostream>
#include <string>
using namespace std;
struct guvohnoma{
public:
 string g_familya;
 string g_ism;
 string g_sharif;
 int g_yil;
 int g_oy;
 int g_kun;
};
struct mahalla_spravka{
public:
 string tugilgan_joy;
 string tugilgan_joy1;
 string millati;
 string kim_tomonidan_berilgan;
 string kim_tomonidan_berilgan1;
};
struct Met_daftar : public guvohnoma , public mahalla_spravka {           // class 
larni boglash   :public nom
public:
 string jinsi;
 void PASSPORT() {
   cout << "\t " << "\t OZBEKISTON RESPUBLIKASI" << endl;
   cout << "\n FAMILYASI " << endl;
  cout << "\t " << g_familya << endl;
   cout << "\n ISMI: " ;   cout << "\t " << "\t " << "\t " << "\t " << "\t " << "\t " 
<< "\t JINSI " << endl;
  cout << "\t " << g_ism ;       cout << "\t " << "\t " << "\t " << "\t " << "\t " << "  
" << jinsi << endl;
   cout << "\n OTASINING ISMI" << endl;
  cout << "\t " << g_sharif << endl;
  cout << "\n TUGILGAN SANASI " ;  cout << "\t " << "\t TUGILGAN JOYI" 
<< endl;
  cout << "\t " << g_kun << "  " << g_oy << "  " << g_yil ;   cout << "\t " << "\t" 
<< "\t" << tugilgan_joy ;
  cout << "\n" << " MILLATI " << endl;
  cout << "\t " << millati << endl;
12   cout << "\n KIM TOMONIDAN BERILGAN" << endl;
  cout << "\t " << kim_tomonidan_berilgan << endl;
  cout << "\t " << kim_tomonidan_berilgan1 << endl;
   cout << endl << endl;
  cout <<  "\t " << "\t " << "\t " << "\t " << "\t " <<"\t SHAXSIY 
IMZO/HOLDER'S SIGNATURE" << endl;
   cout << "____" << endl << endl;
  cout << "\t " << "\t OZBEKISTON RESPUBLIKASI /REPUBLIC OF 
UZBEKISTAN " << endl;
  cout << "\n " << "PASPORT   PASSPORT "; cout << "   TURI / TYPE"; 
  cout << "     DAVLAT KODI / COUNTRY CODE";
  cout << "     PASPORT RAQAMI / PASSPORT No" << endl;
   cout << "\t " << "\t " << "\t    P"; cout << "\t " << "\t " << "\t  UZB";  cout << 
"\t " << "\t " << "\t " << "      AC 2760072 " << endl ;
     cout << "\t " << "\t FAMILYASI/SURNAME " << endl;
     cout << "\t " << "\t " << "\t " << g_familya << endl;
     cout << "\t " << "\t ISMI/GIVEN NAMES " << endl;
     cout << "\t " << "\t " << "\t " << g_ism << endl;
     cout << "\t " << "\t FUQAROLIGI/NATIONALITY " << endl;
     cout << "\t " << "\t " << "\t " << g_ism << endl;
      cout << "\t " << "\t TUGILGAN SANASI/DATE OF BIRTH" << endl;
      cout << "\t " << "\t " << "\t " << "  " << g_kun << "  " << g_oy << "  " << 
g_yil << endl;
      cout << "\t " << "\t JINSI/*** " ; cout << "\t    TUGILGAN JOYI/PLACE OF 
BIRTH " << endl;
      cout << "\t " << "\t "  << "    M " ; cout << "\t " << "\t "  << "\t " << 
tugilgan_joy1 << endl;
      cout << "\t " << "\t BERILGAN SANASI/DATE OF ISSUE "  ;     cout << "\t   
PERSONALLASHTIRISH ORGANI/AUTHORITY" << endl;
     cout << "\t " << "\t " << "\t " << " 02   03   2020" << "\t ";  cout << "\t STATE
PERSONALIZATION " << endl;
     cout << "\t " << "\t AMAL QILISH MUDDATI/DATE OF EXPIRY"  ;  cout 
<< "\t " << "CENTRE " << endl;
      cout << "\t " << "\t " << "\t " << " 01   03   2030" << endl;
      cout << "\n P<UZBABDINAZAROV<<KAMOLIDDIN<<<<<<<<<<<<<<< " 
<< endl; 
     cout << "\n AC2760072UZB0311269M30030135261103605002500  " << endl;
     
 }
};
int main() {
 Met_daftar dela1;
 dela1.g_familya = "ABDINAZAROV";
 dela1.g_ism = "KAMOLIDDIN";
 dela1.g_sharif = "GOIBNAZAR OGLI";
 dela1.g_yil = 2003;
 dela1.g_oy = 11;
 dela1.g_kun = 26;
 dela1.millati = "O`ZBEK";
 dela1.tugilgan_joy = "ISHTIXON TUMANI";
13  dela1.kim_tomonidan_berilgan = "SAMARQAND VILOYATI";
 dela1.kim_tomonidan_berilgan1 = "ISHTIXON TUMANI IIB";
 dela1.tugilgan_joy1 = "SAMARKAND REGION";
 dela1.jinsi = "ERKAK";
 dela1.PASSPORT();
 cout << endl;
 return 0;
}
14 Natijani tekshirish – testlash
1-test:
Oling
an 
natija
15 5. XULOSA
Dasturda 3 ta strukturadan foydalandik va har bir strukturaga 1 ta hujjat 
joylashtirdik.5-qatorga  guvohnoma  nomli skruktura yaratdik. 16-satrda 
mahalla_spravka  nomli struktura yaratdik .26-qatorda  Met_daftar  nomli 
struktura yaratdik va  struct Met_daftar : public guvohnoma , public 
mahalla_spravka   mana shu ko`rinishda 3 ta strukturani bir strukturaga 
bog`ladik. Bu yerda  public  nomli ommaviy tip kiritdik. Buning vazi-fasi 
strukturada e`lon qilingan qiymatlarni dasturning ixtiyoriy yerida qo`llay
olishdir. Dasturning  int main()  qismida structurada berilgan qiymatlar kiri-
tildi va  PASSPORT()  nomli funksiyaga joylashtirdik. Bundan tashqari das-
turda bir nechta metodlardan foydalandik. Qisqacha qilib aytganda q o’yilgan 
masalani yechish uchun strukturadan foydalanildi. Bunda bir nechta strukturalar 
tuzildi va ularga hujjatlar yozib chiqildi.  Ular bir-biriga bog`landi va Pasport huj-
jati tayyorlandi. Shunday qilib vazifa bajarildi va Pasportning tayyor shabloni ek-
ranga chiqarildi.
16

O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA-MAXSUS TA’LIM VAZIRLIGI SHAROF RASHIDOV NOMIDAGI SAMARQAND DAVLAT UNIVERSITETI RAQAMLI TEXNOLOGIYALAR FAKULTETI KOMPYUTER ILMLARI VA DASTURLASH TEXNOLOGIYALARI YO’NALISHI MUSTAQIL ISHI 1

C++ dasturlash tilida strukturalar. Strukturalardan foydalanish asosida dastur yaratish. 1. MASALANING QO’YILISHI. Struktura va o`quvchining shaxsiy hujjatlaridan foydalanib Pasport formasi tuzilsin. 2. ISHNING MAQSADI Strukturalarni o’rganib chiqish. Qo’yilgan masala yuzasidan strukturalar tuzish. Struktura yordamida masalani yechish va Pasport formasini tayyorlash. 3. NAZARIY QISM Dasturlashtirish masalalarida biron bir tashkilot yoki muassasalarning ma`lu- motlar bazasini hosil qilish va ma`lumotlar bazasi tarkibidagi ma`lumotlarni qayta ishlashga to`g`ri keladi. Ma`lumotlar bazasini hosil qilishda bitta ob`yekt uchun bir nechta parametrlar saqlanadi, bunday holatlar uchun bitta ob`yekt uchun bir nechta parametrlarni birlashtirilish kerak bo`ladi. Ma`lumotlar bazasini hosil qilish uchun dasturlash tillaridan qulay bo`lgan dasturiy ta`minot-lar ham ko`p, lekin ba`zi hollarda dasturlash tillari ham keng qo`llaniladi. Ma`lu-motlar bazasini yaratish jarayoni dasturlash tillari tarkibida keng imkoniyatlari mavjud. C++ dasturlash tilida bir nechta turlarni birlashtirib yangi tur hosil qilish jarayoni strukturalar yaratish deb ataladi. C++ dasturlash tilida ma`lumotlar ba-zasini hosil qilish uchun strukturalardan foydalaniladi. Struktura tarkibida bitta turga bir nechta turlar birlashadi. Masalan talaba haqida ma`lumotlar bazasi ho-sil qilishda talaba deb nomlangan struktura tarkibida talaba familyasi, ismi, rey-tingi, tug`ilgan vaqti kabi parametrlari saqlanish kerak. Demak, har bir talaba uchun yuqoridagi barcha parametrlar inobatga olinishi kerak bo`ladi. Struktura tarkibida bitta o`zgaruvchini bir nechta qiymatlari bo`lishi mumkin. Bir nechta talabalar haqida ma`lumotlarni qayta ishlash davrida bitta talaba uchun bir nechta parametrlar mavjud, bunday holatlarni hal etish uchun strukturalardan foydalaniladi. Struktura va ularni e`lon qilish. C++ dasturlash tili tarkibida bir nechta turlarni birlashtirib bitta tur asosida Ma`lumotlar bazasini yaratish va ularni qayta ishlash imkoniyati keng yaratilgan. Bir nechta turlarni birlashtirish natijasida strukturalar hosil qilib C++ dasturlash tili tarkibida tashkilotlarga tegishli bo`lgan bir nechta masalalarni hal etish imkoniyati mavjud. Ta`rif: C++ dasturlash tilida bir yoki bir nechta turlarni jamlanmasini birlashtirishdan hosil bo`lgan jarayon struktura deb nomlanadi. Strukturalarni ba`zi hollarda yozuvlar ham deb ataladi, strukturalartarkibidagi turlarning har biri maydon deb nomlanadi. 2

Ta`rif: Ob`yektning bitta xususiyatini uzida saqlaydigan parametr maydon deb nomlanadi. Talaba haqida ma`lumotlar strukturasi hosil qilinishda quyidagi maydonlar bo`-lishi mumkin: Talabani familyasi, ismi, otasining ismi, tug`ilgan vaqti, telefoni, manzili va hakoza. Strukturalar maydonlardan tashkil topgan ekan, struktura tarki- bidagi har bir maydon strukturani bitta parametrini o`zida saqlaydi. Struktura maydoni uchun xotira hajmi, mayon uzunligiga teng bo`ladi. Struktura maydoni qiy-matlari ifodalarda ishlatilishi mumkin. C++ dasturlash tilida strukturalarni e`lon qi-lishda struct xizmatchi so`zidan foydalaniladi. Struktura e`lon qilingandan so`ng dastur tarkibida o`zgaruvchilarni struktura nomi bilan e`lon qilinadi. C++ dasturlash tilida strukturalarni tasvirlashning umumiy ko`rinishi quyidagicha ko`rinishda bo`ladi: struct <struktura nomi> { <tur1> <maydon 1>; <tur2> <maydon 2>; _ _ _ _ _ <tur n> <maydon n>; }; Strukturalarni tasvirlashda struct xizmatchi so`zidan keyin struktura nomi va figurali qavsda uning maydonlari kiritilishi shart. Structura nomi masala mohiya-tiga qarab tanlansa, maqsadga muvofiq. Masalan, talabalar haqida ma`lumotlar bazasida struktura nomini talaba yoki supermarket mahsulotlari narxlari bazasida esa narx deb nomlash mumkin. Strukturalar tarkibidagi maydonlarni e`lon qilish xuddi oddiy o`zgaruvchilarni e`lon qilishdek bajariladi va oxiri blok yopilishidan so`ng, albatta, nuqtali vergul qo`yilishi shart. Strukturalar yartish jarayonini tushunish uchun C++ dasturlash tilida talaba- lar haqida ma`lumotlar bazasini struktura yordamida quyidagicha hosil qilinadi: Misol: Talabalar (familyasi, ismi, telefoni, reytingi, tug`ilgan yili) haqida ma`lumotlarga asosan C++ dasturlash tilida struktura hosil qiling. #include <bits/stdc++.h> using namespace std; struct talaba 3

{ char [20] fam; //familyani saqlovchi maydon char [20] ism; //ismni saqlovchi maydon char [20] tel; //telefonni saqlovchi maydon int reyting; //reyting balini saqlovchi maydon int tugy; //tug`ilgan vaqtini saqlovchi maydon }; int main() { return 0; } Yuqoridagi masalada talaba haqida ma`lumotlar strukturasini hosil qilishda struktura nomiga talaba deb nomlandi va uning maydonlari familyasi(fam), ismi(ism), telefoni(tel), reytingi(reyting), tug`ilgan yili(tugy) ko`rinishlarida tasvir- landi. Maydonlarni e`lon qilishda dastur tarkibida qanday maqsadlarda foydalanishi e`tiborga olinishi kerak. Agar dastur tarkibida maydonlar ustida hisob ishlari olib borilmasa, uning turini char yoki string turi ko`rinishida e`lon qilinsa, dastur bir muncha yengil ishlaydi. Strukturalarga murojat qilish va ulardan foydalanish. C++ dasturlash tili tarkibida yaratilgan strukturalardan foydalanish mumkin, faqat qayta ishlanadigan ma`lumotlar bazasi uchun olingan struktura o`zgaruvchi- sini yaratilgan struktura nomi bilan e`lon qilish kerak. Talaba haqida ma`lumotlarni qayta ishlash davrida bitta talabaning bir nechta parametrlariga murojat qilish mumkin. Dasturlashda struktura o`zgaruvchisini e`lon qilishda tur sifatida struktura nomi beriladi. Talaba haqida ma`lumotlar bazasini hosil qilishda talaba deb nom-langan struktura yaratiladi, talabalar ma`lumotlar bazasini esa A o`zgaruvchiga saqlanadi, A o`zgaruvchini turini talaba deb nomlanadi. Struktura o`zgaruvchisini e‘lon qilishning umumiy ko`rinishi quyidagicha bo`ladi: <struktura nomi> <struktura o`zgaruvchisi> Talaba ma`lumotlar bazasini qayta ishlash uchun talaba nomi bilan struk- tura yaratib, ma`lumotlarni esa A o`zgaruvchiga saqlanish holatini e`lon qilish jara- yonini quydagi dastur yordamida ko`rib chiqamiz: #include <bits/stdc++.h> using namespace std; 4

struct talaba { char [20] fam; //familyani saqlovchi maydon char [20] ism; //ismni saqlovchi maydon char [20] tel; //telefonni saqlovchi maydon int reyting; //reyting balini saqlovchi maydon int tugy; //tug`ilgan vaqtini saqlovchi maydon }; int main () {talaba A; // A o`zgaruvchini talaba turi bilan e`lon qilish return 0; } Demak ma`lumotlar bazasini yaratishda uning uchun ajratilgan o`zgaruvchi- ni struktura nomi bilan e`lon qilish kerak. C++ dasturlash tilida struktura maydoniga murojat qilish uchun struktura nomi va maydon nomi nuqta bilan birlashtirilgan holda amalga oshiriladi. Struktu- ra ma`lumotlarini dastur tarkibiga kiritish vaqtida har bir maydon elementlarini kiritish ke-rak bo`ladi. C++ dasturlash tilida strukturalarga murojat qilishning umumiy ko`ri-nishi quyidagicha bo`ladi: <operator funksiya> <struktura o`zgaruvchisi>.<maydon nomi> Strukturalarga murojatni amalga oshirish uchun quyidagi masalaga e`tibor qarating: Misol: Supermarketdagi ichimlik narxi, saqlash yili haqida ma`lumot berilgan 2015- yildan hozirgacha chiqarilgan ichimliklarni narxini chiqaring aks holda muddati o`t-ganligini aniqlang. Bu masalani hal etish uchun ichimlik nomli struktura yaratiladi, strukturani ikkita narxi va saqlash muddati uchun maydonlari mavjud bo`ladi. Ichimlik haqida-gi ma`lumotni A o`zgaruvchiga saqlaymiz. A o`zgaruvchini saqlash muddati may-donini 2015 bilan solishtiriladi, agar kichik bo`lsa, muddati o`tgan aks holda narxi chiqariladi. #include <bits/stdc++.h> 5