скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыШпаргалка: Вопросы и ответы к экзаменам В-1

|-------------|----------------------------------------------|

READ(,);    Процедура

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

WRITE(,) используется для записи новых

компонент в файл; в качестве элементов вывода

м.б. выражение.

SEEK(,) -  смещает  указатель

файла к компоненту с ;

 - выражение типа LONGINT.

(К текстовым файла применять нельзя.)

FILESIZE)  Функция возвращает  количество компонент,

содержащихся в файле.(Типа LongInt )

Функция FILEPOS()  возвращает порядковый номер компо-

ненты файла, доступной для чтения или записи

(который будет обрабатываться следующей операцией в/в).

(        Процедура CLOSE () - закрытие файла.     )

|-------------|----------------------------------------------|

 - содержит одну или более переменных такого

же типа, что и компоненты файла,

 - файловая переменная д.б.  объявлена предложением FILE OF

и связана с именем файла процедурой ASSIGN.  Файл  необходимо  открыть

процедурой RESET для чтения.

Если файл исчерпан, обращение к READ  вызовет ошибку В/В

Чтобы переместить указатель в конец файла можно написать

Пр.   Seek(f,FileSize(f)) ;  где f - файловая переменная

Нетипизированные файлы

Обьявляются без указания типа файла:

TYPE ftype=file;          или          VAR fn: file;

Для данных  файлов не указывается тип компонентов,  что делает их сов-

местимыми с любыми другими файлами.  Позволяет организовать высокоско-

ростной обмен данными между диском и памятью.

При инициализации нетипизированных  файлов  процедурами  RESET  и

REWRITE указывается длина записи нетипизированного файла в байтах.

пример:  VAR f:file;  ...

ASSIGN (f,'a.dat');

RESET (f,512);

\ длина записи

Длина файла может быть представлена выражением типа WORD;  если  пара-

метр длины опущен,  подразумевается длина 128 байт; максимальная длина

65535 байт.

Для обеспечения  максимальной скорости обмена данными следует за-

давать длину,  кратную длине физического  сектора  дискового  носителя

(512 байт).  Кроме  того,  фактически пространство на диске выделяется

любому файлу порциями - кластерами, которые в зависимости от типа дис-

ка могут  занимать  2 и более смежных секторов.  Как правило,  кластер

м.б. прочитан или записан за один оборот диска, поэтому наивысшую ско-

рость обмена данными можно получить, если указать длину записи, равную

длине кластера.

При работе  с  нетипизированными  файлами  Могут  применяться все

рассмотренные процедуры и функции, доступные типизированным файлам, за

исключением READ и WRITE, которые для чтения и записи заменяются соот-

ветственно высокоскоростными процедурами  BlockREAD и BlockWRITE.

BlockREAD(,,,[,Var])

BlockWRITE(,,,[,Var])

где  - имя переменной,  которая будет участвовать в обмене дан-

ными с дисками;

 - количество записей,  которые д.б. прочитаны или записаны за одно

обращение к диску;

 - необязательный параметр, содержащий при выходе из процедуры ко-

личество фактически обработанных записей.

За одно  обращение к процедурам м.б.  передано N*r байт,  где r -

длина записи нетипизированного файла.  Передача идет,  начиная с  1-го

байта переменной .

После завершения процедуры указатель смещается на  записей.

Процедурами SEEK,  FilePos  и FileSize можно обеспечить доступ к любой

записи нетипизированного файла.

40. Библиотечный модуль GRAPH. Графические возможности ТП.

GRAPH - представляет собой библиотеку подпрограмм,  обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA,  EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых  (многоугольники,  сектора,  дуги, закрашивание фигур, вывода текста и т.д.).

Для запуска программы с использованием модуля GRAPH  необходимо,

чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.

Файл BGI - графический интерфейс. Он обеспечивает взаимодействие

программ с графическими устройствами.

В начале программы модуль GRAPH должен быть подключен

 PROGRAM

 USES GRAPH;

 описание меток, переменных программы, в частности

     VAR driver, Mode: integer;

 Begin

Далее инициализируется графический режим работы процедурой

InitGraph(,:integer;

: string);

Графическая информация на экране дисплея отражается совокупностью

светящихся точек - ПИКСЕЛЕЙ.

Режим по вертикали: 0 - 200 пикселей (4 страницы),

1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1 страница)

В текстовом режиме координаты верхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускается указывать =0,  тогда он устанавливается

по результатам тестирования (авто определение).  Путь определяет маршрут поиска графического драйвера.

   Пример:

USES GRAPH;

Const driver, mode: intGRAPH - представляет собой библиотеку подпрограмм,  обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA,  EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых  (многоугольники,  сектора,  дуги, закрашивание фигур, вывода текста и т.д.).

     Для запуска программы с использованием модуля GRAPH  необходимо,

чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.

     Файл BGI - графический интерфейс. Он обеспечивает взаимодействие

программ с графическими устройствами.

     В начале программы модуль GRAPH должен быть подключен

 PROGRAM

 USES GRAPH;

 описание меток, переменных программы, в частности

     VAR driver, Mode: integer;

 Begin

     Далее инициализируется графический режим работы процедурой

InitGraph(,:integer;

:string);

Графическая информация на экране дисплея отражается совокупностью

светящихся точек - ПИКСЕЛЕЙ.

Режим по вертикали: 0 - 200 пикселей (4 страницы),

1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1 страница)

В текстовом режиме координаты верхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускается указывать =0,  тогда он устанавливается

по результатам тестирования (авто определение).  Путь определяет маршрут поиска графического драйвера.

   Пример:

USES GRAPH;

Const driver, mode: integer;

Begin

driver:=VGA;      (9)

mode:=VGAH;       (2)

InitGraph(driver, mode, 'e:\TP\BGI');  тип  string.

DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0 до 15:

0- черный                    8 - темно-синий

1- синий                     9 - ярко-синий

2- зеленый                   10 - ярко-зеленый

3- голубой                   11 - ярко-голубой

4- красный                   12 - розовый

5- фиолетовый                13 - малиновый

6- коричневый                14- желтый

7 - светло-серый             15- белый.

Если Х и У вещественные , то их нужно преобразовать к целым координатам (в пределах раздела экрана). Для этого используются функции ROUND или   TRUNC  прямого преобразования к целому значению LineTo(trunc(x),trunc(y));

Также необходимо следить,  чтобы значения не выходили за пределы

экрана (рассчитывайте  коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуля GRAPH

установочные

ClearDevice - Очищает экран и помещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer; Clip: boolean)  - Устанавливает

текущее окно для графического вывода. X1,y1 – координата верхнего левого угла; x2,y2 - координата нижнего правого угла. Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort - Очищает текущее окно;

GetMax X: integer - возвращает максимальную горизонтальную координату

графического экрана;

GetMax Y :integer - возвращает максимальную вертикальную координату

графического экрана;

Get X: integer - возвращает координату Х текущего указателя в окне;

Get Y: integer - возвращает координату Y курсора в окне;

SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль

(0..4), шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);

SetFillStyle(Pattern, Color: word) - Устанавливает образец штриховки и

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) - Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) - Установка цвета фона.

Гpафические примитивы

PutPixel(X,Y: integer; Color: word) - Выводит точку цветом Color с координатой X,Y;

LineTO(X, Y: integer) - Рисует линию от текущего указателя к точке с координатой Х,У;

LineRel(DX, DY: integer) - Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) - Рисует линию от точки (X1,Y1) к точке с

координатой Х2,У2;

MoveTO(X, Y: integer) - Смещает текущий указатель к точке с координатой Х,У;

MoveRel(DX, DY: integer) - Смещает текущий указатель к точке, заданной

приращением координат;

Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник, используя

текущий цвет и тип линии по верхней левой и нижней правой точкам;

Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник, используя установку SetFillStyle;

Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины).

Если Тор=True, то рисуется верхняя грань пеpеллелипипеда;

Circle(X,Y:integer;R:word) - Рисует окружность радиуса R, используя

X,Y как координаты центра;

Fillellipse(X,Y: integer; XR,YR: word) - Рисует защтpихованный эллипс,

используя X,Y как центр и XR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode - Восстанавливает текстовый режим работы экрана;

OutText(Text: string) - Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text: string) - Выводит текст в заданное

место экрана.

Пример программы построения графика функции  у=2+х*х.

program graphik;                         {файл grafikf.pas}

uses graph;           {подключение модуля GRAPF}

var a,b,x,y: integer;  {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b);   {авто определение типа драйвера и видеорежима}

initgraph (a,b,'E:\TP\BGI'); {инициализация графического режима}

setgraphmode(2);   {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона - черный}

setcolor(4);    {основной цвет рисования - красный}

moveTO(100,100);  {смещает курсор}

lineRel(50,50); {вычерчивание линии по приращению от текущего

указателя}

readln; {пауза до нажатия клавиши }

setcolor(2);    {основной цвет рисования - зеленый}

line(100,100,100,50);{рисует линию от т.Х1,У2 до т.Х2,У2}

readln; {пауза до нажатия }

setcolor(5);    {основной цвет рисования - фиолетовый}

putPixel(0,0,12);    {выводит точку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2);  {смещает курсор к точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию от текущего

указателя к точке с координатой Х,У}

end;

readln; {пауза до нажатия ввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'график функции у=2+х*х'); {выводит текст в

заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводит точку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрывает графический режим и восстанавливает текстовый}

end.

Begin

driver:=VGA;      (9)

mode:=VGAH;       (2)

InitGraph(driver, mode, 'e:\TP\BGI');  тип  string.

DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0 до 15:

0- черный                    8 - темно-синий

1- синий                     9 - ярко-синий

2- зеленый                   10 - ярко-зеленый

3- голубой                   11 - ярко-голубой

4- красный                   12 - розовый

5- фиолетовый                13 - малиновый

6- коричневый                14- желтый

7 - светло-серый             15- белый.

Если Х и У вещественные , то их нужно преобразовать к целым координатам (в пределах раздела экрана). Для этого используются функции ROUND или   TRUNC  прямого преобразования к целому значению LineTo(trunc(x),trunc(y));

Также необходимо следить,  чтобы значения не выходили за пределы

экрана (рассчитывайте  коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуля GRAPH

установочные

ClearDevice - Очищает экран и помещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer; Clip: boolean)  - Устанавливает

текущее окно для графического вывода. X1,y1 - координата

верхнего левого угла; x2,y2 - координата нижнего правого угла.

Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort - Очищает текущее окно;

GetMaxX: integer - возвращает максимальную горизонтальную координату

графического экрана;

GetMaxY: integer - возвращает максимальную вертикальную координату

графического экрана;

GetX: integer - возвращает координату Х текущего указателя в окне;

GetY: integer - возвращает координату Y курсора в окне;

SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль

(0..4), шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);

SetFillStyle(Pattern, Color: word) - Устанавливает образец штриховки и

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) - Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) - Установка цвета фона.

Гpафические примитивы

PutPixel(X,Y: integer; Color: word) - Выводит точку цветом Color с координатой X,Y;

LineTO(X,Y: integer) - Рисует линию от текущего указателя к точке с координатой Х,У;

LineRel(DX,DY: integer) - Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) - Рисует линию от точки (X1,Y1) к точке с

координатой Х2,У2;

MoveTO(X,Y: integer) - Смещает текущий указатель к точке с координатой Х,У;

MoveRel(DX,DY: integer) - Смещает текущий указатель к точке, заданной

приращением координат;

Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник, используя

текущий цвет и тип линии по верхней левой и нижней правой точкам;

Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник, используя установку SetFillStyle;

Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины).

Если Тор=True, то рисуется верхняя грань пеpеллелипипеда;

circle(X,Y:integer;R:word) - Рисует окружность радиуса R, используя

X,Y как координаты центра;

Fillellipse(X,Y: integer; XR,YR: word) - Рисует защтpихованный эллипс,

используя X,Y как центр и XR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode - Восстанавливает текстовый режим работы экрана;

OutText(Text: string) - Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text: string) - Выводит текст в заданное

место экрана.

Пример программы построения графика функции  у=2+х*х.

program graphik;                         {файл grafikf.pas}

uses graph;           {подключение модуля GRAPF}

var a,b,x,y: integer;  {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b);   {авто определение типа драйвера и видеорежима}

initgraph(a,b,'E:\TP\BGI'); {инициализация графического режима}

setgraphmode(2);   {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона - черный}

setcolor(4);    {основной цвет рисования - красный}

moveTO(100,100);  {смещает курсор}

lineRel(50,50); {вычерчивание линии по приращению от текущего указателя}

readln; {пауза до нажатия клавиши }

setcolor(2);    {основной цвет рисования - зеленый}

line(100,100,100,50);{рисует линию от т.Х1,У2 до т.Х2,У2}

readln; {пауза до нажатия }

setcolor(5);    {основной цвет рисования - фиолетовый}

putPixel(0,0,12);    {выводит точку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2);  {смещает курсор к точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию от текущего указателя к точке с координатой Х,У}

end;

readln; {пауза до нажатия ввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'график функции у=2+х*х'); {выводит текст в заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводит точку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрывает графический режим и восстанавливает текстовый}

end.

41. Библиотечный модуль CRT. Работа с клавиатурой, экраном, звуковым генератором.

Модуль CRT включает процедуры  и функции,  которые управляют текстовым режимом

работы дисплея.  С помощью подпрограмм модуля можно перемещать  курсор

по экрану  дисплея,  менять цвет выводимых символов и фона,  создавать

окна на экране, управлять звуком, работать с клавиатурой.

Функции управления клавиатурой:

 KeyPressed: Boolean;  - возвращает True, если в текущий момент на клавиатуре  была нажата клавиша, иначе False. Не приостанавливает выполнение программы.  Используется при организации работы циклов.

 ReadKey: Char; - читает и возвращает в программу символ с клавиатуры (без отображения на экране). Приостанавливает исполнение программы до  нажатия на любую клавишу символа.  Используется в операторах IF для проверки символов.

 WhereX: Byte; - возвращает горизонтальную координату текущей позиции курсора относительно окна.

 WhereY: Byte;  - возвращает вертикальную координату текущей позиции курсора относительно окна.

                    Процедуры управления дисплеем

 AssignCrt(Var F: Text); - связывает с файловой переменной устройство CON (клавиатуру для ввода и дисплей для вывода).

 ClrEol; - удаляет все символы справа от курсора до  конца  строки без перемещения курсора.

 ClrScr; - очищает экран (окно на  экране)  и  помещает  курсор  в верхний левый угол.

 Delay(D: word); - приостанавливает работу программы на D миллисекунд.

 GotoXY(X,Y: byte); - перемещает курсор в нужное место экрана  (окна). Левый  верхний угол экрана (окна) имеет координаты (1,1).  Отсчет координат идет слева направо и  сверху  вниз.  Количество  символов  в строке и  самих  строк  зависит  от типа дисплея (обычно 25 строк и 80 символов).

 InsLine; - вставляет пустую строку в позицию курсора.

 HighVideo; - устанавливает высокую яркость символов.

 LowVideo; - устанавливает низкую яркость символов.

 NormVideo; - устанавливает нормальную яркость символов.

 Window(X1,Y1,X2,Y2:byte); - определяет размеры окна на экране для вывода текста. X1,Y1 - координаты левого верхнего угла, X2,Y2 - правого нижнего угла.

 TextBackGround(Color: byte); - устанавливает цвет фона экрана (окна) от 0 (черный) до 15 (белый).

 TextColor(Color: byte); - устанавливает цвет символа.

 TextMode(Mode: word); -   устанавливает  нужный  текстовый  режим:0,1,2...

   Управление звуковым генератором

 Sound(F: word); - включает  звук  генератора,  F  - частота звука в герцах.

 Delay(T: word); - устанавливает продолжительность звучания в миллисекундах.

 NoSound; - выключает звук генератора.

42. Процедурные типы. Параметры-функции. Параметры-процедуры.

Процедурные типы – гибкое средство для передачи функций и процедур в качестве фактических параметров обращения к другим процедурам и функциям.

Type p1=procedure(a, b, c: real; var d: real);

F= function: string;

Любые процедуры или функции, передаваемые в качестве фактических параметров объявляется директивой far.

Стандартные процедуры или функции  ТП могут передаваться рассмотренным образом. В программе могут быть  объявлены переменные процедурных типов.

Var  p1:proc1;

                    F: func2;

                    Ap: array [1..n] of proc1;

Переменные процедурных типов допускается присваивать в качестве значений имена соответствующих подпрограмм=> переменные становятся синонимом имени подпрограммы.

43. Адресный тип. Динамическая память. Адреса и указатели.

Динамическая память – это оперативная память ПК, представляемая программно при её работе , за вычетом сегмента данных 164 Кбайта ,стёка(обычно 16 Кбайт) и собственно тела программы (>200-300 Кбайт)

 Д.п. - это практически единственная возможность обработки массивов данных большой размерности.

Сегмент данных - это непрерывная область оперативной памяти в которой размещаются все переменные, объявленные  в программе.

Д. размещение данных – означает использование Д.П. непосредственно при работе программы.

ОЗУ ПК  представляет собой совокупность ячеек для хранения информации  - байтов, каждый из которых имеет  собственный номер. Эти номера – называются адресами ,позволяющими обращаться к любому байту памяти.

Указатели – гибкое средство управления Д.П.. Это переменная,  которая  в качестве своего значения содержит адрес байта памяти. В ПК адреса задаются сегментами и 16 разрядными смещениями.

Сегмент – это участок памяти имеющий длину 65536(64Кбайта) и начинается с физического адреса , кратного 16.

Смещение – указывает, сколько байт от начала сегмента нужно отступить, чтобы обратиться к нужному адресу. Адресное пространство 1 Мбайт – стандартная память ПК. Для адресации в пределах 1 Мбайта нужно 20 двоичных разрядов, которые получаются из 2-х 16 разрядных слов (сегмента и смещения типа word ) =>содержимое сегмента  смещается на 4 разряда , освободившиеся правые заполняются  нулями.

Структура памяти:  SYS область – КУЧА – SYS область

I^:=2;{в область памяти I заносится 2}

Функции:

ADDR (x) – возвращает результат типа pointer,в котором содержится адрес аргумента,x- любой объект программы  (переменная , процедура, функция)

CSEG-  возвращает значение, хранящееся в регистре CS микропроцессора. Результат в слове типа word.

DSEG - возвращает значение, хранящееся в регистре DS микропроцессора. Результат в слове типа word.

MAXAVAIL-возвращает размер в байтах наибольшего непрерывного участка кучи .MAXAVAIL(LONGINT).

За вызов процедуры NEW или GETMEM нельзя зарезервировать памяти больше, чем значение, возвращаемое этой функцией.

MEMAIAIL(LONGINT)- возвращает размер в байтах общего свободного пространства кучи

OFS(Х)-возвращает значение типа WORD, содержащее смещения адреса указанного объекта.(Х)-выражение любого типа или процедура.

PTR(seg , ofs) - возвращает значение типа POINTER, по заданному  сегменту и смещению

SEG(X) - возвращает значение типа WORD, содержащее сегмент адреса указанного объекта.

SIZEOF(X)- возвращает длину в байтах внутреннего представления указанного объекта.X- имя переменной, функции или типа.

Процедуры:

DISPOSE- возвращает в кучу фрагмент динамической памяти ,который был ранее зарезервирован за типизированным указателем.

DISPOSE(TP) – типизированный указатель

FREEMEM - возвращает в кучу фрагмент динамической памяти ,который был ранее зарезервирован за нетипизированным указателем

FREEMEM(P,SIZE) – P-нетипизированный указатель ,SIZE-длинна освобождающегося размера.

GETMEM(P,SIZE) – резервирует за нетипизированным указателем фрагмент Д,П, требуемого размера(не более 65521)

MARK(PTR) – запоминает текущее значение указателя кучи. PTR- указатель любого типа

NEW - резервирует фрагмент кучи для размещения переменной .

NEW(TP) - тип указатель

RELISE(PTR) – освобождает участок кучи .PTR – указатель любого типа,в котором предварительно было сохранено  процедурой  MARK значение указателя кучи.

Д.П. широко используется для временного запоминания данных при работе с графикой и звуком в ПК.

44. Среда ТП. Основные выполняемые функции. Система меню (работа с файлами, запуск, компиляция, отладка (Debug), работа с окнами).

Меню run

Run- запуск на исполнение

Step over-пошаговое исполнение программы

Trace into- пошаговое исполнение программы только подпрограммы выполняются оператор за оператором

Go to cursor – выполнение до курсора

Program reset- завершение процесса отладки

Parameters- окно для ввода параметров для отладки

Меню compile

Compile- компиляция файла, находящегося в активном окне редактирования.

Make – условная компиляция изменённых модулей в ЕХЕ файл

Build- безусловная компиляция многомодульной программы с созданием ЕХЕ файла

Target…-выбор в окне таргет целевой платформы для приложения

Primary file…-открывает окно для указания главного файла, компилируемой программы.

Меню Debug:

Breakpoints- установка точек условного и безусловного перехода

Call stack – показывает процедуры выполнявшиеся ранее.

Register – информация о регистрах процессора

Watch – окно значений переменных

Output – окно результатов работы программы

User screen – просмотр результатов включая графику

Evaluate/ modify.. – окно изменения значений выражений

Add watch – окно значений и переменных вовремя отладки

Add breakpoint.. – окно установки точек прерывания программы 

45. Модульное программирование. Оформление модуля в ТП.

Модульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняется определенным правилам.

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

Использование модулей – прекрасный инструмент для разработки библиотек прикладных программ  и мощное средство модульного программирования.

ТП размещает программный код модулей в отдельном сегменте памяти.

Структура модулей:

UNIT<имя> -зарезервированное слово (единица), начинает заголовок модуля

INTERFACE<интерфейсная часть> - начинает интерфейсную часть

IMPLIMENTAITION<исполняемая часть>

BEGIN <инициируемая часть>END.

Модуль состоит из заголовка и трёх частей, любая из которых может быть пуста.

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

 Имя модуля должно совпадать с именем файла, в котором находится исходный текст модуля (исходник). Имя модуля служит  для связи с др. модулями и  основной программой. Связь устанавливается спец. объявлением:

USES<имя вспомогательного модуля > - список связываемых модулей.

Интерфейсная часть –содержит объявление всех глобальных объектов модуля (типов, констант, переменных и программ), которые должны доступными основной программе или другим модулям. В интерфейсной части указываются только их заголовки. Объявление подпрограмм в интерфейсной части авто компилируется с использованием дальней модели памяти {far и near}, что обеспечивает доступ к подпрограмме из основной программы и др. модулей.Const, var  объявленные в интерфейсной части модуля , как и глобальные константы и переменные помещаются в общий сегмент данных(max 65536 байт).

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

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

Стандартные модели:

SYSTEM,DOS,CRT,GRAPH,PRINTER,OVERLAY,TURBO3,GRARH3


Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.