O‘zbеkiston rеspublikasi oliy va o‘rta maxsus ta’lim vazirligi andijon davlat univеrsitеti axborot tеxnologiyalari va kompyutеr injiniringi fakultеti axborot tеxnologiyalari kafеdrasi kurs ishi


Download 348,95 Kb.
bet7/9
Sana04.02.2023
Hajmi348,95 Kb.
#1157660
1   2   3   4   5   6   7   8   9
Bog'liq
Xoliqnazarov Olimjon

Ma'lumotlarning asosiy turlari


Ma'lumotlar turi o'zgaruvchini saqlaydigan ma'lumot hajmi va turini belgilaydi:



C++ da ma`lumotlarning murakkab toifalari
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
// 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
// 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;
}
Raqam turlari
#include
using namespace std;

int main() {
int butun = 13; // Butun (whole number)
}

#include


using namespace std;

int main() {
int mn = 13.15; // Haqiqiy (whole number)
}

Boolean turlari


Boolean ma'lumotlar turi bilan e'lon qilinadi boolkalit so'z va faqat qiymatlarni qabul qilishi mumkin true, yoki false. Qiymat qaytarilganda true = 1va false = 0.
#include
using namespace std;

int main() {
bool togri = true;
bool yolgon = false;
cout << togri; // Chiqadi 1 (true)
cout << yolgon; // Chiqadi 0 (false)
}
Belgilar turlari
charMa'lumotlar turi saqlash uchun foydalaniladigan yagona belgi. Belgilar 'A' yoki 'c' kabi bir tirnoq bilan o'ralgan bo'lishi kerak:
char myGrade = 'F';
cout << myGrade;
Shu bilan bir qatorda, siz ma'lum bir belgilarni ko'rsatish uchun ASCII qiymatlaridan foydalanishingiz mumkin:
#include
using namespace std;

int main() {
char a = 65, b = 66, c = 67;
cout << a;
cout << b;
cout << c;
}
ABS
String (Satr) turlari
stringTuri belgi (matn) bir ketma-ketlikni saqlash uchun ishlatiladi. satrda yozilganidek qo'sh tirnoqda yozilishni unutmang. Misol uchun string ism = "MasterSherkulov";
Satrlardan foydalanish uchun siz qo'shimcha kutubxonadan foydalanishingizga to'g'ri keladi  kutubxonaga kiritishingiz kerak:
#include
#include
using namespace std;

int main() {
// string o'zgaruvchi e'lon qilinishi
string satr = "Hello";

// string(satr) o'zgaruvchi qiymatini ekranga chiqarish.
cout << satr;
}
C++ tilida ham o’zgaruvchilarning turlari bir necha guruhlarga ajraladi. Ularni quyida qarab chiqamiz. Butun son turlari. Butun son qiymatlarni qabul qiladigan o‘zgaruvchilar int(butun), short(qisqa) va 1ong(uzun) kalit so‘zlar bilan aniqlanadi. O‘zgaruvchi qiymatlari ishorali bo‘lishi yoki unsigned kalit so‘zi bilan ishorasiz son sifatida qaralishi mumkin. Belgi turi. Belgi turidagi o‘zgaruvchilar char kalit so‘zi bilan beriladi va ular o‘zida belgining ASCII kodini saqlaydi. Belgi turidagi qiymatlar nisbatan murakkab bo‘lgan tuzilmalar – satrlar, belgilar massivlari va hokazolarni hosil qilishda ishlatiladi. Haqiqiy son turi. Haqiqiy sonlar float kalit so‘zi bilan e’lon qilinadi. Bu turdagi o‘zgaruvchi uchun xotiradan 4 bayt joy ajratiladi va qolipida sonni saqlaydi. Agar kasrli son juda katta (kichik) qiymatlarni qabul qiladigan bo‘lsa, u xotirada 8 yoki 10 baytli ikkilangan aniqlik ko‘rinishida saqlanadi va mos double va long double kalit so‘zlari bilan e’lon qilinadi. Oxirgi holat 32-razryadli platformalar uchun o‘rinli. Mantiqiy tur. Bu turdagi o‘zgaruvchi bool kalit so‘zi bilan e’lon qilinib, xotiradan 1 bayt joy egallaydi va 0 (false, yolg‘on) yoki (true, rost) qiymat qabul qiladi. Mantiqiy tur o‘zgaruvchilar qiymatlar o‘rtasidagi munosabatlarni ifodalaydigan mulohazalarni rost (true) yoki yolg‘on (false) ekanligi tavsifida qo‘llaniladi va ular qabul qiladigan qiymatlar matematik mantiq qonuniyatlariga asoslanadi. Mantiqiy mulohazalar ustida uchta amal aniqlangan: 16 1) inkor – A mulohazani inkori deganda A rost bo‘lganda yolg‘on yoki yolg‘on bo‘lganda rost qiymat qabul qiluvchi mulohazaga aytiladi. C++ tilida inkor – ‘!’ belgisi bilan beriladi. Masalan, A mulohaza inkori «!A» ko‘rinishida yoziladi; 2) konyunksiya- ikkita A va B mulohazalar konyunksiyasi yoki mantiqiy ko‘paytmasi «A && B» ko‘rinishga ega. Bu mulohaza faqat A va B mulohazalar rost bo‘lgandagina rost bo’ladi, aks holda yolg‘on bo’ladi (odatda «&&» amali «va» deb o‘qiladi). Masalan «bugun oyning 5- kuni va bugun chorshanba» mulohazasi oyning 5- kuni chorshanba bo‘lgan kunlar uchungina rost bo’ladi; 3) dizyunksiya – ikkita A va B mulohazalar dizyunksiyasi yoki mantiqiy yig‘indisi «A || B» ko‘rinishda yoziladi. Bu mulohaza rost bo‘lishi uchun A yoki B mulohazalardan biri rost bo‘lishi yetarli. Odatda «||» amali «yoki» deb o‘qiladi. Yuqorida keltirilgan fikrlar asosida mantiqiy amallar uchun rostlik jadvali aniqlangan.

Mantiqiy tur qiymatlari ustida mantiqiy ko‘paytirish, qo‘shish va inkor amallarini qo‘llash orqali murakkab mantiqiy ifodalarni qurish mumkin. Misol uchun, «x – musbat va uning qiymati [1..3] sonlar oralig‘iga tegishli emas» mulohazasini mantiqiy ifoda ko‘rinishi quyidagicha bo’ladi: (х>0)&&(у3). 17 Void turi. C++ tilida void turi aniqlangan bo’lib bu turdagi dastur obyekti hech qanday qiymatga ega bo‘lmaydi va bu turdan qurilmaning til sintsksisiga mos kelishini ta’minlash uchun ishlatiladi. Masalan, C++ tili sintsksisi funksiya qiymat qaytarishini talab qiladi. Agar funksiya qiymat qaytarmaydigan bo‘lsa, u void kalit so‘zi bilan e’lon qilinadi. Misollar. int a=0 A=1; float аbс=17.5; double Ildiz; bool ok=true; char LETTER=’z’; Void mening_funksiyam(); /*funksiya qaytaradigan qiymat inobatga olinmaydi */
Turni boshqa turga keltirish: C++ tilida bir turni boshqa turga keltirishning oshkor va oshkormas yo‘llari mavjud. Umuman olganda, turni boshqa turga oshkormas keltirish ifodada har xil turdagi o‘zgaruvchilar qatnashgan hollarda amal qiladi (aralash turlar arifmetikasi). Ayrim hollarda, xususan tayanch turlar bilan bog‘liq turga keltirish amallarida xatoliklar yuzaga kelishi mumkin. Masalan, hisoblash natijasining xotiradan vaqtincha egallagan joyi uzunligi, uni o‘zlashtiradigan o‘zgaruvchi uchun ajratilgan joy uzunligidan katta bo‘lsa, qiymatga ega razryadlarni yo‘qotish holati yuz beradi.
Xulosa
Hozirgi kunda juda ko‘p algoritmik tillar mavjud. Bular ichida Java va C++ dasturlash tillari universal tillar hisoblanib, boshqa tillarga qaraganda imkoniyatlari kengroqdir. So‘ngi yillarda Java va C++ dasturlash tillari juda takomillashib, tobora ommalashib bormoqda. Mazkur tillardagi vositalar zamonaviy kompyuter texnologiyasining hamma talablarini o‘z ichiga olgan va unda dastur tuzuvchi uchun ko‘pgina qulayliklar yaratilgan.
C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C tiliga asoslangan tarzda tuzildi. C++ juda ko’p qo’shimchalarni o’z ichiga olgan, lekin eng asosiysi u obyektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoqda. Buni ta’minlash uchun obyektli dasturlash g’oyasi ilgari surildi. C++ esa gibrid tildir. Unda C tiliga o’hshab strukturali dasturlash obyektlar bilan dasturlash mumkin. C++ funksiya va obyektlarning juda boy kutubhonasiga ega. Yani C++ dasturlash tilida dasturlashni o’rganish ikki qismga bo’linadi. Birinchisi bu C++ tilini o’zini o’rganish, ikkinchisi esa C++ ning standart kutubhonasidagi tayyor obyekt va funksiyalarni qo’llashni o’rganishdir. 

O’zbekiston Respublikasi Oliy va O’rta maxsus ta’lim Vazirligi


Andijon davlat universiteti
Axborot texnologiyalari va kompyuter injinering fakulteti
Informatika o‘qitish metodikasi yo’nalishi
4 kurs 418-guruh talabasi Xoliqnazarov Olimjonning
C++ dashturlashda Murakkab ma’lumotlar turlari. Strukturamavzusini
o’qitish metodikasi” mavzusidagi kurs ishiga

RAHBAR XULOSASI


Bugun mamlakatimizda axborot-kommunikatsiya texnologiyalarini davlat boshqaruvi, iqtisodiyot tarmoqlari, ijtimoiy soha va kundalik hayotga izchil joriy etish bo’yicha keng ko’lamli ishlar amalga oshirilmoqda.
Shu sababdan hozirgi kunda dasturlash tillarini yuqori saviyada o’rganish, yangi imkoniyatlari bilan tanishish va amaliyotda qo’llay olish uning imkoniyatlaridan to’laqonli foydalanish bugungi kunda korxona xodimlari, o’qituvchi va talabalar, shu soha bilan shug’illanuvchi mutaxassislar, dasturchilar oldida turgan eng muhim va asosiy vazifalardan biridir. Shu ma’noda C++ dasturlash tilining “C++ dashturlashda Murakkab ma’lumotlar turlari. Struktura” mavzusini o’rgatish informatika va axborot texnologiyalari oldida turgan muammolaridan biridir.Ushbu fikrlardan ma’lum bo’ladiki, tanlangan kurs ish “C++ da o’zgaruvchilarni tavsiflash” tushunchasi juda kerakli mavzu hisoblanib. Ta’lim yo’nalishi sohasidagi masalalarni еchishda, tajriba natijalarini qayta ishlashda, hozirgi kundagi insonlarni o’yga solib turgan muammolarni hal etishda, turli sohalarda meditsina, biznes, qurilish va boshqa bir qancha sohalarda insonlarni qo’l mehnatini va ko’p vaqtini olib kelayotgan ishlarni tez va oson eng asosiysi mukamal hal etishda dasturlashdan foydalanish hozirgi davr talabi hisoblanadi.

Download 348,95 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling