- •Цель работы
- •Краткая теоретическая справка
- •2.1 Среда Turbo Pascal
- •2.2 Текстовый редактор среды Турбо Паскаля
- •2.3 Словарь языка Turbo Pascal
- •2.4 Структура программы на языке Turbo Pascal
- •2.5 Операторы ввода-вывода
- •Read ([ф.П.], сп. Ввода); или read (сп. Ввода); и readln ([ф.П.], сп. Ввода); или readln (сп. Ввода); или readln;.
- •Write ([ф.П.], сп. Вывода); или write (сп. Вывода); и writeln ([ф.П.], сп. Вывода); или writeln (сп. Вывода); или writeln;.
- •Порядок выполнения работы
- •Второй блок выводимой на экран информации:
- •Третий блок выводимой на экран информации:
- •Четвёртый блок выводимой на экран информации:
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Организация цикла с предусловием
- •2.2 Организация цикла с постусловием
- •2.3 Организация цикла с параметром
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Процедуры
- •Procedure имя_процедуры;
- •2.2 Функции
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •Методы численного интегрирования
- •2.1.1 Метод прямоугольников
- •2.1.2 Метод трапеций
- •2.1.3 Метод Симпсона
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Понятие массивов, описание массивов в Turbo Pascal
- •А) с использованием разделов типа и переменных:
- •Б) с использованием только раздела переменных:
- •А) разделов типа и переменных в виде
- •Б) только раздела переменных в виде
- •2.2 Действия над массивами
- •2.3 Ввод данных в массивы
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Понятия динамических переменных
- •2.2 Ссылочный тип данных и адресация
- •2.3 Создание и удаление динамических переменных
- •2.4 Динамические массивы
- •Пример 1.
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Строковый тип данных
- •#7'Допущена ошибка !'#13'Нажмите клавишу ввода "Enter"',
- •2.2 Операции над строками
- •Concat ('abc', 'def');
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Понятие файла
- •2.2 Взаимодействие программ с файлами
- •2.3 Инициализация файла
- •2.4 Процедуры и функции для работы с файлами
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Модуль Graph
- •InitGraph (var Driver, Mode: integer; Path: string);
- •2.2 Вывод точек
- •2.3 Вывод отрезков прямых линий
- •SetLineStyle (Type, Pattern, Thickness);
- •2.4 Вывод прямоугольников и многоугольников
- •2.5 Вывод окружностей, эллипсов и их дуг
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
- •1 Цель работы
- •2 Краткая теоретическая справка
- •2.1 Особенности вывода текста в графическом режиме
- •2.2 Стандартные средства Graph, обеспечивающие вывод текста
- •2.3 Шрифты
- •2.4 Вывод функциональных зависимостей
- •(* Определение начальных b конечных координат графика *)
- •(* Блок вычисления и рисования синусоидальной функции.
- •(* Получение номера ошибки, если инициализация режима не произошла *)
- •(* Блок вычисления и рисования синусоиды *)
- •(* Рисование синусоиды с помощью процедуры DrawPoly)
- •3 Порядок выполнения работы
- •4 Содержание отчета
- •5 Варианты заданий
- •6 Контрольные вопросы
6 Контрольные вопросы
Укажите назначение модуля Graph.
Каким образом в среде Turbo Pascal подключается модуль Graph?
В состав какого файла входит модуль Graph?
При помощи каких процедур выполняется инициализация графического режима?
Где расположено начало координат при работе дисплея в графическом режиме?
Что выполняет процедура ClearDevice?
При помощи какой процедуры выполняется завершение работы в графическом режиме?
Укажите функции возвращающие размеры экрана по вертикали и горизонтали.
Укажите процедуру осуществляющую вывод точки заданного цвета.
Укажите процедуру осуществляющую вывод отрезка прямой.
Укажите процедуру осуществляющую определение цвета вывода элементов.
Рекомендуемая литература
Степанов А.Н. Информатика. Базовый курс. Учебник для ВУЗов. - Издательство "Питер", 2007. – 768с.
Острейковский, В.А. Информатика : учебник для вузов / В.А.Острейковский .— 3-е изд.,стер. — М. : Высш.шк., 2005 .— 511с. : ил. — Библиогр.в конце кн. — ISBN 5-06-003533-6 /в пер./ : 128.74.
ЛАБОРАТОРНАЯ РАБОТА 19
Графический режим в Turbo Pascal: вывод графических зависимостей (6 часов)
1 Цель работы
Изучение особенностей вывода текста в графическом режиме в среде Turbo Pascal, ознакомление со шрифтами среды и встроенными возможностями управлениями ими. Приобретение практических навыков написания и отладки программ в среде Turbo Pascal для построения функциональных зависимостей.
2 Краткая теоретическая справка
2.1 Особенности вывода текста в графическом режиме
При программировании графического вывода, а в частности графических зависимостей, весьма часто возникает проблема вывода текста. Чтобы иметь возможность вывода текстовой информации, среда Turbo Pascal поддерживает работу со шрифтами.
Шрифты представляют собой наборы символов однотипного начертания, называемого гарнитурой. Большинство шрифтов включают в себя прописные и строчные буквы, цифры, знаки препинания, а также некоторые дополнительные символы. Многие типы шрифтов образуют семейства, включающие различные размеры, которые называют кеглем, стили начертания (полужирный, наклонный или курсив и др.) и эффекты (подчёркивание, цвет символов и подчёркивания, верхние и нижние индексы и др.).
С точки зрения программиста по способу хранения информации о типе начертания символов шрифты делят на растровые и векторные.
Растровый символ задаётся с помощью матрицы элементов своего изображения. Матрица имеет размер 8х8 пикселей. Для отображения с большим кеглем битовую матрицу умножают на масштабный коэффициент. Когда этот коэффициент становится достаточно большим, то разрешение символов становится грубым и оказывается неприемлемым.
Векторный шрифт задаётся набором штрихов (векторов), которые указывают графической системе способ рисования символа. В этом случае при возрастании кегля (увеличении размеров символов шрифта) разрешение и качество изображения остаются хорошими.
2.2 Стандартные средства Graph, обеспечивающие вывод текста
Рассмотрим стандартные средства Graph, обеспечивающие вывод текста.
Процедура OutText (Txt: string); выводит текстовую строку Txt с текущего положения указателя.
При горизонтальном направлении вывода указатель смещается в конец выведенного текста, при вертикальном – не меняет своего положения. Строка Txt выводится в соответствии с установленном стилем и выравниванием. Если текст выходит за границы экрана, то при использовании векторных шрифтов он отсекается, а в случае стандартного матричного шрифта не выводится.
Процедура OutTextXY (X, Y: integer; Txt: string); отличается от процедуры OutText тем, что выводит текстовую строку Txt с заданного места, указанного графическими координатами X и Y.
Процедура SetTextStyle (Font, Direct, Size: word); устанавливает стиль текстового вывода на графический экран.
Здесь Font – тип шрифта, заданный его номером (кодом), Direct – код направления, Size – код размера (кегля) шрифта.
Тип шрифта может быть задан именами или значениями констант управления шрифтом модуля Graph:
Имя константы |
Код (номер) |
Файл |
Содержание константы |
DefaultFont |
0 |
– |
точечный (матричный) шрифт 8х8 |
TriplexFont |
1 |
trip.chr |
утроенный шрифт |
SmallFont |
2 |
litt.chr |
уменьшенный шрифт |
SansSeriFont |
3 |
sans.chr |
прямой шрифт |
GothicFont |
4 |
goth.chr |
готический шрифт |
– |
5 |
scri.chr |
"рукописный" шрифт |
– |
6 |
simp.chr |
одноштриховый шрифт типа Courier |
– |
7 |
tscr.chr |
наклонный шрифт типа Times Italic |
– |
8 |
lcom.chr |
шрифт типа Times Roman |
– |
9 |
euro.chr |
шрифт типа Courier увеличенного размера |
– |
10 |
bold.chr |
крупный двухштриховый шрифт |
Первые 5 констант определяют все шрифты для версий Паскаля 4.0 - 6.0. Для версии Turbo Pascal 7.0 и выше набор шрифтов был расширен и для него определены все 11 шрифтов.
Направление текста Direct задают именами или значениями констант:
const
HorizDir = 0; – направление текста слева направо,
VertDir = 1; – направление текста снизу вверх.
Размер любого шрифта может изменяться в 10 раз. Поэтому переменная Size может принимать значения от 1 до 10.
Так как процедуры OutText и OutTextXY в стандартном режиме способны выводить текст только слева направо, то направление вывода текста задают, вызвав предварительно процедуру SetTextStyle и задав в ней нужное направление вывода текста.
Процедура SetTextJustify (Horiz, Vert: word); задаёт горизонтальное Horiz и вертикальное Vert выравнивание выводимого текста по отношению к текущему положению указателя или к заданным координатам.
Выравнивание определяет: левее, правее, выше или ниже относительно текущего положения указателя или по центру будет размещаться выводимый текст. Указание выравнивания задают с помощью констант:
const
LeftText = 0; – указатель будет расположен слева от текста,
CenterText = 1; – текст будет расположен симметрично (слева и справа, сверху и снизу) относительно положения указателя,
RightText = 2; – указатель будет расположен справа от текста,
BottomText = 3; – указатель будет расположен снизу от текста,
TopText = 4; – указатель будет расположен сверху от текста.
Процедура SetUserCharSize (x1, x2, y1, y2: word); изменяет размер выводимых символов в соответствии с заданными пропорциями: x1/x2, y1/y2.
Процедура применяется только по отношению к векторным шрифтам. Для задания масштабного коэффициента необходимо задать численные значения переменным x1, x2, y1 и y2. Например, если x1 = 2, а x2 = 1, то ширина символов станет в два раза больше.
Чтобы отменить действие процедуры SetUserCharSize, следует после исчезновения надобности в ней обратиться к процедуре SetTextStyle, устанавливающей стандартные размеры символов.
Процедура GetTextSettings (var TextUnfo : TextSettingsType); возвращает текущий стиль и выравнивание текста.
Функция TextWidth (Txt: string); возвращает длину выводимой текстовой строки в пикселах. При этом учитываются текущий стиль вывода и коэффициенты изменения размеров символов, заданные процедурами SetTextStyle и SetUserCharSize соответственно.
Функция TextHeight (Txt : string): word; возвращает высоту шрифта в пикселах.
Функция InstallUserFont (FileName : string): integer; позволяет программе использовать нестандартный векторный шрифт. Функция позволяет расширить набор шрифтов, указанный ранее в таблице.
Здесь FileName – имя файла, содержащего векторный шрифт. Этот файл должен строиться по специальным правилам.
Функция InstallUserDriver (FileName: string; AutoDetectPtr: pointer): integer; включает нестандартный графический драйвер в систему BGI-драйверов. Эта функция предназначена в основном для разработчиков аппаратных средств и позволяет расширить набор стандартных графических драйверов.
Здесь FileName – имя файла, содержащего программу драйвера, AutoDetectPtr – адрес точки входа в специальную процедуру автоопределения типа дисплея, которая в числе прочих процедур должна входить в состав драйвера.
