хотиранинг динамик сохаси ва курсаткичлар

DOC 59.0 KB Free download

Page preview (5 pages)

Scroll down 👇
1
1404135712_51454.doc хотиранинг динамик сохаси ва курсаткичлар режа: 1. хотиранинг динамик сохаси; 2. курсаткичлар хакида бошланғич маълумотлар. хотиранинг динамик сохаси программанинг (ташки) узгарувчилари компьютер хотирасининг ва узгармаслар маълумотлар сегментида жойлашган булади. сегмент узунлиги эса 64 кб ни ташкил килади. демак, шундай холлар булиши мумкинки, программанинг барча узгарувчиларини маълумотлар сегментига жойлаб булмайди, яъни маълумотлар сегментга сиғмайди. масалан, куйидаги программани компиляция килишга уриниш натижасиз тугайди, яъни экранда "error 49: data segment too large" (берилган маълумотлар сегменти жуда катта) йул куйилган хато хакида маълумот чикади: var a: array [1..40000] of byte; b: array [1..25534] of byte; begin end. шунинг учун, катта хажмли маълумотлар билан ишлашга туғри келганда бу маълумотларни хотиранинг динамик сохасига ёзиш максадга мувофикдир. хотиранинг динамик сохаси (туплама деб хам аташади) программа эгаллаган деярли барча хотира хисобланади. факат бу сохага маълумотлар кодлари, стек ва маълумотлар сегменти хотиралари кирмайди. одатда программа эгаллаган хотира куриниши куйидагича булади: хотиранинг катта адреслари буш хотира (---------- heapend туплама …
2
шлаши давомида эса бу хотира узгармай колади. тупламадаги хотира эса программани ишлаши давомида тулдириб борилади ва зарур булган пайтда бу хотира бушатиб куйилиши мумкин. шунинг учун, тупламада жойлашган узгарувчиларни динамик узгарувчилар деб аталади. тупламадан хотира ажратишни getmem ва new процедуралари оркали амалга оширилади, уни бушатиб куйишни эса freemem ва dispose процедуралари бажаради. 2. курсаткичлар хакида бошланғич маълумотлар курсаткич шундай узгарувчики, у маълумотнинг кийматини эмас, балки уларнинг хотирадаги жойлашган адресини узида саклайди. курсаткичларнинг икки хил типи мавжуд: типланган ва типланмаган. типланмаган курсаткичларнинг эълон килиш учун pointer хизматчи сузидан фойдаланилади, типланган курсаткичларни эълон килиш учун эса курсатилган тип олдидан "^" белгиси куйилади. мисол: var p: pointer; {типланмаган курсаткич} pint: ^ integer ; {pint - типланган, бутун типли курсаткич} x, y: ^ byte; {x, y - байт типидаги курсаткич} pst: ^ string ; {pst - катор типидаги курсаткич} адреси курсаткичда жойлашган зарур маълумотга курсаткич килиш учун курсаткич исмидан кейин "^" белгисини ёзиш керак: …
3
ой ажратади ва унинг адресини курсаткичга жойлаштиради. аникланиш: getmem (var p: pointer; size : word); p - курсаткич, size - ажратилган хотиранинг байт улчовидаги микдори. мисол: var p: pointer; begin getmem (p, 1000); {1000 байт узунликдаги хотира сохаси ажратилди} {p^ сохадан фойдаланиш блоки} freemem (p, 1000); {р адресдаги 1000 байт узунликли хотира сохаси бушатиб куйилди} end. 2. new процедураси (типланган курсаткичлар учун) - хотирадан зарур жойни банд килиб, унинг адресини берилган курсаткичга жунатади. аникланиши: new (var p: pointer); р - берилган курсаткич. new ва getmem процедуралари нисбатан жуда катта хисобланмиш хотиранинг динамик сохасидан зарур микдордаги хотира сураб олади. шу хотирани банд килиб, унинг адресини мос курсаткичга жунатади. шундай холлар хам буладики, хотиранинг динамик сохасида буш жой колмайди, у холда шу хотирага юкоридаги процедуралар билан килинган курсаткич куйидаги маълумотли хатони юзага келтиради: runtime error 203 ... шунинг учун, хотиранинг динамик сохасини вакти-вакти билан бушатиб туриш керак. бу ишларни dispose ва freemem …
4
} freemem(p,1024); {р сохадаги 1024 байт жой бушатилди} end. new ва dispose процедуралари эса куйидагича ишлатилади: var ps:^string; begin new(ps); {хотирадан 256 байт жой ажратилди } ps^:к’динамик хотира’; writeln(ps^); dispose(ps); {рs сохасиги тегишли булган жой бушатилди} end. фойдаланилган адабиётлар руйхати. 1. вирт н. алгоритму структуру даннух программу. - м.: мир, 1985 г. 2. абрамов в., трифонов н., трифонова г. введение в язук паскал. - м.: наука, 1988 г. 3. файсман а. профессиональное программирование на турбо паскале. - т.: "инфомэкс корпорейшн", 1992 г. 4. findlay w., watt d.a., paskal. an introduction to methodical programmin. third edition. – london: pitman, 1985 г. 5. поляков д. б., круглов и. ю. программирование в среде турбо-паскаль (версия 5.5): справ.-метод. пособие. – м.: изд-во маи. 1992 г. 6. епанешников а., епанешников в. программирование в среде turbo pascal 7.0 м., диалог-наука, 1993 г.
5
хотиранинг динамик сохаси ва курсаткичлар - Page 5

Want to read more?

Download the full file for free via Telegram.

Download full file

About "хотиранинг динамик сохаси ва курсаткичлар"

1404135712_51454.doc хотиранинг динамик сохаси ва курсаткичлар режа: 1. хотиранинг динамик сохаси; 2. курсаткичлар хакида бошланғич маълумотлар. хотиранинг динамик сохаси программанинг (ташки) узгарувчилари компьютер хотирасининг ва узгармаслар маълумотлар сегментида жойлашган булади. сегмент узунлиги эса 64 кб ни ташкил килади. демак, шундай холлар булиши мумкинки, программанинг барча узгарувчиларини маълумотлар сегментига жойлаб булмайди, яъни маълумотлар сегментга сиғмайди. масалан, куйидаги программани компиляция килишга уриниш натижасиз тугайди, яъни экранда "error 49: data segment too large" (берилган маълумотлар сегменти жуда катта) йул куйилган хато хакида маълумот чикади: var a: array [1..40000] of byte; b: array [1..25534] of byte; begin end. шунинг учун, катта хажмли маълумотлар...

DOC format, 59.0 KB. To download "хотиранинг динамик сохаси ва курсаткичлар", click the Telegram button on the left.