- •Программирование на языке паскаль Учебное пособие
- •1. Общая характеристика языков программирования
- •1.1. Языки программирования
- •1.2. Трансляторы
- •1.3. История создания языков
- •1.4. Базовые структуры языков программирования
- •Контрольные вопросы
- •2. Описание языка паскаль
- •2.1. Основные объекты языка
- •2.2. Структура Паскаль-программы
- •2.3. Типизация данных
- •2.4. Объявление данных
- •Контрольные вопросы
- •3. Простые операторы. Ввод/вывод данных
- •3.1. Оператор присваивания и выражения
- •3.2. Операторы вызова процедур. Ввод/вывод данных
- •3.2.1. Процедуры ввода read и readln
- •Общая форма записи оператора
- •3.2.2. Процедуры вывода write и writeln
- •Контрольные вопросы
- •Каково назначение процедуры writeln без параметров? Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4. Структурные операторы. Организация ветвлений и циклов
- •4.1. Составной и пустой операторы
- •4.2. Организация ветвлений. Операторы выбора
- •4.2.1. Оператор ветвления if
- •4.2.2. Оператор варианта case
- •Общая форма записи
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4.3. Организация циклов. Операторы повторения
- •4.3.1. Оператор while
- •4.3.2. Оператор repeat
- •4.3.3. Оператор for
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •5. Организация подпрограмм. Процедуры и функции
- •5.1. Процедуры и их типизация
- •5.1.1. Встроенные процедуры
- •5.1.2. Процедуры пользователя
- •5.1.3. Процедуры без параметров
- •5.1.4. Фактические и формальные параметры
- •5.1.5. Локальные и глобальные переменные
- •5.1.6. Процедуры с параметрами-значениями
- •5.1.7. Процедуры с параметрами-переменными
- •5.1.8. Комбинированные процедуры
- •5.2. Функции пользователя. Рекурсивные функции
- •5.2.1. Определение функции
- •О бщая форма записи заголовка функции
- •5.2.2. Функции пользователя
- •5.2.3. Рекурсивные функции
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •6. Массивы. Данные типа array
- •Одномерные массивы
- •Общая форма записи
- •Общая форма записи
- •6.2. Многомерные массивы
- •6.3. Способы работы с массивами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •Обработка литерных величин. Данные типа char и string
- •7.1. Тип данных char
- •Работа программы
- •7.2. Массивы литер
- •7.3. Тип данных string
- •7.4. Строковые функции и процедуры
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •8. Множества. Данные типа set
- •О бщий вид регулярного типа
- •8.1. Определение типа set
- •8.2. Операции над множествами
- •8.2.1. Принадлежность множеству
- •8.2.2. Сравнение множеств
- •8.2.3. Действия над множествами
- •8.3. Вывод множеств
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •9. Комбинированный тип. Данные типа record
- •9.1. Оператор типа record
- •9.2. Оператор with
- •9.3. Записи с вариантами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •10. Файловый тип
- •10.1. Определение и описание типизированного файла
- •Общая форма записи
- •10.2. Типы файлов. Процедура работы с файлами
- •10.3. Основные приемы работы с файлами
- •10.4. Текстовые файлы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Типизированные файлы
- •Текстовые файлы
- •Программирование графики
- •Основные понятия компьютерной графики
- •Формирование изображения на экране
- •Инициализация графического режима
- •Простейшие графические операторы (процедуры)
- •Основные приемы работы с графикой
- •Работа с цветом
- •Заполнение (закрашивание) произвольной замкнутой фигуры
- •Построение простейших геометрических фигур
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Библиографический список
Простейшие графические операторы (процедуры)
языка TurboPascal
Графические операторы языка Паскаль основаны на операторах вызова процедур (c параметрами и без параметров) модуля GRAPH, и все они делятся, в зависимости от их функционала, на следующие группы:
Работа с экраном.
Установка цвета.
Рисование графических примитивов (изображений).
Работа с текстом.
Организация анимаций.
Рассмотрим в порядке следования указанных действий наиболее распространенные процедуры и функции системы программирования TurboPascal 7.0.
procedure InitGRAPH (dvar, mvar, path)
Инициализирует графический режим работы дисплея.
procedure ClearViewport
Очищает экран монитора от имеющихся на нем ранее построенных изображений.
procedure MoveTo (X, Y)
Перемещает текущий указатель (CP) в точку с координатами X,Y. Например, процедура MoveTo (200,100) переместит текущий (невидимый) указатель в точку экрана с координатами (200, 100).
procedure CloseGRAPH
Закрывает графический режим работы монитора (переход в символьный режим).
procedure SetColor (Цвет: word)
Устанавливает основной цвет, которым будет осуществляться рисование изображений. Цвет задается либо своим английским названием, либо его числовым кодом.
procedure SetBkColor (Цвет: word)
Устанавливает цвет фона, на котором рисуется изображение, при этом надо помнить о том, что совпадение цветов фона и цвета изображения приводит к. невидимости на экране этого изображения.
procedure SetFillStyle ( Шаблон: word, Цвет: word )
Устанавливает шаблон заполнения и цвет. "Шаблон" (шаблон заполнения) может принимать значения от 1 до 12, например: 0 - заполнение цветом фона, 1 - заполнение текущим цветом.
procedure FloodFill (X, Y: integer, Граница: word)
Заполняет область ограниченную цветом "Граница", используя для этого текущий шаблон и цвет заполнения. Здесь X,Y задают координаты любой точки, расположенной внутри закрашиваемой области.
procedure PutPiXel (X, Y, Цвет)
Рисует точку (пиксел) с координатами X,Y.
procedure Line (X, Y, X1, Y1: integer)
Рисует прямую линию от точки с координатами X,Y к точке X1,Y1.
procedure LineTo (X, Y: integer)
Рисует прямую линию из точки, в которой находится текущий указатель, в точку с координатами (X,Y).
procedure LineRel (DX, DY: integer)
Рисует прямую линию из точки (X, Y), в которой находится текущий указатель, в точку с координатами (X+DX,Y+DY).
procedure Rectangle (X, Y, X1, Y1: integer)
Рисует прямоугольник, где: (X,Y)-координаты верхнего левого угла, (X1,Y1) - координаты правого нижнего угла прямоугольника (координаты главной диагонали).
А(X,Y)
B(X1,Y1)
procedure Bar (X1, Y1, X2, Y2: integer)
Рисует полосу, используя текущий цвет и стиль. Иногда эту процедуру называют рисованием закрашенного прямоугольника.
А(X1,Y1)
B(X2,Y2)
procedure Circle (X, Y, radius: integer)
Рисует окружность указанного радиуса с центром в точке (X,Y).
procedure Arc (X, Y: integer; Angle1, Angl2, R: word)
Вычерчивает дугу окружности от начального угла Angle1 до конечного угла Angle2 с радиусом R. Точка (X, Y) используется как центр соответствующей дуге окружности.
procedure Ellipse (X, Y: integer; Angle1, Angl2, RX, RY: word)
Вычерчивает дугу эллипса от начального угла Angle1 до конечного угла Angle2 с радиусом R. Точка (X, Y) используется как центр соответствующего дуге эллипса, а RX, RY – горизонтальная и вертикальная оси.
procedure FillEllipse (X, Y: integer; RX, RY: word)
Вычерчивает закрашенный эллипс. Точка (X, Y) используется как центр эллипса, а RX, RY задают его горизонтальную и вертикальную оси.
procedure Sector (X, Y: integer; Angle1, Angl2, RX, RY: word)
Вычерчивает и заполняет эллиптический сектор.
procedure OutText (TextString: String)
Выводит на экран строку (текст) в то место, в котором находится текущий указатель.
procedure OutTextXY (X, Y: integer; TextString: String)
Выводит на экран строку (текст) в точку (X, Y).
function ImageSize (X1, Y1, X2, Y2: integer): word
Возвращает (запоминает в буфере обмена) число байт прямоугольной области экрана (X1, Y1) – (X2, Y2), внутри которой находится изображение. Эта функция необходима для функции GetImage, которая сохраняет двоичный образ заданной области экрана в динамической памяти компьютера.
-
(X2, Y2)
function GetMem (BitMap:pointer; Size: word)
Выделяет место в динамической памяти под хранение фрагмента изображения. Здесь BitMap - переменная типа pointer хранит ссылку на начало «кучи», где будет храниться фрагмент, а Size - размер фрагмента, полученный с помощью ImageSize.
procedure PutImage (X, Y: integer; var BitMap: pointer; Mode: word)
Возвращает образ фрагмента из памяти на экран монитора, где X, Y - координаты точки экрана (левый верхний угол прямоугольника), начиная с которой будет выводиться фрагмент Параметр Mode определяет, какой двоичный оператор будет использоваться для вывода двоичного образа области на экран. Например, PutImage (X, Y, BitMap, NormalPut);
procedure GetImage (X1, Y1, X2, Y2: integer; var BitMap: pointer)
Сохраняет образ фрагмента в динамической памяти, где X1, Y1, X2, Y2 - координаты фрагмента, а BitMap - нетипизированная ссылка.