Основы языка программирования Turbo Pascal
Понятие и история развития языка Turbo Pascal, оценка его графических возможностей и особенностей. Инициализация графического режима. Управление экраном и окнами, цветом и фоном, принципы работы с текстом. Построение графиков функций и изображений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.12.2014 |
Размер файла | 159,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Введение
Различие между текстовым и графическим режимами работы монитора заключается в возможностях управления выводом визуальной информации. В текстовом режиме минимальным объектом, отображаемым на экране, является символ, алфавитно-цифровой или какой-либо иной. В обычных условиях экран монитора, работающего в режиме алфавитно-цифрового дисплея, может содержать не более 80 символов по горизонтали и 25 символов по вертикали, то есть всего 2000 визуальных объектов. При этом имеются ограниченные возможности по управлению цветом символов. Конечно, в таком режиме можно выводить на экран не только обычный текст, но и некоторые графические изображения, но понятно, что качество таких изображений будет не то что нужно.
В графическом режиме минимальным объектом, выводом которого может управлять программист, является так называемый пиксель (от английского Pixel, возникшего в результате объединения слов «рисунок» (picture) и «элемент» (element)). Пиксель имеет меньшие размеры по сравнению с символом (на один символ в текстовом режиме отводится площадка размером в несколько пикселей). Его геометрические размеры определяются разрешением монитора. На практике используются не произвольные, а некоторые определенные значения разрешения. Такими разрешениями являются, например, 320х200, 640х480, 800х600, 1024х768, 1280х1024 и т.д.
Актуальность исследования: До сих пор компьютер использовался только для вывода символьной информации - чисел, текстов. Но на сегодняшний день существует большое количество языков программирования. Они подразделяются на языки программирования низкого и высокого уровней, а также специализированные языки программирования. В данной курсовой работе рассматривается один из наиболее популярных языков программирования высокого уровня Pascal, который, несмотря на свою концептуальную простоту, позволяет решать широкий круг задач. Turbo Pascal актуален тем, что позволяет выводить на экран рисунки, чертежи, графики функций, диаграммы, т.е. все то что называют компьютерной графикой.
Цель исследования- изучить основы языка программирования, научиться создавать графические изображения на языке Turbo Pascal.
Задачи исследования:
1.изучить структуру программы
2. освоить основные графические процедуры и функции
Объект исследования: программа Turbo Pascal
Предмет исследования: графика в Turbo Pascal
Структура курсовой работы: рассмотрена история развития языка, его графические возможности. Работа в графическом режиме, построение простейших графических изображений. Приведено описание различных функций и процедур. В нее включены специальные приложения с подборкой задач и готовыми программами.
1. Ознакомление с языком Turbo Pascal
1.1 История развития языка Turbo Pascal
Язык программирования Pascal назван в честь французского математика XVII века Блеза Паскаля. Язык создан в 1970 году швейцарским физиком Никлаусом Виртом.
Почему язык программирования назван именем французского математика? Дело в том, что Паскаль (в 1640 году) создал арифметическую (или счётную) машину, которая считается первым подобным устройством. Он даже смог изготовить и продать 10-15 её экземпляров, причём некоторые из них дошли до наших дней!
Оригинальная версия языка программирования Pascal была предложена в 1970 году. Впоследствии появилось множество версий и расширений этого языка. Наиболее популярным из них стал пакет Turbo Pascal фирмы Borland, выпущенный в 1983 году. Первая версия этого пакета предназначалась для операционной системы СР/М, но уже через год (в 1984 году) появилась версия для MS DOS. С тех пор было выпущено несколько версий этого пакета, последняя из которых - Turbo Pascal 7.0.
Формально юбилей Паскаля пришёлся на ноябрь 2000 г., когда исполнилось 30 лет с момента первой официальной публикации описания языка. Но то был недоступный широкой аудитории технический отчет Швейцарского федерального технологического института ETH (Eidgenoessische Technische Hochschule). В самом начале 1971 г. отчет был перепечатан в первом номере журнала Acta Informatica. Так что рождение нового языка можно отсчитывать и с этого момента.
Его автор, швейцарский профессор Никлаус Вирт, во многом стал известен именно благодаря появлению Паскаля. Но и последующие его проекты убедительно доказали миру, что ключ к тайнам компьютеров - в гармонии математики, инженерии и программирования. И если грамотно подойти к делу, то можно реализовать языки, операционные системы и даже создать великолепные компьютеры, превосходящие промышленные образцы, силами обычных студентов.
1.2 Графические возможности языка Паскаль
Основная часть средств Pascal размещена на стандартных модулях. Модуль - это библиотека, которая содержит константы, описания типов данных, переменные и функции. Наиболее часто используются модули System, Dos, Graph, Crt.
Процедуры и функции модуля System подключаются автоматически и обеспечивают управление выполнением программ, обработку строк, файлов, управление динамической памятью, производят математические расчеты и другие действия.
Модуль Dos поддерживает большинство функций операционной системы и некоторые функции обработки файлов.
Модуль Crt содержит процедуры и функции управления текстовым экранным режимом, использования цветов, окон и звуков.
Модуль Graph обеспечивает работу в графическом видеорежиме. Средства модуля Graph позволяют формировать на экране различные цветные изображения, которые могут выводиться как на весь экран, так и в предварительно созданные графические окна.
Поддерживается несколько типов линий и заполнений. Имеется набор поддающихся масштабированию шрифтов. Ряд подпрограмм модуля специально предназначен для отображения на экране различных фигур - заполненных и незаполненных.
Базовыми компонентами являются компилятор, средства создания и редактирования исходных текстов программ и средства их отладки (поиска ошибок). Все эти компоненты объединены в единую интегрированную среду разработчика, с которой работает программист, создавая свои программы. Основной экран интегрированной среды разработчика TurboPascal выглядит следующим образом:
Рисунок 1.2.1
По функциональному назначению выделяются 3 области экрана:
1. Строка меню
2. Рабочая область
3. Строка состояния
Строка меню активизируется нажатием клавиши F10. В меню содержатся следующие разделы:
File - Позволяет выполнять все основные действия с файлами (создание, открытие, сохранение.)
Edit - Позволяет выполнять все основные операции редактирования текста (копирование, вставка, удаление фрагментов, отмена последних изменений)
Search - Позволяет осуществлять поиск и замену фрагментов текста
Run - Позволяет запускать программу, в том числе и в пошаговом режиме
Compile - Позволяет осуществлять компиляцию программы
Debug - Содержит команды, облегчающие процесс поиска ошибок в программе
Tools - Содержит некоторые дополнительные средства TurboPascal
Options - Позволяет установить необходимые для работы параметры компилятора и среды разработчика
Window - Позволяет выполнять все основные операции с окнами (открывать, закрывать, перемещать, изменять размер)
Help - Позволяет получить имеющуюся в системе справочную информацию
1.3 Работа в графическом режиме
Работа в графическом режиме выполняется с помощью предопределенных констант, типов, процедур и функций стандартного модуля Graph. В этом режиме любое изображение на экране дисплея синтезируется их множества мельчайших элементов, называемых пикселями (пиксель - picture element). Каждый пиксель представляет собой светящуюся точку таких размеров, при которых промежутки между соседними пикселями отсутствуют. Если группа смежных пикселей светится, то они воспринимаются не как совокупность отдельных точек, а как сплошной участок.
В графическом режиме можно управлять цветом отдельных пикселей экрана. Из цветных точек составляются линии, фигуры и целые графические объекты. Таким образом на экране дисплея может быть создано любое графическое изображение. Каждый пиксель имеет свои координаты.
GetmaxX:integer и GetmaxY:integer - стандартные функции модуля Graph, которые автоматически подсчитывают максимальное значение координат.
Количество пикселей по горизонтали и вертикали зависит oт аппаратуры - адаптера монитора.
Адаптер - это, специальная плата внутри корпуса компьютера, которая состоит из микросхемы (видеопроцессор), нескольких портов ввода-вывода (специальные разъёмы), постоянного запоминающего устройства с матрицами знаков, а также видеопамяти, где содержится графическое изображение. Компьютеры могут комплектоваться следующими типами графических адаптеров:
EGA-640x350 пикселей;
VGA-640X480;
SVGA (SupcrVGA) - 1024Х768 и др.
Работу графического адаптера поддерживает специальная программа, называемая драйвером. Это служебная программа, которая загружается, в компьютер вместе с операционной системой. Загрузочный модуль драйвера хранится в специальном файле с расширением.bgi (Borland Graphics Interface). Файлы с расширением.bgi находятся в каталоге BGI.
Соотношения драйверов и адаптеров следующие:
CGA.bgi - CGA, MCGA;
EGAVGA.bgi-EGA, VGA;
IBM85l4.bgi-IBM8514;
HERG.bgi-Hercules (монохромный адаптер) и т.д. Каждому типу драйвера в модуле Graph соответствует своя константа, например:
Direct=O; (требуется автоматическое определение)
CGA = 1;
EGA = 3;
VGA = 9.
Используемый драйвер может функционировать в различных режимах. Для выбора конкретного режима драйвера в модуле Graph содержится список констант.
Таблица 1.3.1. Список констант
Имя |
Значение |
Назначение |
|
Detect |
0 |
Автоматический выбор драйвера |
|
CGA |
1 |
||
MCGA |
2 |
||
EGA |
3 |
||
EGA64 |
4 |
||
EGAMono |
5 |
||
IBM8514 |
6 |
||
HercMono |
7 |
||
ATT400 |
8 |
||
VGA |
9 |
||
PC3270 |
10 |
||
CurrentDriver |
-128 |
Текущий драйвер |
При работе в графическом режиме используется большое количество процедур и функций, о формате и назначении которых можно узнать из справочной системы Pascal следующим образом:
HeipaContensaUnitsaGraphaGo to GRAPH.TPU
Functions and Procedures.
1.4 Инициализация графического режима
Все объекты, которые входят в модуль Graph, можно использовать только после задания инициализации графического режима. Инициализация графического режима выполняется процедурой InitGraph:
InitGraph((драйвер): integer; <режим>:integer; <путь к файлу>: string);.
Для инициализации графического режима с автоматическим распознаванием драйвера и режима достаточно присвоить переменной, отвечающей за драйвер, константу Detect или 0, присваивать какое-либо значение переменной режима в этом случае не требуется. Третий параметр указывает путь к файлу (например, EGAVGA) с расширением.bgi. Если этот файл находится в текущем каталоге, то путь может быть пустым (»). Ошибки, которые могут возникнуть при инициализации графического режима, анализируют с помощью функции GraphResult. Эта функция генерирует соответствующий код ошибки. Код ошибки равен нулю, если инициализация прошла успешно.
Для выхода из графического режима используется стандартная процедура без параметров CloseGraph. Она восстанавливает режим, существовавший до инициализации графики.
При частой работе с графикой процесс инициализации удобно оформить отдельной процедурой.
2. Процедуры и функции
2.1 Управление экраном и окнами
В графическом режиме поддерживается концепция окон. Окно представляет собой прямоугольную область экрана со своей относительной системой координат. По умолчанию окно занимает весь экран, значения координат его левого верхнего и правого нижнего углов устанавливаются автоматически процедурой инициализации (например, (0,0) и (640,480)).
Чтобы стереть все изображения на экране, т.е. очистить его, используется процедура без параметров СlеarDevice или процедура GraphDefauits, которая не только очищает экран, а и выполняет все стартовые установки графических параметров.
Процедура SetViewPort (X1, Y1, X2, Y2: integer; Clip: boolean); служит для организации окон. Здесь XI, Y1 - координаты левого верхнего угла, X2, Y2 - координаты правого нижнего угла. Параметр Clip определяет, будут ли фрагменты изображения отсекаться при попадании за пределы окна (Clip = True или Clip = ClipOn) или нет (Clip = False или Сliр = СlipOff). После создания окна началом координат станет верхний левый угол окна, который будет иметь координаты (0,0).
Процедура CiearViewPort используется для очистки окна. Текущее окно при этом заполняется фоновым цветом, а текущий указатель устанавливается в точку с координатами (0,0). Следует помнить что это координаты во внутренней системе координат, связанной с данным окном, а не в системе координат полного экрана. Перейти к системе координат полного экрана можно с помощью процедуры ClearDevice или задав в процедуре установки окна максимально возможные значения: SetViewPort (0,0, GetMaxX, GetMaxY, True).
2.2 Управление цветом и фоном
Во время инициализации графического режима устанавливается палитра цветов. Палитрой называется максимальный набор цветов, поддерживаемых BGI-драйвером. Она включает 16 цветов, пронумерованных от 0 до 15, которые используются по умолчанию в режимах 640x480 для VGA (и для EGA) как в текстовом, так и в графическом режиме. Названия цветов на английском и русском языках и их номера описаны в таблице.
Таблица 2.2.1. Названия цветов и их номера
Имя цвета |
Номер цвета |
Название цвета |
|
Black |
0 |
Черный |
|
Blue |
1 |
Синий |
|
Оreeon |
2 |
Зеленый |
|
Cyan |
3 |
Голубой |
|
Red |
4 |
Красный |
|
Magenta |
5 |
Фиолетовый |
|
Brown |
6 |
Коричневый |
|
LightGray |
7 |
Светло-серый |
|
DarkGray |
8 |
Темно-серый |
|
LighiBlue |
9 |
Светло-синий |
|
LightGreen |
10 |
Светло-зеленый |
|
LightCyan |
11 |
Светло-голубой |
|
LightRed |
12 |
Светло-красный |
|
LightMagenla |
13 |
Светло-фиолетовый |
|
White |
14 |
Белый |
|
Yellow |
15 |
Желтый |
Для установки цвета изображения и окна применяются процедуры SetColor и SetBkColor.
Процедура SetColor((ueeT): word); служит для задания цвета, которым будут обозначены контуры фигуры или текста. Если в качестве цвета указан недопустимый номер цвета, то текущий цвет не изменяется.
Процедура SetBkColor (<цвет>:word); устанавливает новый цвет фона.
2.3 Работа с текстом
Вывод текста
Выводимые на экран изображения лучше всего сопровождать пояснительным текстом. В графическом режиме для этого используются процедуры OutText и OutTextXY.
Процедура OutText (Textst: string) выводит строку текста, начиная с текущего положения указателя. Например, OutText (`нажмите любую клавишу'); Недостаток этой процедуры - нельзя указать произвольную точку начала вывода.
В этом случае удобнее пользоваться процедурой OutTextXY (x, y: integer, Textst: string), где x, y - координаты точки начала вывода текста, Textst - константа или переменная типа String. Например, OutTextXY (60, 100, `Нажмите любую клавишу').
Вывод численных значений
В модуле Graph нет процедур, предназначенных для вывода численных данных. Поэтому для вывода чисел сначала нужно преобразовать их в строку с помощью процедуры Str, а затем подключить посредством `+' к выводимой строке.
Например: Max:=34.56;
Str (Max: 6: 2, Smax); {результат преобразования находится в Smax}
OutTextXY (400, 40, `Максимум=' + Smax);
Для удобства преобразование целочисленных и вещественных типов данных в строку лучше осуществлять специализированными пользовательскими функциями IntSt и RealSt:
function IntSt (Int: integer): string;
var Buf: string[10];
begin
Str (Int, Buf);
IntSt:= Buf;
end;
function RealSt (R: real, Dig, Dec: integer): string;
var Buf: string[20];
begin
Str (R: Dig: Dec, Buf);
RealSt:= Buf;
end;
Эти функции указываются как параметры в процедурах OutText и OutTextXY. Например: x:= 5.295643871;
OutTextXY (20, 20, `x='+RealSt (x, 11,9));
В результате на экране появится x=5.29564443871
Шрифты
Вывод текста в графическом режиме может осуществляться различными стандартными (таблица 5) и пользовательскими шрифтами. Различают два типа шрифтов: растровые и векторные. Растровый шрифт задается матрицей точек, а векторный - рядом векторов, составляющих символ.
По умолчанию после инициализации графического режима устанавливается растровый шрифт DefaultFont, который, как правило, является шрифтом, используемым драйвером клавиатуры.
Большинство стандартных шрифтом не содержат русских символов. Разработка же собственных шрифтов - довольно сложный и трудоемкий процесс. Он может быть ускорен, если воспользоваться специализированными пакетами TurboFont, BgiToolKit.
Установить нужный шрифт можно процедурой SetTextStyle (Font, d, c:word), где Font - выбранный шрифт, d - направление (горизонтальное или вертикальное), с - размер выводимых символов. При организации вертикального вывода необходимо учитывать, что если не установить точку начала вывода с помощью MoveTo, то текст начинается с нижней строки экрана и продолжается вверх. Величина символов устанавливается коэффициентом с. Если с=1, то символ строится в матрице 8х8, если с= 2, то матрица 16х16 и т.д. до 10-кратного увеличения.
Например выведем 2 строки (вертикальную и горизонтальную) шрифтом DefaultFont разной величины:
SetTextStyle (0,11); {буквы стандартной величины}
OutTextXY (200,200, `Вертикальная строка');
SetTextStyle (0,0,2); {размер букв увеличен}
OutTextXY (200,220, `Горизонтальная строка');
Выравнивание текста
В некоторых случаях требуется в пределах одной строки выводить символы выше или ниже друг друга. Выравнивание текста выполняется с помощью процедуры SetTextJustify (Horiz, Vert: word) как по вертикали, так и по горизонтали посредством задания параметров Horiz и Vert.
2.4 Построение графиков функций
До сих пор при создании рисунков использовали только первый квадрант системы координат. Для построения большинства функций в требуемом интервале изменения необходимо работать хотя бы в двух квадрантах. В общем случае полезно изображать систему координат в любой части плоскости, но наиболее наглядно располагать ее в центре экрана. В таких случаях, установив начало координат в точке (x0, y0) на экране, можно координаты (x, y) произвольной точки кривой определять разностью (x-x0, y-y0). После этого в программе можно употреблять не только положительные, но и отрицательные значения.
Рисунок 2.4.1
Рисунок получается маленьким, поэтому требуется увеличить масштаб изображения. Если для функции будет использован весь экран, надо увеличить рисунок по x и по y в зависимости от выбранного экрана.
Выбрать масштаб увеличения можно следующим образом:
- определить горизонтальный и вертикальный размеры графика (для этого вводятся границы области значений и определяются максимальное и минимальное значение функции на заданной области определения, затем вычисляются разности максимального и минимального значений аргументов и функции, которые и являются горизонтальным и вертикальным размерами графика соответственно);
- определить масштаб (сначала определяются масштабы изображения по горизонтали и вертикали с учетом размеров выбранного экрана по формуле: масштаб (г/в) = размер экрана (по г/в) / размер графика (по г/в), затем из них выбирается меньший, который и принимается за необходимый масштаб. В нашем случае графический экран имеет размеры 640 на 480.
В любом случае, чтобы высветить на экране точку, надо взять x, вычислить по данной абсциссе y и выполнить рисование точки. Так как на экране можно получить лишь ограниченное количество значений х, то их перебираем с помощью цикла.
Для перевода текущих координат точки из декартовой системы координат в систему устройства можно воспользоваться формулами:
nx:=round((x-xmin)/(maxx-minx)*nx_max);
ny:=round((y-ymax)/(maxy-miny)*ny_max);
где: x, y - координаты текущей точки;
xmax, xmin - диапазон изменения x в декартовой системе координат;
ymax, ymin - диапазон изменения y в декартовой системе координат;
nx_max - количество пиксел по ширине экрана, можно получить при помощи функции Getmaxx;
ny_max - количество пиксел по высоте экрана, можно получить при помощи функции Getmaxy;
Их удобно оформить в виде функций. Заданную формулу для графика тоже лучше оформить в виде функции, тогда получится универсальная программа.
Лучше для рисования графика использовать процедуру line, а не putpixel, т.к. график получится без разрывов.
Рассмотрим построение графика функции, заданной параметрически. В отличие от функции, заданной в явном виде y=f(x), параметр х в этом случае также является функцией, зависящей от некоторого значения.
графический pascal программирование
2.5 Построение простейших графических изображений
Отображение точки
Какие бы изображения не выводились на экран, все они построены из точек. Процедура PutPixel (X, Y:integer; Color:word); отображает точку на экране, где X и Y - экранные координаты точки. Color - её цвет.
Приведем пример программы, при выполнении которой создается интересный визуальный эффект путем заполнения экрана множеством точек различных цветов.
Отображение отрезков прямых линий
Процедура Line (Xl, Yl, X2, Y2: integer); выводит на экран отрезок прямой линии. Здесь (X1, Y1) - координаты начальной точки, a (X2, Y2) - координаты конечной точки отрезка.
Для построения отрезков можно применять также следующие процедуры:
LineTo (X, Y); - проводит отрезок из текущей точки до точки с координатами (X, Y);
LineRel (dX, dY|; - проводит отрезок из текущей точки до точки, удаленной от нее на расстояние (dX, dY). Линии можно вычерчивать самых различных стилей: тонкие, широкие, штриховые, пунктирные и т.д. Процедура SetLineStyle (<тип линии>:word;<yзop(maблон)>: word; (толщина линии):word); производит установку стиля. Константы типа линий и их толщины приведены в таблице.
Таблица 2.5.2. Константы типа линий и их толщины
Имя |
Значение |
Назначение |
|
Коды типов линий (для процедуры SetLineStyle) |
|||
SolidLn |
0 |
Cплошная |
|
DottedLn |
1 |
Пунктирная |
|
CenterLn |
2 |
Штрихпунктирная |
|
DashedLn |
3 |
Штриховая |
|
UserBitLn |
4 |
Заданная пользователем |
|
Коды толщины линии |
|||
NormWidth |
1 |
Нормальная |
|
ThickWidth |
3 |
Толстая |
Если тип линии не равен UserBitLn, то параметр «узор(шаблон)» не используется и обычно задается равным нулю, например SetLineStyle (0,0,3) - стиль линии - сплошная, жирная.
Построение прямоугольников
Процедура Rectangle (Xl, Yl, X2, Y2: integer); строит изображение прямоугольника на плоскости. Здесь XI, Y1 - координаты левого верхнего угла, X2, Y2 - координаты правого нижнего угла прямоугольника. При этом используется текущий цвет (SetColOf) и стиль линии (SetLineStyle). Область внутри прямоугольника не закрашена и совпадает по цвету с фоном.
Процедура Bar (Xl, Yl, X2, Y2:integer); позволяет строить более эффектные прямоугольники. Она рисует прямоугольник, внутренняя область которого залита по текущему шаблону. Обычно используется в деловой графике для построения столбиковых диаграмм, а также для «закраски» графического окна, чтобы фон графического окна не сливался с общим фоном экрана.
Рассмотрим, как производить «заливку» замкнутых областей экрана с помощью различных узоров, т.е. как выбрать узор (шаблон) и цвет заполнения фигуры. Комбинацию узор-цвет принято называть стилем заполнения.
Процедура SetFillStyle (<шаблон>:word;<цвет>:word); устанавливает шаблон и цвет заполнения замкнутой фигуры.
Таблица 2.5.3. Константы шаблонов закраски приведены в таблице
Имя константы |
Значение |
Назначение |
|
EmptyFill |
0 |
Заполнение цветом фона |
|
SolidFill |
1 |
Однородное заполнение цветом |
|
LineFill |
2 |
Заполнение вида - |
|
LtSlashFill |
3 |
Заполнение вида /// |
|
SlashFill |
4 |
Заполнение вида /// толстыми линиями |
|
BkSlashFill |
5 |
Заполнение вида \ толстыми линиями |
|
LtBkSlashFill |
6 |
Заполнение вида \ |
|
HatchFill |
7 |
Заполнение клеткой |
|
XHatchFill |
8 |
Заполнение косой клеткой |
|
InterleaveFill |
9 |
Заполнение частой клеткой |
|
WideDotFill |
10 |
Заполнение редкими точками |
|
CloseDotFill |
11 |
Заполнение частыми точками |
|
UserFill |
12 |
Определяется пользователем |
Процедура FloodFill (X, Y:integer; Border: word); заполняет ограниченную область текущим цветом и стилем заполнения (SetFillStyle). Граница закрашиваемой области высвечивается цветом, заданным в Border.
Если точка (X, Y) находится внутри области, то эта область закрашивается, если же она расположена вне области, то заполняется внешняя часть области.
Построение дуг, эллипсов и окружностей
Процедура Arc (X, Y:integer; al, a2, R: word); строит дугу. Здесь (X, Y) - центр окружности дуги, al, a2 - начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, R-радиус. Если al=00, а а2=360°, то вычерчивается полная окружность.
Процедура Ellipse (X, Y: integer; al, a2, Rx, Ry: word); предназначена для построения эллиптических дуг. Здесь (X, Y) - центр эллипса, al, a2 - начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, Rx и Ry - горизонтальная и вертикальная полуоси. Если al=0°, а а2 = 3600, то вычерчивается полный эллипс.
Процедура FillEllipse (X, Y: integer; Rx, Ry: word); строит полный закрашенный эллипс.
Процедура Circle (X, Y: integer; R: word); выводит на экран изображение окружности с центром (X, Y) и радиусом R. Окружность рисуется цветом, заданным SetColor.
Процедура PieSlice (X, Y: integer; al, n2, R: word); выводит на экран изображение закрашенного сектора круга, используя в качестве центра круга точку (X, Y), начальный угол al, конечный угол a2 и радиус R. Контур сектора высвечивается текущим цветом. При заполнении сектора используются шаблон и цвет, установленные процедурой SetFillStyle. Если al =0°, а а2=360°, то на экран выводится закрашенная окружность.
Процедура Sector (X, Y: integer; al, a2, Rx; Ry: word); строит закрашенный сектор эллипса.
Реализация имитации движения графических объектов
Создать видимость движения на экране можно двумя способами.
Первый способ заключается в том, что имитация движения объекта на экране создаётся за счёт многократного выполнения программой напора действий: нарисовать - пауза - стереть рисунок (нарисовать его в том же месте цветом фона) - изменить координаты изображения.
Перед началом составления программы надо продумать описание «движущегося» объекта; характер изменения координат, определяющих текущее положение объекта; диапазон изменения и шаг.
Второй способ имитации движения рисунка или его части состоит и его запоминании в отдельной области оперативной памяти с тем, чтобы в дальнейшем быстро восстановить это изображение в другом месте экрана.
Для хранения фрагмента удобнее всего использовать динамическую область памяти. Получить размер памяти в байтах, необходимой для сохранения образа фрагмента, позволяет функция ImageSize (X1, Yl, X2, Y2:integer): word. Здесь (X1, YI) и (X2, Y2) - координаты верхнего левого и нижнего правого углов прямоугольника. Если полученный размер памяти больше 64Кб, то значение ImageSize = 0, a GraphResult=-1. Чтобы этого избежать, следует сохранять изображение по частям.
Полученный с помощью функции ImageSize размер памяти применяют в качестве входной информации для процедуры GetMem (p, Size), которая выделяет указанный объем памяти в динамической области. Здесь р - указатель на область памяти, Size - ее размер.
Процедура GetImage (Xl, Yl, X2, Y2:integer; var BitMap: word); сохраняет образ фрагмента в памяти, где XI, Y1, X2, Y2 - координаты фрагмента, BitMap - переменная, которая указывает, где сохраняется образ изображения.
Процедура Putlmage (X, Y: integer; var BitMap, Mo-de:word); восстанавливает сохраненный в буфере Bit-Map прямоугольник, левый верхний угол которого задаётся координатами (X, Y). Параметр Mode задает режим вывода изображения.
Циклы в графике. Построение случайных процессов
Для того, чтобы картинки не были монотонными и регулярными, можно задавать фигурам случайные размеры, цвет, координаты. Для этого имеется специальная функция Random. Она генерирует случайные числа из (0, 1). Для расширения первоначального промежутка используется функция Random (I: word), которая выдает число из диапазона 0… I. На самом деле эти функции генерируют некоторую последовательность псевдослучайных чисел, и чтобы добиться иллюзии полной «случайности» используют команду Randomize, которая изменяет базу датчика случайных чисел.
Заключение
Обычно человек мыслит приблизительными категориями, а язык программирования, даже самый простой, никакой приблизительности не терпит. Компьютеру нужно «говорить» абсолютно четко, по пунктам. Если хотя бы одно место прописано недостаточно четко, компьютер остановится и выдаст ошибку.
Относительно лёгкий в освоении, язык Паскаль, который является одним из родоначальников программирования, прекрасно подходит для новичков в программировании.
Паскаль уникальный язык программирования и без основ этого языка невозможно начать свой трудный путь по освоению азов программирования. Только Паскаль может дисциплинировать программиста и научить его логическому мышлению.
В данной курсовой работе описываются различные процедуры и функции, предназначенные для создания графических объектов в Турбо Паскаль.
Используя выше перечисленные процедуры и функции, можно научиться изображать различные фигуры различных форм и размеров.
Целью данной курсовой работы является изучить основы языка программирования, научиться создавать графические изображения на языке Turbo Pascal.
Написав данную работу, автор получила навык работы в графической среде Турбо Паскаль, научилась правильно применять разные процедуры и функции, точно определять и задавать координаты различных линий, эллипсов, окружностей, прямоугольников и т.д.
Список использованной литературы
1. Фаронов В.В. Турбо-Паскаль 7.0. Начальный курс. М.: «Нолидж», 2001
2. Мизрохи С.В. TURBO-PASCAL и объектно-ориентированное программирование. - М.: Финансы и статистика, 2002
3. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. СПб.:БХВ - Санкт-Петербург, 2005.
4. Прайс Д. Программирование на языке Паскаль: Практическое руководство. Пер. с англ. - М.: Мир, 2007.
5. Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. - М.: «ДМК», 2000. - 416 с.
6. Зуев Е.А. Язык программирования Turbo Pascal 6.0. - М.: Унитех, 1992. - 298 с., ил.
7. Зуев Е.А. Turbo Pascal. Практическое программирование. - Приор, 1997. - 336 с.
8. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль 5.5. - М:., МАИ, 1992. - 576 с.
9. Лилитко Е.П. Практикум по программированию. Начальный курс. - Переяславль-Залесский, 1997.
Размещено на Allbest.ru
Подобные документы
Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.
лабораторная работа [12,7 K], добавлен 14.05.2011Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.
контрольная работа [286,3 K], добавлен 10.04.2011Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.
реферат [64,0 K], добавлен 20.03.2016История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.
курсовая работа [359,4 K], добавлен 05.01.2010История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.
курсовая работа [519,3 K], добавлен 25.06.2011Файлы BGI и содержимое модуля Graph, инициализация и закрытие графических режимов, их классификация, анализ и управление. Рисование графических примитивов и фигур, управление цветами и шаблонами, вывод текста, выбор шрифта и стиля, сжатия изображения.
реферат [65,3 K], добавлен 31.05.2010Символьный тип данных как составляющая языка программирования: управляющие символы, лексемы и разделители. Разработка программного обеспечения для практической реализации решения задач, содержащих символьные величины языка программирования Turbo Pascal.
курсовая работа [37,7 K], добавлен 03.05.2012Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.
курсовая работа [28,3 K], добавлен 13.06.2007Процедура сложения и вычитания матриц (с учетом коэффициента перед матрицами). Основные концепции языка Turbo Pascal. Фортран как один из пионеров программирования Дейкстрой. Первый компилятор Паскаля на платформах DEC. Основные стандарты языка.
контрольная работа [21,6 K], добавлен 08.03.2011Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.
курсовая работа [37,3 K], добавлен 28.06.2008