Читайте также: |
|
Компьютердің жадысы ұяшықтардың жиыны болып табылады. Қайсыбір байттың адресін қолданып жадының кез-келген байтына қатынас жасауға болады. Динамикалық жадыны басқару үшін көрсеткіштер қолданылады. Мәні ретінде жады байтының адресін сақтайтын айнымалы көрсеткіш болып табылады. Компьютерде адрестер сегмент және ығысу деп аталатын екі 16-лық сөздер арқылы анықталады. Сегмент-жадының бөлігі 64 Кбайт және 16 еселік болатын физикалық адрестен басталады (0,16,32,48,т.с.с). Қажетті адреске қатынас жасау үшін сегменттің басынан қанша байт аттап өту керек екенін ығысу көрсетеді. Турбо Паскаль тілінде көрсеткіштер мәліметтердің қайсыбір типімен байланысады. Осындай көрсеткіштер типтелген деп аталады. Төменде типтелген көрсеткіштердің мысалдары келтірілген:
Var pr1: ^ integer;
pr2: ^ real;
Динамикалық жады қайсыбір программада көп қолданылатын тізім түрінде мәліметтердің ұйымдастыруын іске асыру үшін мүмкіндік береді. Тізімнің әрбір элементі жазба түрінде сипатталады. Жазба өрістерінің біреуінде келесі элемент туралы ақпарат орналасады. Бұл өріс келесі элементке сілтейтін көрсеткіш деп аталады. Қалған өрістер немесе бір өріс ақпаратты өрістер болып табылады. Тізімдер келесі түрде сипатталады:
TYPE sledel=^el; el=record
FIO:string[30];
Sled:sledel;
End;
Sledel типті сипаттағанда программада бұрын анықталмаған el типі пайдаланған. Бұл жағдайда тек көрсеткіштер үшін ерекшелік қарастырылған:сипатталмаған мәліметтер типіне көрсеткіштер сілтеуі мүмкін. Динамикалық орналасатын айнымалыға жады “new” стандартты процедура арқылы бөлініп беріледі. Бұл процедураның параметрі ретінде типтелген көрсеткіш қарастырылады. New процедураға қатынас жасағаннан кейін көрсеткіштің мәні болып динамикалық жадының адресі анықталады және осы адрестен бастап мәліметтер орналасады. Көрсеткіш қайсыбір мәнді меншіктегеннен кейін яғни, ол жадының нақты физикалық байтына сілтейтін болады және осы адрес бойынша сәйкес типті кез-келген мәнді орналастыруға болады.
NEW(pr1);
Динамикалық жадыны босату үшін Dispose стандартты процедурасын пайдалануға болады.
Динамикалық жады мәліметтерді тізім түрінде ұйымдастыруды іске асыруға мүмкіндік береді. Тізімдегі әрбір элементтің құрамында көрші элементке көрсеткіші болады, бұл тізімді қарауға және тексеруге мүмкіндік береді.
Белгілі бір типпен байланыспаған көрсеткіштер типтелмеген деп аталады және стандартты pointer типімен баяндалады, мысалы:
VAR p: pointer;
Типтелмеген көрсеткіштер көмегімен құрылымы мен типі программа жұмысы барысында өзгеріп отыратын мәліметтерді динамикалық орналастыру ыңғайлы. Жадыдағы айнымалылардың адрестері көрсеткіштердің мәнідері болып табылады. Мәліметтердің бірдей типтерімен байласқан көрсеткіштердің арасында ғана мәндерді беруге болады.
Мысалы:
Var
pr1, pr2: ^ integer;
pr3: ^ real;
ptr: pointer;
Дұрыс меншіктеудің мысалы:
1) pr1: = pr2;
2) pr1: = pr3; - меншіктеу дұрыс емес, өйткені Pr1 және Pr3 мәліметтердің әртүрлі типтерене сілтеген. Бұл шектеу типтелмеген көрсеткіштерге қарастырылмаймайды:
ptr:= pr3; pr1:= ptr (2) орнына)
Негізгі әдебиет: 1[140-156]
Қосымша әдебиет: 5 [28-32], 10 [125-146], 12 [61-174].
Дата добавления: 2015-07-08; просмотров: 440 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Модульдердi баяндау | | | Дәріс. Динамикалық жадымен жұмыс істеуге арналған процедуралар мен функциялар. Стандартты процедуралар және функциялармен жұмыс істеу. |