RSS    

   Вопросы и ответы к экзаменам В-1 - (шпаргалка)

p>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, 4, 5, 6


Новости


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

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

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.