Ответы на экзаменационные вопросы № 1-34 по дисциплине "Программирование" (Средства модульного программирования в системе Турбо-Паскаль. ООП. Объекты в динамической памяти), страница 18

Для экономного использования динамической памяти следует вовремя освобождать память, выделенную для данных, если эти данные больше не нужны для работы программы. Для освобождения памяти используются процедуры Dispose(p) и FreeMem(p,Size).

Процедура Dispose(p) используется для типизированных указателей – освобождает память, на которую указывал  p.

Процедура FreeMem(p,Size) используется для нетипизированных указателей – освобождает Size байтов, начиная с адреса p.

Следует помнить, что после освобождения памяти указатели не обнуляются и указывают на несуществующую переменную. Следует после высвобождения памяти всем высвободившимся указателям присваивать значение nil.

Динамические переменные используются, в основном, в двух ситуациях:

для работы с массивами больших или переменных размеров;

для работы с особыми структурами данных переменных размеров – динамическими структурами данных.

Примеры.

Пример 1: Динамический массив.

type mas=array[1..1] of integer;

tmas=^mas;

var m:tmas; n,i,max: integer; size,s:longint;

begin

write('vvedite n:'); readln(n);

size:=n*sizeof(integer);

getmem(m, size);

randomize;

for i:=1 to n do

begin

m^[i]:=random(10);

{ write(m^[i], '  ');}

s:=s+m^[i]

end;

max:=1;

for i:=2 to n do

if m^[i]>=m^[max] then max:=i;

writeln('s=',s);

writeln('max - m[',max,']=',m^[max]);

{  writeln('m[135]=',m^[135],'   ','m[1034]=',m^[1034]);}

readln;

freemem(m,size)

end.

11.Использование динамической памяти для обработки больших массивов данных: проблема нехватки памяти, объявление типов данных, выделение памяти, доступ к элементам массива, пример.

12.Формирование и обработка динамических массивов: объявление массива переменной размерности, выделение памяти, доступ к элементам массива, пример.

13Динамические структуры данных: общая характеристика, виды, особенности объявления и обработки.

14.Динамическая структура данных «стек». Особенности создания и обработки. Объявление типов данных в программе. Пример.

15.Динамическая структура данных «очередь». Особенности создания и обработки. Объявление типов данных в программе. Пример.

16.Динамическая структура данных «список». Особенности создания и обработки. Объявление типов данных в программе. Пример.

17.Графические средства системы Турбо-Паскаль: Различия текстового и графического режимов. Основные характеристики графического режима. Инициализация графики.

Принципы работы с видеотерминалом в системе Turbo Pascal 7.0  

Видеотерминал в системе TP 7.0 может работать в одном из двух режимов: текстовом и графическом.  

Текстовый режим позволяет выводить на экран дисплея только 256 заранее заданных символов.  

Графический режим за единицу информации принимает одну светящуюся точку экрана – пиксель. Любое изображение может быть сформировано из набора пикселей, т.е. графический режим позволяет генерировать произвольные изображения путем высвечивания пикселей разными цветами.  

Стандартным режимом работы видеотерминала в среде TP 7.0 (режимом работы по умолчанию) является текстовый режим.  

2.Текстовый режим.  

Единицей информации в текстовом режиме является символ. Для размещения символа на экране отводится прямоугольник размером 8х8 пикселей, называемый знакоместом. Вся плоскость экрана в текстовом режиме развивается на 25 строк по 80 символов в каждой. Начало координат – точка (1,1) – левый верхний угол экрана.  

Информация о любом знакоместе (т.е. о любом символе) занимает в видеопамяти 2 байта: 1 – код символа, 2 – цвет символа и фона.  

Цвет формируется в результате смешения трех основных цветов – красного, зеленого и синего. Такое смешение дает 8 различных комбинаций для фона и изображения. За счет управления интенсивностью цвета можно получить еще 8 цветов для изображения.  

Символ выводится в позицию, где расположен курсор. Средства управления экраном в текстовом режиме находятся в модуле CRT.  

Рассмотрим процедуры управления выводом в текстовом режиме:  

1) процедура  

window (x1,y1,x2,y2);