Маълумотлар тузилмасини асосий кўринишлари (турлари):
Тўплам – муносабат тўплами бўш R= бўлган элементлар мажмуаси.
Кетма-кетлик – шундай абстракт тузилмаки, бунда R тўплам фақатгина битта чизиқли муносабатдан иборат (яъни, биринчи ва охирги элементдан ташқари ҳар бир элемент учун ўзидан олдин ва кейин келадиган элемент мавжуд).
Матрица – шундай тузилмаки, бунда R муносабатлар тўплами иккита чизиқли муносабатдан ташкил топган бўлади.
Дарахт – бунда R тўплам иерархик тартибдаги битта муносабатдан ташкил топган бўлади.
Граф – бунда R муносабатлар тўплами фақатгина битта бинар тартибли муносабатдан ташкил топган бўлади.
Гиперграф – бу шундай маълумотлар тузилмасики, бунда R тўплам икки ёки ундан ортиқ турли тартибдаги муносабатлардан ташкил топган бўлади.
Маълумотлар тузилмасига мисол
D1
D2
D3
Тўплам
D1
D2
D3
Кетма-кетлик
Дарахт
Граф
D1
D2
D3
D1
D2
D3
Фойдаланувчи дастурида МТ турлари
Фойдаланувчи дастурида МТ классификацияси
статик тузилма;
динамик тузилма.
МТ классификация қилишда асосий белги бу маълумотлар тузилмасини дастур ишлаши мобайнида ўзгариши ҳисобланади. Масалан, агар дастур бажарилиши мобайнида элементлар сони ва/ёки улар орасидаги муносабатлар ўзгарса, у ҳолда бундай МТ динамик маълумотлар тузилмаси, акс ҳолда статик маълумотлар тузилмаси дейилади.
-2 n-1<= x< 2 n-1 - n -разряд
Бутун тур
Қийматлар оралиғи
Амаллар
қўшиш(+);
айириш(-);
кўпайтириш(*);
бутун бўлиш(/);
қолдиқли бўлиш(%);
Тур
Формат
Short
2 байт
Int
4 байт
Long
4 байт (ишорали)
unsigned
модификатор
Ўзлаштириш =; ~=
Таққослаш <; <=; >; >=
Инкремент ++
Декремент --
ишора бутун сон
Ҳақиқий тур
Қийматлар оралиғи
Амаллар
қўшиш(+);
айириш(-);
кўпайтириш(*);
бўлиш(/);
Ўзлаштириш =; ~=
Таққослаш <; <=; >; >=
Тур
Формат
Float
4 байт
Double
8 байт
Мантисса ишораси мантисса тартиб ишораси тартиб
x = +/- M * q(+/-P)
ASCII – коди элементлари
Белгили тур
Қийматлар
Амаллар
Ўзлаштириш =;
Бирлаштириш(Конкатенация)+
<; <=;
>; >=.
Тур
Формат
char
wchar_t
1 байт
2 байт
string
256 байт
(0 дан 255 белги)
Эслатма
Белгили тур апостроф ичида берилади
Мантиқий тур
Қийматлар
Амаллар
ўзлаштириш;
таққослаш(==; <;<=; >; >=);
&& || !
Номи
False
қиймати
True
қиймати
Хотира
ўлчами
Bool
0
1
1 байт
X
Y
! X
X &&Y
X || Y
false
false
true
false
false
false
true
true
false
true
true
false
false
false
true
true
true
false
true
true
Кўрсаткичли тур
Амаллар
ўзлаштириш;
адрес бўйича қиймат олиш;
адресни олиш(&);
қўшиш; айриш;
инкремент; декремент.
Таъриф
Кўрсаткич (Pointer) – бу шундай тур бўлиб, унинг қийматлар оралиғи хотира ячейкалари манзили ва махсус қиймат (нол манзил) дан иборат.
Изоҳ
Нол кўрсаткич – шундай махсус қийматки, у ҳеч қандай объектга йўналтирилмаганликни англатади.
C# ва Java – null;
C ва C++ - 0 ёки null макрос;
Pascal – nil.
Мавжуд объект адресини кўрсаткичга ўзлаштириш:
int a = 5;
int* p = &a;
Bir qancha qiymatlardan birini qabul qila oladigan o‘zgaruvchiga sanaladigan toifadagi o‘zgaruvchilar deyiladi va bunday o‘zgaruvchilarni e’lon qilishda enum kalit so‘zi va undan keyin toifa nomi hamda figurali qavs ichida vergullar bilan ajratilgan o‘zgarmas qiymatlar ro‘yhati ishlatiladi.
Bir qancha qiymatlardan birini qabul qila oladigan o‘zgaruvchiga sanaladigan toifadagi o‘zgaruvchilar deyiladi va bunday o‘zgaruvchilarni e’lon qilishda enum kalit so‘zi va undan keyin toifa nomi hamda figurali qavs ichida vergullar bilan ajratilgan o‘zgarmas qiymatlar ro‘yhati ishlatiladi.
Masalan:
enum Ranglar{oq, qora, qizil, yashil};
Ushbu toifada yangi o’zgaruvchi e’lon qilish mumkin.
Ranglar rang;
Bu yerda Ranglar nomli sanoqli toifa yaratildi. Ushbu toifaning 4 ta o‘zgarmas elementlari mavjud va ular dastlab 0 dan boshlab sanaladigan butun sonli qiymatga ega bo‘ladilar.
Саналадиган турлар
Maссивлар ва векторлар Массивни эълон қилиш
Эслатма
Дастурда массивни эълон қилиш учун унинг номини, элементлар сонини ва уларнинг турини кўрсатиш лозим.
С++да
T0 а[100]; T0 b[100][50];
a=(a1,a2, … , a100) – абстракт босқич;
…
a1
a2
a100
- физик босқич.
бу ерда T0 – бирор бир тур; С++да массив элементлари индекси 0 дан бошланади.
Физик босқичда трансляторлар массивни қатор ёки устун кўринишида ифодалайди.
Изоҳ
Ma’lumotlarni massivda saqlashda elementlar soni oldindan ma’lum bo‘lishi kerak. Ayrim paytlarda massivga nechta element kiritilishi ma’lum bo‘lmaydi va o‘shanda dinamik dasturlashdan foydalanish kerak bo‘ladi. Shunday hollarda vectordan foydalanish mumkin. Vector klassi o‘zgaruvchan uzunlikdagi massiv yaratishga yordam beradi. Vektor bu elementlari soni oldindan ma’lum bo‘lmagan bir xil toifadagi elementlar ketma-ketligidir. Vektorning massivdan farqi, vector uzunligi oldindan berilmaydi va u dastur bajarilishi mobaynida o‘zgarib turadi.
Ma’lumotlarni massivda saqlashda elementlar soni oldindan ma’lum bo‘lishi kerak. Ayrim paytlarda massivga nechta element kiritilishi ma’lum bo‘lmaydi va o‘shanda dinamik dasturlashdan foydalanish kerak bo‘ladi. Shunday hollarda vectordan foydalanish mumkin. Vector klassi o‘zgaruvchan uzunlikdagi massiv yaratishga yordam beradi. Vektor bu elementlari soni oldindan ma’lum bo‘lmagan bir xil toifadagi elementlar ketma-ketligidir. Vektorning massivdan farqi, vector uzunligi oldindan berilmaydi va u dastur bajarilishi mobaynida o‘zgarib turadi.
vector o‘zgaruvchi_nomi;
Massivlar va vectorlar
vector vek;
vector vek;
Bu holda vektorga element kiritish quyidagicha amalga oshiriladi:
vek.push_back(7);//vector oxiriga yangi element 7 ni kiritish
vek.pop_back();// vektor oxirgi elementini o‘chirish funksiyasi