- •Оглавление
- •Тема1 41
- •Тема 2 Условный оператор, оператор выбора 41
- •Тема 4. Строки и символы 43
- •Предисловие
- •1 Основы построения программы на языке Турбо-Паскаль
- •1.1 Алфавит языка и специфика его использования
- •1.2 Этапы решения задачи на эвм
- •1.3 Общая структура программы на языке Паскаль
- •1.4 Выражения
- •1.4.1 Арифметические выражения
- •1.4.2 Логические выражения
- •1.5 Стандартные функции
- •2 Типы данных
- •2.1 Стандартные типы данных
- •2.1.1 Целочисленные типы
- •2.1.2 Логический тип (булевый тип).
- •2.1.3 Символьный тип
- •2.1.4 Перечисляемый тип
- •2.1.5 Интервальный тип
- •2.1.6 Вещественный тип
- •2.2 Объявление констант
- •2.3 Объявление переменных
- •3 Алгоритмизация вычислительных процессов
- •3.1. Понятие алгоритма
- •3.2 Операторы для записи линейных процессов
- •3.2.1 Оператор присваивания
- •3.2.2 Оператор ввода числовых данных
- •3.2.3 Оператор вывода числовых данных
- •3.2.4 Вывод числовых данных с форматом
- •4 Разветвляющиеся вычислительные процессы
- •4.1 Типы разветвляющихся алгоритмов
- •4.2 Операторы перехода
- •4.2.1 Условный оператор
- •4.2.3 Оператор выбора
- •4.2.4 Метка. Оператор перехода
- •5 Итерационные циклические процессы
- •5.1 Типы циклических процессов
- •5.2 Итерационные циклические процессы
- •5.2.1 Оператор цикла с предварительным условием
- •5.2.2 Оператор цикла с последующим условием
- •5.3 Оператор цикла с параметром
- •6 Структурированные типы данных
- •6.1 Массивы
- •6.2 Записи
- •6.2.1 Оператор присоединения
- •6.3 Множества
- •6.4 Строки
- •6.4.1 Основные операции
- •7 Подпрограммы
- •7.1 Процедуры
- •7.2 Функции
- •8 Работа с файлами
- •8.1 Инициация файла
- •8.2 Процедуры и функции для работы с файлами
- •8.3 Текстовые файлы
- •8.4 Типизированные файлы
- •8.5 Нетипизированные файлы
- •9 Указатели и динамическая память
- •9.1 Выделение и освобождение динамической памяти
- •10 Модули
- •10.1 Компиляция модулей
- •10.2 Стандартные модули
- •10.2.1 Модуль crt
- •10.2.2 Модуль Graph
- •10.2.3 Модуль Overlay
- •Индивидуальные задания
- •Тема 2 Условный оператор, оператор выбора
- •Тема 3.
- •Задание в - обработка числовых последовательностей
- •Тема 4. Строки и символы
- •Тема 5. Массивы
- •Тема 6. Файлы
- •Тестовые задания
- •Электронные образовательные интернет-ресурсы Дистанционные курсы
- •Электронные учебники
10.2.2 Модуль Graph
Содержит обширный набор типов, констант, процедур и функций для управления графическим режимом работы программы. С помощью подпрограмм, входящих в модуль, можно создавать разнообразные графические изображения и выводить на экран текстовые надписи различными шрифтами.
Для подключения модуля Graph, как и любого другого модуля, необходимо внести его имя в предложении USES. Однако этого недостаточно для того, чтобы перейти в графический режим. Инициализация графического режима работы осуществляется процедурой
INITGraph (A,B: Integer;C:String)
где переменная А определяет тип графического драйвера, В задает режим работы адаптера, С содержит имя файла драйвера и, возможно, полный путь до него.
Тип драйвера должен соответствовать типу адаптера. В настоящее время используется в основном тип VGA, соответствующий цифре 9, однако, если вы не уверены, что правильно установили тип адаптера, можете воспользоваться режимом автоопределения типа – Detect. Третий параметр может быть пустым, но только в том случае, если файл драйвера находится в текущем каталоге. Для VGA-адаптера необходим файл EGAVGA.BGI.
Uses Graph;
Var A, B : Integer;
Begin
A := detect;
InitGraph (A,B,’C:\TP7\BGI’);
……………..
End.
Подпрограммы Graph позволяют адресоваться к любому пикселю графического экрана и управлять его светимостью. Для указания пикселя используется следующая система координат: верхний левый угол графического экрана имеет координаты 0,0; горизонтальная координата Х увеличивается слева направо, вертикальная координата У – сверху вниз. Например, в режиме 640х480 (адаптер VGA) правый нижний угол экрана имеет координаты 639х479, а центр экрана – координаты 319х239.
В модуле имеется несколько процедур для рисования элементарных графических фигур - точек, линий, окружностей, прямоугольников, дуг и т.п. При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями.
Процедура SetViewPort создает на экране графическое окно. Если окно определено, весь дальнейший графический вывод осуществляется относительно координат этого окна и отсекается его границами.
В модуле имеются средства хранения и выдачи изображений, работы с несколькими графическими страницами, установки необходимых цветов.
10.2.3 Модуль Overlay
Он необходим при разработке больших программ с перекрытиями. Максимальный размер модуля не может превышать 64 кб, однако количество модулей не ограничено, что дает возможность разрабатывать очень крупные программы. И все же в некоторых случаях и этот объем может оказаться недостаточным. С помощью оверлея можно создавать программы практически неограниченной длины.
Оверлей – это такой способ использования оперативной памяти, при котором в один и тот же участок памяти (оверлейный буфер) попеременно по мере надобности загружаются различные оверлейные модули. При этом все оверлейные модули хранятся на диске, а в оперативной памяти в каждый момент времени находится лишь один активный модуль и, возможно, несколько неактивных. При исполнении оверлейной программы в память загружается главная часть и один из модулей, например, модуль А. Если в процессе исполнения программы встретится обращение к модулю В, то с диска в оверлейный модуль будет загружен этот модуль (модуль А при этом частично разрушается), после чего программа продолжит свою работу.
Таким образом объем оперативной памяти, занимаемый оверлейной программой, определяется длиной ее главной части и наибольшего из перекрывающихся модулей. Однако оверлейная программа обладает меньшей скоростью работы, т.к. на каждую загрузку оверлейного модуля с диска в оверлейный буфер требуется дополнительное время.
Алгоритм создания оверлейных программ:
Выделить главную часть программы и разбить оставшуюся часть на несколько модулей.
В главной части программы указать с помощью директив компилятора {$O <имя>} те модули, которые будут оверлейными.
Program Over;
Uses DOS, Overlay, UnitA, UnitB;
{$O UnitA}
{$O UnitB}
{$O DOS}
Прим: из всех стандартных модулей только модуль DOS может быть оверлейным.
Осуществить вызов процедуры инициализации оверлея OVRINIT перед первым обращением к оверлейному модулю.
В начале главной программы и каждого оверлейного модуля поместить директивы компилятора {$O+} {$F+} (разрешить создание оверлейной структуры и использовать дальнюю модель вызова), после чего откомпилировать программу на диск.