Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Опис покажчиків

Реферат Опис покажчиків





і тим самим досягти потрібного результату.

Читач має право поставити запитання, чи варто було вводити обмеження і тут же давати кошти для їх обходу. Вся справа в тому, що будь-яке обмеження, з одного боку, вводиться для підвищення надійності програм, а з іншого - зменшує потужність мови, робить його менш придатним для якихось застосувань. У Турбо Паскалі нечисленні винятки щодо типів даних надають мові необхідну гнучкість, але їх використання вимагає від програміста додаткових зусиль і таким чином свідчить про цілком усвідомленому дії. br/>

Використання покажчиків

Підіб'ємо деякі підсумки. Отже, динамічна пам'ять становить 200 ... 300 Кбайт або більше, її початок зберігається у змінній HEAPORG, a кінець відповідає адресою змінної HEAPEND. Поточний адресу вільної ділянки динамічної пам'яті зберігається в покажчику HEAPPTR. p align="justify"> Подивимося, як можна використовувати динамічну пам'ять для розміщення великих масивів даних. Нехай, наприклад, потрібно забезпечити доступ до елементів прямокутної матриці 100х200 типу EXTENDED. Для размщеенія такого масиву вимагають пам'яті 200000 байт (100 * 200 * 10). Здавалося б, цю проблему можна вирішити наступним чином:


var, j: integer;: array [1 .. 100, 1 .. 200] of ^ real; i: = 1 to 100 doj: = 1 to 200 do (PtrArr [i, j ]);.


Тепер до будь-якого елементу новоствореного динамічного масиву можна звернутися за адресою, наприклад:


PtrArr [1,1] ^: = 0; PtrArr [i, j * 2] ^> 1 then


Згадаймо, однак, що довжина внутрішнього подання покажчика становить 4 байти, тому для розміщення масиву PTRARR потрібно 100 * 200 * 4 = 80000 байт, що перевищує розмір сегменту даних (65536 байт), доступний, як уже зазначалося, програмі для статичного розміщення даних. Виходом з положення могла б послужити адресна арифметика, тобто арифметика над покажчиками, тому що в цьому випадку можна було б відмовитися від створення масиву покажчиків PTRARR і обчислювати адресу будь-якого елементу прямокутної матриці безпосередньо перед зверненням до нього. Однак у Турбо Паскалі над покажчиками не визначені жодні операції, крім операцій присвоєння та відносини. p align="justify"> Проте, вирішити зазначене завдання все-таки можна. Як ми вже знаємо, будь покажчик складається з двох слів типу WORD, в яких зберігаються сегмент і зсув. У Турбо Паскалі визначені дві вбудовані функції типу WORD, що дозволяють одержати вміст цих слів: (X) - повертає сегментну частина адреси; (X) - повертає зсув. p align="justify"> Аргументом Х при зверненні до цих функцій може служити будь-яка змінна, в тому числі і та, на яку вказує покажчик. Наприклад, якщо маємо


var

р: ^ real; (p); ^: = 3.14;


то функція SEG (P) поверне сегмент...


Назад | сторінка 4 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Обробка масиву покажчиків
  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Графіка в Турбо Паскалі
  • Реферат на тему: Програмування в Турбо Паскалі
  • Реферат на тему: Клінічне дослідження при будь-якому внутрішньому незаразних захворювань