Mavzu: Dinamik xotiradan foydalanish, dinamik xotirani ishlatishda ko’rsatkich turlari Reja


Download 16.69 Kb.
Sana01.09.2023
Hajmi16.69 Kb.
#1672108
Bog'liq
algoritm 4- mi


4-Mustaqil ish
Mavzu: Dinamik xotiradan foydalanish, dinamik xotirani ishlatishda ko’rsatkich turlari
Reja:

  1. Dinamik xotira haqida ma'lumot

  2. Xotirani dinamik ravishda taqsimlash

  3. Ko'rsatgich turdagi o'zgaruvchilar

Ba'zan xotira hajmini o'zgartirish kerak bo'ladi. Shunday qilib, xotirani dinamik ravishda ajratish mumkin. Ma'lumotlar elementlarining kiritilishi va o'chirilishiga qarab, xotira o'sishi yoki qisqarishi mumkin. Bu xotirani dinamik ajratish deb nomlanadi.
C tilida, stdlib.h sarlavha fayli, xotirani dinamik ajratish uchun to'rtta funktsiyadan iborat. Ular calloc, malloc, realloc va bepul. Malloc () funktsiyasi kerakli hajmdagi baytlarni ajratadi va ajratilgan xotiraning birinchi baytini ko'rsatib, bo'sh ko'rsatgichni qaytaradi. Calloc () funktsiyasi kerakli hajmdagi baytlarni ajratadi va ularni nolga tenglashtiradi. Keyin bo'sh ko'rsatgichni xotiraga qaytaradi. Free () funktsiyasi ajratilgan xotirani qayta taqsimlash uchun ishlatiladi. Va realloc funktsiyasi oldindan ajratilgan xotirani o'zgartirishi mumkin. Calloc yoki malloc yordamida xotira ajratilgandan so'ng, xotira hajmi aniqlanadi, lekin ular realloc funktsiyasi yordamida ko'paytirilishi yoki kamaytirilishi mumkin. Java-da to'plamlardan dinamik xotirani ajratish uchun foydalanish mumkin.
Xotirani dinamik ravishda taqsimlashning asosiy ustunligi shundaki, u xotirani tejaydi. Dasturchi xotirani ajratishi yoki kerak bo'lganda xotirani bo'shatishi mumkin. Xotira bajarish paytida qayta taqsimlanishi mumkin va kerak bo'lmaganda xotirani bo'shatishi mumkin. Xotirani dinamik ravishda taqsimlash statik xotirani taqsimlashdan ham samaraliroq. Kamchiliklardan biri shundaki, xotirani dinamik ravishda taqsimlashni amalga oshirish murakkabdir.
Xotirani dinamik ravishda taqsimlash bu xotirani ajratish usuli bo'lib, xotira ajratilgandan so'ng uni o'zgartirish mumkin.

Xotirani dinamik ravishda taqsimlashda xotirani minimallashtirish yoki shunga mos ravishda maksimal darajada oshirish mumkin.




Xotirani dinamik ravishda taqsimlashni amalga oshirish juda murakkab.




Dinamik xotirada ajratishni bajarilishi statik xotirani taqsimlashdan sekinroq.




Xotirani dinamik ravishda taqsimlash xotirani qayta ishlatishga imkon beradi. Dasturchi kerak bo'lganda ko'proq xotira ajratishi mumkin. U kerak bo'lganda xotirani bo'shatishi mumkin.

Programma ishlashi jarayonida yuzaga keladigan va o‘lchamlari o‘zgarishi mumkin bo‘lgan programma obyektlariga dinamik obyektlar deyiladi.

Ayniqsa, statik obyektlar uchun chekli xotira (segment) ajratiladigan SHEHM larda dinamik obyektlardan foydalanish ancha samaralidir. Standart Paskal va uning SHEHMlardagi varianti Turbo-Paskal (TP) muhitida dinamik obyektlardan foydalanish imkoniyati ko‘zda tutilgan. Paskal tilida dinamik obyektlar bilan ishlash uchun maxsus ko‘rsatgich tur aniqlangan. Bu turning qiymati qandaydir programma obyektiga ko‘rsatgich bo‘lib, u orqali obyektga bevosita murojaat amalga oshiriladi. Programmada har bir dinamik obyektga ko‘rsatgich turidagi statik o‘zgaruvchi mos qo‘yiladi va u orqali dinamik obyekt ustida amallar qilinadi.


Ko‘rsatgich turidagi o‘zgaruvchining qiymati programma bajarilishi jarayonida amalga oshiriladi. Ko‘rsatgich tur sintaksisi quyidagicha

 ^ < tur nomi>,

bu yerda - ko‘rsatgich tur alomati, - standart yoki oldin aniqlangan tur.

Misol:
type

Vector  array [1..100] of integer

dinamic_vector  ^ Vector;
Var

p:^ integer; q:^char;


Ko‘rsatgich turidagi o‘zgaruvchilar uchun ifoda-qiymat sifatida quyidagilar kelishi mumkin:
  • bo‘sh ko‘rstagich (nil);


  • ko‘rsatgich turidagi o‘zgaruvchi;


  • ko‘rsatgich turidagi funksiya.



Bu yerda ifoda turi o‘zlashtiruvchi ko‘rsatgich turi bilan mos tushishi kerak
Download 16.69 Kb.

Do'stlaringiz bilan baham:




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