русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Отображение динамических переменных в окне просмотра


Дата добавления: 2015-09-15; просмотров: 692; Нарушение авторских прав


В процессе отладки программ в окно просмотра можно выводить значения всех указателей, их адресов и значения адресуемых ими статических и динамических переменных. Текущее значение указателя отображается в окне просмотра в виде:

Ptr(сегмент, смещение),

где сегмент, смещение отображаются в 16-ричной системе счисления с предшествующим символом $.

Пример

uk: Ptr($2E90, $10).

Если в окно просмотра к имени указателя спецификатор p, то значение указателя в окне просмотра будет представлено в виде:

uk: 2E90 : 0010.

Пример Использование динамической записи.

type

ptr_rec = ^rec; { - имя типа –указатель на запись}

rec = record { - имя типа –записи}

nz: integer;

fio: string[20]

end;

var

p, t : ptr_rec; { - указатель на запись }

begin

new(p); {выделение ОП для p ^ - записи }

p^.nz := 123; {- присваивание значения: - элементу nz, }

p^.fio :=’Иванов’; { - элементу fio,}

t := p; {- указателю t}

t^.nz := 456; {изменение значений: - nz, }

t^.fio :=’Петров’; { - fio.}

dispose(p); {- освобождение ОП, выделенной переменной p^}

p:=nil; t:=nil;{- обнуление значений указателей}

end.

До выделения ОП динамической переменной указатель p может содержать «мусор», случайное значение. Работа с таким значением недопустима так, как запись значений по этому адресу может привести к искажениям данных программы или самой ОС. Для вывода в окно просмотра текущего значения динамической переменной её имя можно вывести в окно с уточнением (для имени массива, записи или массива записей) или без уточнения.

Пример

p: Ptr($62DF, $0) - значение указателя
p, p: 62DF, 0000 - значение указателя в другой форме
p^: ( 123, ‘Иванов’) - содержимое, расположенное по указателю
p^, r: ( nz: 123, fio: ‘Иванов’) - содержимое записи именами элементов

После присваивания переменной t значения указателя p идентичные значения можно вывести и для переменной t. При этом два указателя имеют одинаковые значения и адресуют одну и ту же ОП. Изменение значений элементов записи с помощью динамической переменной t^ означает также и изменение значений динамической переменной p^, так как фактически это одна и та же переменная, имеющая два разных имени. После освобождения ОП с помощью процедуры dispose значения указателей не изменяются. Только после присваивания им значения nil в окно просмотра выводятся их значения, равные nil.



Для большей надёжности программы целесообразно освобождать ОП, как только динамическая переменная становится ненужной, и после освобождения ОП обнулять значения указателей помощью константы nil.

Для просмотра данных типа real динамической переменной - одномерного массива В в окно просмотра можно вывести значение В или значения, например 10 элементов динамического массива:

B: Ptr($ 63FE,$0) - адрес начала размещения массива;
B^: (1.4, 23.9, 123.0, ….) -значения всех объявленных элементов массива;
B^[1], 2: 1.4, 23.9 значения двух элементов, начиная с первого;
B^[4], 2: 47.4, 563.2 значения двух элементов, начиная с четвёртого;
B^[3]: 123.0 значения третьего элемента массива.

 



<== предыдущая лекция | следующая лекция ==>
Многоуровневая косвенная адресация | Проблемы, связанные с указателями


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.