3-mavzu: Yarimstatik ma’lumotlar tuzilmasi
Reja:
1. To’plam tushunchasi.
2. Massivlar va ular ustidagi amallar.
3. Yozuvlar va ular ustidagi amallar .
4. Jadvallar va ularni e’lon qilish.
To’plam tushunchasi. Ma’lumki, to’plam tushunchasi bilan qaysidir ma’noda maktab davrlaridan tanishmiz. To’plam matematikada boshlang’ich, fundamental tushunchalardan biri bo’lib, elementlar majmuasidan tashkil topadi. .
Ta’rif. To’plam bu bir turga tegishli bo’lib, takrorlanmaydigan elementlar majmuasidir. To’plam bazaviy turga tegishli bo’lgan barcha qiymatlarni qabul qilishi mumkin. Shuni eslatib o’tish lozimki, bazaviy 256 tadan ortiq qiymani qabul qilmasligi lozim. . Shu sababli to’plamning bazaviy turi byte, char va ular orqali hosil qilingan turlar bo’lishi mumkin.
Massivlar. Massiv bir toifadagi elementlarning tartibli ketma-ketligi hisoblanadi. Massiv bironta nom va undagi elementlar toifasi orqali ifodalanadi. Massivlar
bir o’lchamli;
ikki o’lchamli;
ko’p o’lchamli
bo'lishi mumkin. Bir o’lchovli massivlar soda bo’lib, undagi har bir element xotirada ketma-ket joylashadi. Uning uchun xotiradan joy ajratilganda har bir elementiga massivning toifasidan kelib chiqib sarflanadigan xotira xajmi elementlar soniga ko’paytirib boriladi.
Masalan, int a[n] massiv qaraladigan bo’lsa, uning bitta elementiga 4 bayt joy ketadigan bo’lsa, massiv uchun ajratiladigan xotira sarfi 4*n bayt shaklida hisoblanadi.
Ikki o’lchamli massivlarda bir nechta qator va bir nechta ustunlar mavjud bo’ladi. Ustun va qatorlar kesishgan joyda massivning elementi joylashgan bo’ladi u elementni massivning qator va ustun raqami bilan aniqlanadi. Masalan, beshinchi qator va uchinchi ustunda turgan B matrisaning elementi B[5][3] kabi belgilanadi. Massivlar ustida matematik amallar ni bajarish mumkin.
Ikki o’lchovli massivlarni matrisalar deb ham atashadi. Matrisalar ham static tuzilma hisoblanadi.
A00
|
A01
|
A02
|
…
|
A10
|
A11
|
A12
|
…
|
A20
|
A21
|
A22
|
…
|
…
|
…
|
…
|
…
|
An
|
An1
|
An2
|
…
|
Chunki uni dasturda ifodalaganda, o’lchamini ko’rsatish kerak. Dastur ishga tushishidan oldin matrisaning satr va ustunlar soni va toifasini aniqlashidan kelib chiqib kompyuter uning uchun xotiradan joy ajratadi. Matrisa elementlari xotirada ketma-ket yacheykalarda joylashtiriladi, garchi uning alohida satr elementlari mantiqanquyidagicha keltirilsada, bitta satr elementlari xotirada ketma-ket joylashtirilganda keyin uning davomidan ikkinchi qator elementlari joylashtiriladi va uchichi va h.k
Undan tashqari ma’lumotlartuzilmasi sifatida massivlar ustida boshqa maxsus amallarni ham bajarish mumkin. Dasturda massiv ustida ishlash uchun avval uning toifasi va o’lchami e’lon qilinadi. Massivni e’lon qilish ikki xil usulda amalga oshirilishi mumkin.
Initsializatsiya qilmasdan e’lon qilish – bu holda massiv toifasi va nomi ko’rsatilib kvadrat qavs ichida uning elementlari soni ko’rsatiladi: int A[50];
Initsializatsiya qilish otqali e’lon qilish – bu holda massiv toifasi ko’rsatilib elementlariga qiymat o’zlashtiriladi. Masalan, A [5]={1,2,3,5,4}
Massiv elementlari bir toifaga tegishli bo’lgani uchun ular xotiradan bir xil hajmli joyni egallaydi va ular operativ xotirada joylashadi. Massiv dasturda foydalanilayotgan o’rniga qarab global yoki local bo’lishi mumkin.
Global turda bo’lganda dasturni boshida, ya’ni asosiy dastur tanasidan oldin, int main() dan oldin e’lon qilinadi, lokal turda esa dasturni kerakli qismida e’lon qilinadi. Lokal massivdan foydalanilganda uni chegaralari dastur davomida aniqlanadi va qism dasturdan tashqarida bu massivdan foydalanib bo’lmaydi.
Yozuv– maydon deb atalauvchi chekli sondagi ma’lumotlar tuzilmasidir. Yozuv ketma-ket turdagi ma’lumotlar tuzilmasini ifodalab, mantiqiy tasvirlanishda ham tuzilma elementlari ketma-ket joylashgan bo’ladi. Yozuvning massivdan farqi snundan iboratki, uning elementlari turli turlarga tegishli bo’lgan to’plamdan iborat bo’lishi mumkin. Yozuvda ma’lumot elementlarini ko’pincha yozuv maydonlari deb ham ataladi.
Masalan C++ tilida yozuvlarni e’lon qilish usulini quyidagicha ko’rishimiz mumkin.
#include
using namespace std;
int main()
{
string day , month, year;
cout << ‘Tug'ilgan kuningizni kiritng’;
cin >> day;
cout << ‘Tug'ilgan oyingizni kiriting’;
cin >> month;
cout << ‘Tug'ilgan yilingizni kiriting’;
cin >> year;
cout << ‘Sizning tug'ilgan kuningiz = ‘ << day <<‘.’ << month << ‘.’ << year <<‘\n’;
return 0;
Dostları ilə paylaş: |