logo

C++ dasturlash tilida ma’lumotlarning murakkab toifalari (struktura) bilan ishlash

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

28.94921875 KB
MAVZU:   C++   dasturlash   tilida   ma’lumotlarning
murakkab toifalari (struktura) bilan ishlash
C++ tilida ishlatiladigan ma'lumotlar 2 toifaga, oddiy va murakkab toifadagi 
ma'lumotlarga bo’linadi. Oddiy toifadagi ma'lumotlarning boshqa toifadagi 
ma'lumotlardan asosiy farqlanuvchi bеlgisi - ularning tartiblanganligi va 
yaxlitligidadir, ya'ni masalan INT toifasiga mansub ixtiyoriy kattalik alohida 
raqamlarga bo’linmaydigan yaxlit kattalikdir (INT toifasidagi kattalik sifatida 
bitta butun son tushuniladi). Murakkab toifadagi ma’lumotlar bir 
nechta   kattaliklar ketma-ketligidan , to’plamidan iborat. Shuning uchun bu 
toifalarni tarkiblashgan toifalar deb yuritiladi.
C++ tilida murakkab toifalardan massiv toifasi deyarli har bir dasturda 
ishlatiladi. Massiv - bu umumiy nomga ega bo’lgan bir xil toifadagi 
ma’lumotlarning tartiblangan ketma-ketligidir. Odatda ma’lumotlar 
ro’yhatlarini, turli ko’rinishdagi jadval elementlarini massivlar ko’rinishida 
ifodalash qulaydir. Masalan, quyida tartiblangan haqiqiy sonlar massivi 
keltirilgan:
(1.5, 14.7, -5.0, 8.5, 0.45),
bu massivning bazaviy toifasi esa haqiqiy (float) toifadir.
Massiv tushunchasini A – umumiy nomga ega va bir toifadagi qo’zg’almas 
kattaliklar kеtma-kеtligidan iborat bo’lgan sonli vеktor misolida tushuntirish 
mumkin:
A(5) = (a
1 , a
2 , a
3 , a
4 , a
5 ),
bu еrda a1, a2…- massiv elеmеntlaridir. Ularni ifodalashda ko’rsatkichli 
(indеksli) o’zgaruvchilardan foydalaniladi.
Matеmatika kursidan ma'lumki, ko’rsatkich (indеks) o’zgaruvchilarning 
tartiblangan kеtma-kеtlikdagi o’rnini bildiradi.
Borland C++ Builder 6 tilida o’zgaruvchining ko’rsatkichi to’rtburchak   qavslar 
ichiga olinib yoziladi , ya'ni A[1]=1.5, A[2]=14.7, A[3]=-5.0, A[4]=8.5, 
A[5]=0.45.
Ma`lumotlarning barcha toifalari oddiy bo`lsin, murakkab 
bo`lsin faqat bir toifadagi ma`lumotlarni saqlash uchun 
ishlatiladi. Masalan Integer toifasi faqat butun sonlarni saqlash 
uchun ishlatiladi. Massivlar va to`plamlarda esa elementlari  qaysi toifada e`lon qilingan bo`lsa, faqat shu toifadagi 
ma`lumotlarni saqlaydi. Amaliyotda esa axborotlarni saqlash, 
qayta ishlash uchun ma`lumotlarning har hil toifalarini 
aralashtirib ishlashga to`g`ri keladi. Ma`lumotlarning aralash 
toifasi bilan
ishlash uchun C++ da struct (struktura) dan foydalanish 
mumkin.
Struktura deb, har hil toifadagi ma`lumotlarning cheklangan 
to`plamiga aytiladi.
Strukturalar – maydon deb ataluvchi chekli sondagi hadlardan 
tashkil topadi.
Struktura nimaligini tushinish uchun quyidagi misolni ko`rib 
chiqamiz.
№ Familiya Ism Baholar
1 Abdullaev Dilshod 5 5 4 5
2 Abdurahimov Ne`mat 3 3 4 5
3 Rejepova Dilbar 5 5 5 5
4 Karimova Hafiza 4 4 5 5
Bu jadvalning har bir satri har hil toifadagi alohida 
elementlardan tuzilgan:
1. Tartib raqami – butun sonlardan
2. Familiya Ism – belgili satrlardan
3. Baholar – butun sonlar massividan tashkil topgan.
Bu ma`lumotlarni bir guruhga, strukturaga birlashtirish 
mumkin.
Quyidagicha belgilashlar kiritamiz: Imtixon – strukturaning 
nomi; N – tartib raqami;
FI – Familiya ism; B – baholar;
Strukturalarni e`lon qilish:
Strukturalarni e`lon qilish uchun struct xizmatchi so'zidan 
foydalaniladi.
struct struktura_nomi
{
toifa_1 nom1;
toifa_2 nom2;
. . .
toifa_n nomn;
}; Struktura elementiga murojaat
Struktura orqali yangi ma'lumotlar toifasi hosil qilinadi. 
Prоgrammada
strukturalardan fоydalanish shu toifadagi o’zgaruvchilar e’lоn 
qilinish orqali bo'ladi.
Yuqoridagi misol uchun strukturani e`lon qilish quyidagicha 
bo`ladi:
struct imtixon
{
int n; // tartib raqami
char FI[30]; // Familiya ismi
int b[4]; // Baholar
};
Struktura elementlari (maydonlari) programmada oddiy 
o`zgaruvchilar kabi
ishlatiladi. Struktura maydoni elementlari ustida, uning 
toifasida nima amal bajarish
mumkin bo`lsa shu amallarni bajarish mumkin. Strukturaning 
mayddoniga murojaat
qilish uchun, o'zgaruvchidan keyin nuqta (.) qo'yiladi.
imtixon t; // talaba
t.n = 1;
t.b[0] = 5;
t.b[1] = 5;
t.b[2] = 4;
t.b[3] = 5;
strcpy(t.FI, "Abdullaev Dilshod");
Butun va haqiqiy toifadagi o'zgaruvchilarga qiymat berish oddiy
amalga oshiriladi.
Satrlarga qiymat berish esa, strcpy - funksiyasi orqali amalga 
oshiriladi.
Keling oddiy ishchi nomli struktura (sinf) hosil qilamiz va undan
programmada
foydalanishni o'rganamiz.
Ishchi strukturasi quyidagi maydonlarni o'z ichiga oladi:
? Familiy
? Ism
? Lavozim
? Oklad
? Yosh Strukturaga ma'lumotlarni kiritish va chiqarishda amallarni 
qayta yuklashdan
foydalanamiz. Amallarni qayta yuklashni, C++ da ob'ektga 
yo'naltirilgan dasturlash
qismida batafsil to'xtalamiz. Xozircha asosiy e'tiborni 
strukturaga qaratamiz.
Ishchi strukturasin hosil qilish va dasturda foydalanish
#include <iostream.h>
// ishchi sinfini e'lon qilish
struct ishchi
{
char familiya[30];
char ism[30];
char lavozim[30];
float oklad;
int yosh;
};
// kiritish amalini qayta yuklash
istream& operator >> (istream& input, ishchi& k)
{
cout << "Familiyani kiriting\n";
input >> k.familiya;
cout << "Ismni kiriting\n";
input >> k.ism;
cout << "Lavozimini kiriting\n";
input >> k.lavozim;
cout << "Okladni kiriting ($)\n";
input >> k.oklad;
cout << "Yoshini kiriting\n";
input >> k.yosh;
return input;
}
// chiqarish amalini qayta yuklash
ostream& operator << (ostream& out, ishchi k)
{
out << "\nFamiliya:\t" << k.familiya;
out << "\nism:\t\t" << k.ism;
out << "\nlavozim:\t" << k.lavozim;
out << "\noklad:\t\t" << k.oklad << "$";
out << "\nyosh:\t\t" << k.yosh << endl; return out;
}
int main()
{
// ishchi sinfidagi ob'ektni e'lon qilish
ishchi p;
cin >> p;
cout << p;
system (“pause”);
return 0;
}
n ta ishchi haqidagi ma'lumotlarni o'zida saqlovchi fayl hosil 
qiling. 21 yoshdan kichik bo'lgan ishchilarni chiqaruvchi 
programma tuzilsin.
#include <iostream.h>
// ishchi sinfini e'lon qilish
struct ishchi
{
char familiya[30];
char ism[30];
char lavozim[30];
float oklad;
int yosh;
};
// kiritish amalini qayta yuklash
istream& operator >> (istream& input, ishchi& k)
{
cout << "Familiyani kiriting\n";
input >> k.familiya;
cout << "Ismni kiriting\n";
input >> k.ism;
cout << "Lavozimini kiriting\n";
input >> k.lavozim;
cout << "Okladni kiriting ($)\n";
input >> k.oklad;
cout << "Yoshini kiriting\n";
input >> k.yosh;
return input;
}
// chiqarish amalini qayta yuklash
ostream& operator << (ostream& out, ishchi k) {
out << k.familiya;
out << " " << k.ism;
out << "\t" << k.lavozim;
out << "\t" << k.oklad << "$";
out << "\t" << k.yosh << endl;
return out;
}
int main()
{
// ishchi sinfidagi ob'ektni e'lon qilish
ishchi p;
FILE * f;
int n = 0;
f = fopen("ishchi.txt", "a+");
cout << "Faqat ro'yxatni ko'rish uchun 0 kiriting\n";
cout << "Yangi kiritiladigan ishchilar sonini kiriting\n"; 
cin >> n;
if (n >= 1)
for (int i = 1; i <= n; i++)
{
cout << i << " - ishchi ma'lumotlarini kiriting\n";
cin >> p;
// faylga ma'lumotlarni yozish
fwrite(&p, sizeof(ishchi), 1, f);
}
// fayl boshiga o'tish
rewind(f);
cout << "Ishchilar ro'yxati\n";
n = 0;
while (fread(&p, sizeof(ishchi), 1, f))
{
n++;
cout << n << " ";
cout << p;
}
// fayl boshiga o'tish
rewind(f);
cout << "21 - yoshdan kichik dasturchilar ro'yxati\n";
n = 0;
while (fread(&p, sizeof(ishchi), 1, f)) {
if (p.yosh <= 21)
{
n++;
cout << n << " ";
cout << p;
}
}
fclose(f);
system (“pause”);
return 0;
}
Agar   yozuv   dasturlar   boshlash   oldin,   Biz   dasturlash   tili   C   dasturlari
tuzilishini o'rganish kerak . O'z aytganda, dastur tuzilishi ish maydoni reja
hisoblanadi   (olgan   kodi)   dasturlari   va   sintaksisi   asosiy   birliklari   aniq
maqsadida. dasturning tuzilishi dasturiy muhitida qarab, bir oz farq qiladi.
Мы   ориентируемся   на   Edi   Microsoft   Visual   Studio,   va   bu   MVS   uchun
maxsus   dasturlar   misollar   ko'rsatiladi.   Agar   boshqa   edi   dan
foydalanayotgan   bo'lsangiz,   keyin   boshqa   rivojlanish   muhitlar   uchun
MVS   kodni   o'tkazish   qiyin   bo'lmaydi,   va   siz   axir   yig'ib   olaman,   buni
qanday qilib.
Структура программ для Microsoft Visual Studio.
1
2
3
4
5
6 // struct_program.cpp: определяет точку входа для 
консольного приложения.
#include "stdafx.h"
//здесь подключаем все необходимые препроцессорные 
директивы
int   main() {   // начало главной функции с именем main
//здесь будет находится ваш программный код
}
Chiziq 1 Bu konsol qo'llash uchun kirish nuqtasi yuritiladi, u anglatadi, bu
dastur   Windows   dasturning   nomini   bildirib   buyruq   satırından   ishlatish
mumkin   ekanligini,   masalan,   bunday   struct_program.cpp .   Chiziq   1
Bu   bir-line   fikr   emas,   Bu   belgilar   bilan   boshlanadi,   chunki   // ,   Izoh
keyingi   maqolada   muhokama   qilinadi   haqida   qo'shimcha   ma'lumot bering.   Chiziq   2   header   file   "stdafx.h" .   Ushbu   fayl   konteyner
o'xshaydi,   u   asosiy   önişlemci   ko'rsatmalarni   bog'liq,   chunki   (ular,   bu
derleyici   bog'liq,   Agar   Console   Application   yaratish   qachon),   darhol
ulangan va yordamchi bo'lishi (Ulangan programmer).
include   –  Ko'rsatma  preprotsessora,  t.  U.   Post  önişlemci.  Lines,   bilan
boshlangan   #   To'plamda dasturi oldin Pre.
Preprocessor   direktivalari   ham   qatorda   ulanishi   mumkin,   Yozishni
boshlash so'ng   #include "stdafx.h"   asosiy vazifasi boshlanishidan
oldin. Va asosiy kutubxona ulash, bu yo'l, va foydalanish   "stdafx.h"   –
qo'shimcha   header   fayllar   ulash   uchun   qobiliyati,   qaysi   faqat   MVS
bo'lgan. 6-tor e'lon vazifaga 4 From   main . Chiziq 4 - A vazifasi header,
qaysi bir xabar turi iborat (Ushbu holatda   int ), bu funktsiya, va funktsiya
nomi, va Qavslar, unda faoliyat parametrlarni e'lon qilingan.
int   – integer ma'lumotlar turi
Asosiy   kodni   joylashgan   jingalak   Qavslar   orasida,   Bu   funktsiya   tanasi
chaqirdi. Bu dasturning eng oddiy tuzilishi. Данная структура написана
в   Microsoft   Visual   Studio.   Yuqoridagi   barcha   boshqa   derleyiciler   uchun
haq,   liniyasi   tashqari   2.   Konteyner   "stdafx.h"   hech   bir   joyda,   yana
MVS bor.
C Builder dasturi tarkibi.
Agar   Console   Application   Project   ustasi   yaratgandan   so'ng,   avtomatik
ravishda quyidagi kodni hosil qiladi:
1
2
3
4
5
6 //препроцессорная директива, автоматически подключённая мастером 
создания    проектов
#include <vcl.h>
int   main()
{
return   0;
}
Biz qarang,  bu funktsiyasi  ma'lumotlar  turi –   int .  Bu  funktsiya tuzishda
ba'zi   tamsayı   qaytadi   dalolat,   Bizning   holda   0.   Integer,   chunki,
nima   int   - Butun sonlarning uchun A ma'lumotlar turi, kabi 4, 5, 6, 456,
233 va t. d. asosiy narsa eslash, agar funksiyasi qaytish turi   main   – bu   int   yoki har
qanday   boshqa,   Bundan   tashqari   void ,   Agar   bu   kabi   bir   chiziq   yozish
kerak:   return <возвращаемое значение>;
Chiziq   2   Ulangan   Kutubxona   vcl.h   -   Bu   avtomatik   ravishda   ustasi
dasturni   bog'lab,   Shuning   uchun   u   uzoqdagi   kerak   emas,   aks   holda
loyiha ishlamaydi.
Umuman olganda, Master avtomatik ravishda dastur tuzilishini yaratadi,
bir oz farq, Biz ko'rib, lekin mohiyati bir xil bo'lib qoladi.
Masalan:
1
2
3
4 int   main(int   argc,   char* 
argv[])
{
return   0;
}
Bu   strukturaning   bir   misol   ustasi   hosil   bo'lgan   MVS2010.   The   main   bir
oz   farq.   Yana   keyinchalik   muhokama   qilinadi,   lekin   men   derlar,
ekan   main   Bu   shakl   bor,   dastlab   Unicode   qo'llab-quvvatlash   uchun
mo'ljallangan buyon.
Unicode   –   Standard   belgilar   kodlash,   deyarli   barcha   yozma   tillarda
oyatlarini   taqdim   etish   imkonini   beruvchi.   Unicode   Talk   haqida   ko'proq
ma'lumot olish uchun, keyinchalik.
Turli   versiyalari   mavjud   main ,   lekin   hech   qanday   zarari   bor,
chunki   main   Bu   asosiy   vazifasi   bo'ldi,   U   va   uning   qoldiqlari   So,   Bas,
avvalo tegishli bo'lib qolmoqda.
MVS kutubxonalar bilan bog'liq dasturi tarkibida bir misol.
1
2
3
4
5
6 #include "stdafx.h"
#include <iostream>
using   namespace   std;
int   main()
{
} Katta harflar bilan yozilgan nomi link kutubxonalar, Ozroq. Header fayllar
va ism-link kutubxona - ma'nodosh.
Syntax header fayllar ulanish:
#include <имя заголовочного файла>
Qadimgi   sarlavhalarini   shunday   bog'langan   (kutubxonalar   ulanish   bu
uslub C dasturlash tili meros):
#include <имя заголовочного файла.h>
farq, deb, deb kengaytirish nomi so'ng bayrok   .h .
dasturlash   tili   C   nozik   shundaydir.   Masalan:
Return   0;   -   o'ng   emas,   a   kompilyatsiya   xato   bo'ladi.
return 0;   -   o'ng!!!
Ushbu   maqola   MVS   va   Borland   kabi   muhitda   bir   C   ++   dasturining
tuzilishi tasvirlangan. Va siz farq bo'lishi mumkin, deb, Ushbu tuzilmalar
deyarli   bir   xil   bo'ladi.   Shuning   uchun,   bu  maqola  har   qanday   edi  uchun
tegishli. Agar edi hali hech ikkilanmay bo'lsangiz, Bering   Ushbu maqola .
Odatda massivlar zarurat, katta hajmdagi tartiblangan, lekin chekli elementlarga
oid masalalarni hal etishda yuzaga keladi. Dastur ishlatilishi davomida 
massivlar aniq nomga ega bo’lishi va uning elementlari ma‘lum bir turda 
bo’lishi kerak. Bir o’lchovli massivlar kompyuter xotirasiga quyidagi shaklda 
saqlanadi.
  Bir o’lchovli massivlarni C++ dasturlash tilida bir nechta usullarda e‘lon qilish 
mumkin. Bir o’lchovli massivlarni boshlang‘ich qiymatlari berilmasdan C++ 
dasturlash tilida quyidagicha e‘lon qilinadi. 
<tur> <massiv o’zgaruvchisi>[<element soni>]; 
Massivni C++ dasturlash tilida e‘lon qilish uchun, albatta, elementlar soni yoki 
massiv elementlarining boshlang‘ich qiymatlari berilishi kerak. Masalan, float a
[20];. Bunda float – massiv turi, a – massiv nomi. Massiv nomi faqat bitta 
harfdan iborat bo‗lmasdan ixtiyoriy identifikator ham bo’lishi mumkin, [20]– 
massiv o’lchami, ya‘ni massiv elementlari soni. Ushbu massivi quyidagicha 
o’qiladi. «Elementlari haqiqiy sonlardan iborat bo’lgan anomli massiv e‘lon 
qiliingan bo’lib, elementlari soni 20 ta    va ular 0 dan 19 gacha nomerlangan». 
Massivni bu tarzda e‘lon qilishdan maqsad EHM xotirasida uning elementlari 
uchun joy ajratishdir. Massivni e‘lon qilmasdan uning elementlaridan dastur 
tarkibida foydalanib bo’lmaydi. 
C++ dasturlash tilida massiv elementlari noldan boshlab nomerlanadi. 
Masalan, massiv o’lsami n bo’lsa uning elementlari 0 dan n-1 gacha 
nomerlanadi.  Massiv elementlari nomerli kvadrat qavsga olib ko’rsatiladi. Demak, yuqorida 
e‘lon qilingan massivning birinchi element a[0], oxirgi elementi esa a[19] 
bo’ladi. 
Massiv elementlari nomerli albatta butun son bo’lishi shart. Shuningdek, massiv
indeks qiymati butun son bo’ladigan algebrik ifoda bo’lishi ham mumkin. 
Yoki massiv indeksi butun turli o’zgaruvchi ham bo’lishi mumkin. Shuning 
uchun agar massiv indeksini sikl parametri kabi aniqlash yo’li bilan massivning 
barcha elementlari ustida amallar bajarish mumkin. 
Float va double kabi haqiqiy turga mansub o’zgaruvchilarning qiymatlari har 
qanday kichik kesmada cheksiz ko’p bo’lganligi tufayli bunday 
o’zgaruvchilardan indeks sifatida foydalanib bo’lmaydi, ya‘ni bunday 
o’zgaruvchilar yordamida massiv elementlarini tartiblab sanab bo’lmaydi. 
Massiv uzunligi, ya‘ni elementlari sonini aniqlash uchun sizeof(massiv nomi) 
funksiyasidan foydalaniladi. 
C++ dasturlash tilida bir o’lchovli massivni e‘lon qilish. 
#include <iostream.h>
int main()
{
int a[10];
//butun turli 10ta elementli massiv
Double b[10];
//haqiqiy turli 10ta elementli massiv
return 0;
}
Massivni umumiy ko’rinishida birinchi o’zgaruvchi turi, massiv o’zgaruvchisi 
va massiv elementlari soni yoziladi. Massiv elementlari soni, albatta, butun 
sondan iborat bo’lishi kerak, chunki elementlar soni, albatta, butun bo‘lishi 
kerak. 
Massiv elementlari soni biror bir ifoda yoki yagona o’zgaruvchi bo’lishi 
mumkin, bitta o’zgaruvchi orqali massivning umumiy indekslarini ifodalash 
mumkin. Massiv elementlarini tashkil qilish va massiv elementlari ustida 
amallar bajarishni quyidagi masala orqali qaraymiz. Massiv elementlarini tartib 
nomeri doimo 0 dan boshlanadi. 
Misol: 10 ta elementdan tashkil topgan massiv elementlarini hosil qilib, 
elementlarini ikkiga ko’paytirib ekranga chiqaring. 
 
#include <iostream.h>
Using namespace std;
int main() {
int a[10];
for(int i=0;i<=9;i++)
cin>>a[i];
for(int i=0;i<=9;i++)
cout<<a[i]*2<<   ;‖ ‖
return 0;
}
Kiritish ma‘lumotlari 1 2 3 4 5 6 7 8 9 10 
Dastur natijasi 
2 4 6 8 10 12 14 16 18 20 
C++ dasturlash tilida massiv elementlari boshlang‘ich qiymatlari berilgan 
holatlarda e‘lon qilish quyidagicha. 
<tur> <massiv o„zgaruvchisi>[<element soni>]={boshlang ich qiymatlar}; 	
‟
Bunda massiv elementlari oldindan berilgan holatlarda ishlatilishi mumkin.
      #include <iostream.h> 
             int main()                                                                    
   {  
     int a[5]={2, 3, -4, 5, 6};
   //butun turli 5ta elementli 
return 0;                              
                               }                                                                                      
  Boshlang‘ich qiymatlari berilganda ham massivni e‘lon qilishning bir nechta 
turlari mavjud. C++dasturlash tilida massiv elementlar soni aniq bo’lganda 
uning elementlarini to’liq berish yo’li bilan e‘lon qilish. Int a[5]={2, 3, -4, 5, 6};
A massiv 4 ta elementli uning elementlarini boshlang‘ich qiymatlari berilgan 
Bo‘lsa, bunda a[1]=2, a[2]=3, a[3]=-4, a[4]=5, a[5]=6 ko‘rinishida yozish 
mumkin. 
Massiv elementlari soni aniq bo’lib, uning elementlarining boshlang‘ich 
qiymatlari to’liq bo’lmagan holatlarda quyidagicha e‘lon qilinadi. Int a[5]={2, 
3, -4}; 
Yuqoridagi holatda massiv 5 ta elementan tashkil topgan, lekin uning uchta 
qiymatining boshlang‘ich qiymatlari berilgan, qolgan ikkitasini boshlang‘ich 
qiymatlari berilmagan. Agar massiv elementlarining boshlang‘ich qiymatlari 
berilmagan bo’lsa, uning boshlang‘ich qiymatlari 0 deb qaraladi. 
Shuni e‘tiborga olish kerakki, massivning boshidagi elementlarini boshlang‘ich 
qiymatlari berilmasdan uning o’rtadagi yoki oxiridagi elementlarini 
boshlang‘ich qiymatlarini berish mumkin emas. 
Massiv elementlari soni berilmasdan uning boshlang‘ich qiymatlarini berish 
yo’li bilan e‘lon qilish. 
Int a[]={2, 3, -4, 5, 6}; 
Agar massiv elementlari soni berilmasa, albatta, uning boshlang‘ich qiymatlari 
berilishi kerak. Massivning elementlar soni berilmaganda dastur komplyatori  massiv elementlari sonini boshlang‘ich qiymatlar soni bilan aniqlaydi. Misol: 
Butun sonlardan iborat a[8] massiv berilgan uning juft elementlarini 2ga 
ko’paytirib toq elementlarini 3 ga ko’paytirib ekranga chiqaring. Bu masala 
yechimida massiv elementining har birini juft va toqlikka tekshirib chiqiladi, 
juft bo’lsa, ikkiga toq bo’lsa, uchga ko’paytirildi.    
#include <iostream.h>
using namespace std;
int main()
{
int a[8];
for(int i=0;i<=7;i++)
cin>>a[i];
for(int i=0;i<=7;i++)
if(a[i]%2==0)
{
cout<<a[i]*2<<   ;}‖ ‖
else cout<<a[i]*3<<   ;	
‖ ‖
return 0;
}
Kiritish ma‘lumotlari 1 2 3 4 5 6 7 8    
Dastur natijasi 
3 4 9 8 15 12 21 16 
Misol: n natural son va n ta elementdan tashkil topgan massiv berilgan uning 
eng katta elementini aniqlang. 
Bu masalani yechimini aniqlash uchun birinchi elementni eng katta deb qarab, 
massivning barcha elementini eng katta deb qaralgan element bilan 
solishtiriladi, agar solishtirilayotgan sondan kattasi topilsa, u katta bilan 
almashtiriladi. 
#include <iostream.h>
Using namespace std;
int main()
{
int a[10];
For(int i=0;i<=9;i++)
Cin>>a[i];
int max=a[0];
for(int i=0;i<=9;i++)
if(a[i]>max) max=a[i];
cout<<max;
return 0;
}
Kiritish ma‘lumotlari 1 2 3 4 5 6 7 8 9 10 
Dastur natijasi 10  Massiv elementlarini e‘lon qilish va uning elementlari ustida amallar bajarish 
yuqoridagi holatlar bo’yicha C++ dasturlash tilida e‘lon qilib bajariladi. 
Alohida bir o’zgaruvchini ko’rsatish uchun massiv nomi va kerakli o’zgaruvchi 
indeksini yozamiz. C/C++ dagi massivlardagi elementlar indeksi har doim 
noldan boshlanadi. 
C++ dasturlash tilida massivlar va ulardan foydalanish keng imkoniyatlari 
mavjud, ko’pdan ko’p masalalarning hal etish uchun albatta massivlardan keng 
qo’llaniladi. Ko’pdan ko’p dasturchilarda birinchi massivlar ustida ishlayotgan 
vaqtida qo‘yiladigan xatolar, bu massivni elementlariga murojat qilishda 
bo’ladi. Massiv elementlariga murojat birinchi tartibi 0 dan boshlanishini, 
albatta, e‘tibor berish kerak.    
Masalan, float x[15], y[15]; kabi x va y massivlar e‘lon qilingan bo’lsa, x=y    
yoki y=x kabi buyruqlarga ruxsat etilmaydi. Lekin bir massiv elementi 
qiymatini ikkinchi massiv elementi olishi mumkin. Masalan, a[0]=b[10]    yoki 
b[5]=a[3] kabi buyruqlarga ruxsat etiladi. 
Massiv o’lchami e‘lon qilingandan keyin uning chegarasidan chiqib ketish 
kutilmagan xatoliklarga olib kelishi mumkin. Masalan, massiv int b[40] kabi    
e‘lon qilingan bo’lsa, uning elementlari soni 40 ta bo’lib, ular 0 dan 39 gacha 
nomerlangan bo’lishi bizga ma‘lum. Lekin b[41], b[46], b[55] elementlardan 
foydalanishga yoki ularga qiymat berishga ruxsat etilmaydi. 
Yuqoridagi holatlarga, albatta, e‘tibor berib C++dasturlash tilida massivlarni 
e‘lon qilib ular ustida amallar bajarilish kerak.

MAVZU: C++ dasturlash tilida ma’lumotlarning murakkab toifalari (struktura) bilan ishlash C++ tilida ishlatiladigan ma'lumotlar 2 toifaga, oddiy va murakkab toifadagi ma'lumotlarga bo’linadi. Oddiy toifadagi ma'lumotlarning boshqa toifadagi ma'lumotlardan asosiy farqlanuvchi bеlgisi - ularning tartiblanganligi va yaxlitligidadir, ya'ni masalan INT toifasiga mansub ixtiyoriy kattalik alohida raqamlarga bo’linmaydigan yaxlit kattalikdir (INT toifasidagi kattalik sifatida bitta butun son tushuniladi). Murakkab toifadagi ma’lumotlar bir nechta kattaliklar ketma-ketligidan , to’plamidan iborat. Shuning uchun bu toifalarni tarkiblashgan toifalar deb yuritiladi. C++ tilida murakkab toifalardan massiv toifasi deyarli har bir dasturda ishlatiladi. Massiv - bu umumiy nomga ega bo’lgan bir xil toifadagi ma’lumotlarning tartiblangan ketma-ketligidir. Odatda ma’lumotlar ro’yhatlarini, turli ko’rinishdagi jadval elementlarini massivlar ko’rinishida ifodalash qulaydir. Masalan, quyida tartiblangan haqiqiy sonlar massivi keltirilgan: (1.5, 14.7, -5.0, 8.5, 0.45), bu massivning bazaviy toifasi esa haqiqiy (float) toifadir. Massiv tushunchasini A – umumiy nomga ega va bir toifadagi qo’zg’almas kattaliklar kеtma-kеtligidan iborat bo’lgan sonli vеktor misolida tushuntirish mumkin: A(5) = (a 1 , a 2 , a 3 , a 4 , a 5 ), bu еrda a1, a2…- massiv elеmеntlaridir. Ularni ifodalashda ko’rsatkichli (indеksli) o’zgaruvchilardan foydalaniladi. Matеmatika kursidan ma'lumki, ko’rsatkich (indеks) o’zgaruvchilarning tartiblangan kеtma-kеtlikdagi o’rnini bildiradi. Borland C++ Builder 6 tilida o’zgaruvchining ko’rsatkichi to’rtburchak qavslar ichiga olinib yoziladi , ya'ni A[1]=1.5, A[2]=14.7, A[3]=-5.0, A[4]=8.5, A[5]=0.45. Ma`lumotlarning barcha toifalari oddiy bo`lsin, murakkab bo`lsin faqat bir toifadagi ma`lumotlarni saqlash uchun ishlatiladi. Masalan Integer toifasi faqat butun sonlarni saqlash uchun ishlatiladi. Massivlar va to`plamlarda esa elementlari

qaysi toifada e`lon qilingan bo`lsa, faqat shu toifadagi ma`lumotlarni saqlaydi. Amaliyotda esa axborotlarni saqlash, qayta ishlash uchun ma`lumotlarning har hil toifalarini aralashtirib ishlashga to`g`ri keladi. Ma`lumotlarning aralash toifasi bilan ishlash uchun C++ da struct (struktura) dan foydalanish mumkin. Struktura deb, har hil toifadagi ma`lumotlarning cheklangan to`plamiga aytiladi. Strukturalar – maydon deb ataluvchi chekli sondagi hadlardan tashkil topadi. Struktura nimaligini tushinish uchun quyidagi misolni ko`rib chiqamiz. № Familiya Ism Baholar 1 Abdullaev Dilshod 5 5 4 5 2 Abdurahimov Ne`mat 3 3 4 5 3 Rejepova Dilbar 5 5 5 5 4 Karimova Hafiza 4 4 5 5 Bu jadvalning har bir satri har hil toifadagi alohida elementlardan tuzilgan: 1. Tartib raqami – butun sonlardan 2. Familiya Ism – belgili satrlardan 3. Baholar – butun sonlar massividan tashkil topgan. Bu ma`lumotlarni bir guruhga, strukturaga birlashtirish mumkin. Quyidagicha belgilashlar kiritamiz: Imtixon – strukturaning nomi; N – tartib raqami; FI – Familiya ism; B – baholar; Strukturalarni e`lon qilish: Strukturalarni e`lon qilish uchun struct xizmatchi so'zidan foydalaniladi. struct struktura_nomi { toifa_1 nom1; toifa_2 nom2; . . . toifa_n nomn; };

Struktura elementiga murojaat Struktura orqali yangi ma'lumotlar toifasi hosil qilinadi. Prоgrammada strukturalardan fоydalanish shu toifadagi o’zgaruvchilar e’lоn qilinish orqali bo'ladi. Yuqoridagi misol uchun strukturani e`lon qilish quyidagicha bo`ladi: struct imtixon { int n; // tartib raqami char FI[30]; // Familiya ismi int b[4]; // Baholar }; Struktura elementlari (maydonlari) programmada oddiy o`zgaruvchilar kabi ishlatiladi. Struktura maydoni elementlari ustida, uning toifasida nima amal bajarish mumkin bo`lsa shu amallarni bajarish mumkin. Strukturaning mayddoniga murojaat qilish uchun, o'zgaruvchidan keyin nuqta (.) qo'yiladi. imtixon t; // talaba t.n = 1; t.b[0] = 5; t.b[1] = 5; t.b[2] = 4; t.b[3] = 5; strcpy(t.FI, "Abdullaev Dilshod"); Butun va haqiqiy toifadagi o'zgaruvchilarga qiymat berish oddiy amalga oshiriladi. Satrlarga qiymat berish esa, strcpy - funksiyasi orqali amalga oshiriladi. Keling oddiy ishchi nomli struktura (sinf) hosil qilamiz va undan programmada foydalanishni o'rganamiz. Ishchi strukturasi quyidagi maydonlarni o'z ichiga oladi: ? Familiy ? Ism ? Lavozim ? Oklad ? Yosh

Strukturaga ma'lumotlarni kiritish va chiqarishda amallarni qayta yuklashdan foydalanamiz. Amallarni qayta yuklashni, C++ da ob'ektga yo'naltirilgan dasturlash qismida batafsil to'xtalamiz. Xozircha asosiy e'tiborni strukturaga qaratamiz. Ishchi strukturasin hosil qilish va dasturda foydalanish #include <iostream.h> // ishchi sinfini e'lon qilish struct ishchi { char familiya[30]; char ism[30]; char lavozim[30]; float oklad; int yosh; }; // kiritish amalini qayta yuklash istream& operator >> (istream& input, ishchi& k) { cout << "Familiyani kiriting\n"; input >> k.familiya; cout << "Ismni kiriting\n"; input >> k.ism; cout << "Lavozimini kiriting\n"; input >> k.lavozim; cout << "Okladni kiriting ($)\n"; input >> k.oklad; cout << "Yoshini kiriting\n"; input >> k.yosh; return input; } // chiqarish amalini qayta yuklash ostream& operator << (ostream& out, ishchi k) { out << "\nFamiliya:\t" << k.familiya; out << "\nism:\t\t" << k.ism; out << "\nlavozim:\t" << k.lavozim; out << "\noklad:\t\t" << k.oklad << "$"; out << "\nyosh:\t\t" << k.yosh << endl;

return out; } int main() { // ishchi sinfidagi ob'ektni e'lon qilish ishchi p; cin >> p; cout << p; system (“pause”); return 0; } n ta ishchi haqidagi ma'lumotlarni o'zida saqlovchi fayl hosil qiling. 21 yoshdan kichik bo'lgan ishchilarni chiqaruvchi programma tuzilsin. #include <iostream.h> // ishchi sinfini e'lon qilish struct ishchi { char familiya[30]; char ism[30]; char lavozim[30]; float oklad; int yosh; }; // kiritish amalini qayta yuklash istream& operator >> (istream& input, ishchi& k) { cout << "Familiyani kiriting\n"; input >> k.familiya; cout << "Ismni kiriting\n"; input >> k.ism; cout << "Lavozimini kiriting\n"; input >> k.lavozim; cout << "Okladni kiriting ($)\n"; input >> k.oklad; cout << "Yoshini kiriting\n"; input >> k.yosh; return input; } // chiqarish amalini qayta yuklash ostream& operator << (ostream& out, ishchi k)