- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •1. Среда программирования turbo pascal 7.0
- •1.1. Структура меню среды
- •1.2. Правила оформления программ
- •1.3. Команды редактора тп
- •Команды удаления и вставки
- •1.4. Компиляция и исправление синтаксических ошибок
- •2. Элементы языка pascal
- •2.1. Алфавит языка
- •2.2. Константы. Идентификаторы
- •2.3. Операторы
- •2.3.1. Оператор присваивания
- •2.3.2. Оператор безусловного перехода
- •Стандартные функции
- •2.3.3. Условный оператор if
- •2.3.4. Опеpатоp варианта case
- •2.3.5. Составной и пустой операторы
- •2.3.6. Операторы цикла
- •2.4. Процедуры прерываний
- •2.5. Типизированные константы
- •2.6. Структура программы
- •2.7. Подпрограммы
- •2.7.1. Определение процедур и функций
- •2.7.2. Вложенные подпрограммы
- •2.7.3. Вызов подпрограмм
- •2.7.4. Процедуры
- •2.7.5. Функции
- •2.7.6. Передача в подпрограмму параметров-массивов и параметров-строк
- •2.7.7. Рекурсия
- •2.8. Типы в Турбо Паскале
- •2.8.1. Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •2.8.2. Логический тип
- •2.8.3. Символьный тип
- •Служебные символы
- •2.8.4. Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Процедуры преобразования
- •2.8.5. Перечислимый тип
- •2.8.6. Ограниченный тип (диапазон)
- •2.8.7. Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •2.8.8. Структурированные типы данных. Массивы
- •2.8.9. Множества
- •2.8.10. Записи
- •2.9. Изменение типа выражения
- •2.10. Процедурные типы
- •2.11. Файлы
- •Общие процедуры и функции для работы с файлами
- •2.11.1. Текстовые файлы
- •2.11.2. Типизированные файлы
- •2.11.3. Нетипизированные файлы
- •2.12. Указатели и динамическая память
- •2.13. Модули
- •2.14. Библиотека Турбо Паскаля
- •2.14.1. Модуль crt
- •2.14.2. Модуль graph
- •Var driver, Mode: integer переменные драйвера и режима.
- •Управление графическим режимом
- •Управление экраном, окном, страницей
- •Управление цветом и палитрой
- •Работа с точками
- •Работа с линиями
- •Построение фигур из линий
- •Построение криволинейных фигур
- •Работа с текстом
- •Обмен с памятью
- •2.15. Динамические структуры данных
- •2.15.1. Связанные динамические данные. Списки
- •Чтобы сослаться на двунаправленный кольцевой список как на единый программный объект, используется указатель, значением которого является ссылка на заглавное звено списка.
- •2.15.2 Очередь
- •2.15.3. Стек
- •3. Практическое программирование Этапы подготовки и решения задач на компьютере
- •Порядок выполнения лабораторных работ
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7
- •Лабораторная работа 8 Программирование с использованием функций
- •Лабораторная работа 9 Программирование с использованием процедур
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Лабораторная работа 11 Файлы
- •Лабораторная работа 12 Записи
- •Лабораторная работа 13 Решение нелинейных уравнений
- •Задание (программа_13)
- •Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
- •Лабораторная работа 15 Модульное программирование
- •Лабораторная работа 16 Графика
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Зарезервированные слова Turbo Pascal 7.0
- •Приложение в
- •Кодировка символов в соответствии с кодами ascii
- •Приложение г
- •Альтернативная кодировка госТа для кодов 128...255
- •Клавиши с кодами из двух частей
- •Содержание
2.14.2. Модуль graph
Модуль Graph содержит типы, константы, переменные и подпрограммы, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: EGA, VGA, SVGA и т.д. Содержит 78 процедур и функций (как базовых для рисования точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (для многоугольников, секторов, дуг, вывода текста, закрашивания фигур и т.д.).
Для запуска программы с использованием модуля GRAPH необходимо, чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.
В начале программы модуль GRAPH должен быть подключен строкой
USES GRAPH;
далее описываются метки и переменные программы, в частности
Var driver, Mode: integer переменные драйвера и режима.
В основном блоке программы инициализируется графический режим работы процедурой
InitGraph(<тип драйвера>,<видеорежим>: integer;
<путь к графическому драйверу>: string);
Тип драйвера допускается указывать равным нулю, тогда он устанавливается по результатам тестирования (автоопределение). Путь определяет маршрут поиска графического драйвера, описываемый строковым типом. Структура программы, работающей в графическом режиме, имеет вид
USES GRAPH;
VAR driver, mode: integer;
Begin
DetectGraph(var Driver, Mode); {возвращает тип драйвера и текущий
режим его работы (0<Driver<10, 0<Mode<5)}
InitGraph(driver, mode, 'E:\BP\BGI');
. . . {текст программы}
CloseGraph; {закрывает графический режим}
End.
Графическая информация на экране дисплея отражается совокупностью светящихся точек - пикселей. Возможные режимы по вертикали: 0 - 200 пикселей (4 страницы), 1 350 пикселей (2 страницы), 2 480 пикселей (1 страница). Так в графическом режиме 2 координаты верхнего левого угла (0,0), нижнего правого угла (639,479), центра (319,239).
В Турбо Паскале используются следующие основные цвета:
0 черный, |
6 коричневый, |
|
1 синий, |
7 светло-серый, |
12 розовый, |
2 зеленый, |
8 темно-серый, |
13 светло-фиолетовый, |
3 голубой, |
9 светло-синий, |
14 желтый, |
4 красный, |
10 светло-зеленый, |
15 белый, |
5 фиолетовый, |
11 светло-голубой, |
128 – мерцание. |
Модуль GRAPH включает помимо рассмотренных следующие процедуры и функции.
Управление графическим режимом
GetDriverName: string; возвращает имя текущего драйвера.
GetGraphMode: Integer; возвращает номер текущего графического режима.
GetMaxMode: Integer; возвращает количество возможных режимов текущего драйвера.
GetModeName(ModeNumber: Integer): string; возвращает имя графического режима по его номеру ModeNumber.
GetModeRange(GraphDriver:Integer; var LoMode, HiMode:Integer); возвращает минимальный и максимальный номера графических режимов драйвера, где GraphDriver код драйвера, LoMode, HiMode номера соответственно мини- мального и максимального режимов.
GraphDefaults; восстанавливает исходные параметры графического режима.
GraphErrorMsg(ErrorCode: Integer): string; возвращает сообщение об ошибке для заданного кода ошибки ErrorCode.
GraphResult: Integer; возвращает код ошибки последней графической операции.
InstallUserDriver(Name: string; AutoDetectPtr: pointer): integer; размещает драйвер в таблице BGI-драйверов. Name имя драйвера, AutoDetectPtr адрес.
InstallUserFont(FontFileName: string): Integer; устанавливает новый шрифт из файла FontFileName (шрифт следует предварительно зарегистрировать).
RegisterBGIdriver(driver: pointer): Integer; регистрирует графический драйвер Driver и возвращает значение меньше 0, если инициализация не выполнена. Выполняется до InitGraph.
RegisterBGIfont(Font: pointer): Integer; регистрирует загруженный в память шрифт Font и возвращает число меньше 0, если регистрация не возможна.
RestorCRTMode; восстанавливает текстовый режим работы.
SetGraphBufSize(BufSize: Word); изменяет размер графического буфера, используемого для сканирования и заполнения фигур (по умолчанию размер буфера равен 4 Кб).
SetGraphMode(Mode:integer); устанавливает новый графический режим, исходные значения текущего указателя курсора, палитры, цвета и т. д., очищает экран.