Ну что, приступим? Ну что, приступим?
Управляющие кнопки - переход на предыдущий или последующий слайд - завершение показа слайдов - пример программы на языке Turbo Pascal В содержании нужно щелкнуть мышкой на интересующий вас раздел, чтобы получить по нему сведения (например «Массивы») - переход к содержанию Назад\Далее далееназад
Содержание: Графика языка Turbo Pascal Графика языка Turbo Pascal Массивы Записи
Графика языка Turbo Pascal Стандартное состояние компьютера после его включения, а также к моменту запуска программы из среды TP соответствует работе экрана в текстовом режиме, поэтому любая программа, использующая графические средства компьютера, должна определенным образом инициировать графический режим работы дисплейного адаптера. После завершения работы программы ПК возвращается в текстовый режим. далееназад
1 Графические координаты Любое изображение формируется из достаточно простых геометрических фигур. Это точки, линии окружности и тому подобное. Положение данного объекта его форма задаются координатами его точек. Следовательно, для того чтобы запрограммировать графический вывод, надо научится задавать координаты графических объектов. В качестве графических координат используются порядковые номера пикселов (от англ. Pixel – объединение слов «рисунок»-picture и «элемент»-element ). Разрешение монитора задается в виде: rx*ry, где rx – кол-во пикселов на экране по горизонтали, ry – по вертикали. Допустимый диапазон значений изменения графических координат составляет – [0,rx-1] – для x и [0,ry-1] для y. Точкой отсчета является левый верхний угол экрана. X – отсчитывается слава на право, Y – сверху вниз. далееназад
2 Линии и точки Процедура PutPixel выводит заданным цветом точку по указанным координатам. Procedure PutPixel (x,y:integer;Color:Word); Процедура Line вычерчивает линию с указанными координатами начала и конца. Линия вычерчивается текущим стилем и текущим цветом. Procedure Line (x1,y1,x2,y2:integer); далееназад
3 Построение прямоугольников Для построения прямоугольных фигур имеется несколько процедур. Процедура вычерчивания одномерного прямоугольника Rectangle(x1,y1,x2,y2:integer); область внутри прямоугольника не закрашена и совпадает по цвету с фоном. Процедура Bar(x1,y1,x2,y2:integer); рисует закрытый прямоугольник, цвет закраски устанавливает процедура SetFillStyle. Процедура Bar3D(x1,y1,x2,y2:integer;Depth:word;Top:Boolean) - вычерчивает трехмерный закрашенный прямоугольник. Depth – глубина трехмерного контура (1/4) ширины Depth:=(x2-x1) div 4; параметр Top определяет, строить ли над прямоугольником вершину (True - строить, False – не строить). далееназад
4 Построение многоугольников Процедура Draw Poly(NumPoints:word; var PolyPoints ); параметр NumPoints задает число координат в PolyPoints. Необходимо помнить, что для вычерчивания замкнутой фигуры с N вершинами передать N+1 координату. Координаты задаются с помощью массива. Фон внутри многоугольника можно изменить с помощью процедуры FillPoly(NumPoints:word;var PolyPoints). далееназад
5 Установка цвета и палитры Процедура SetLineStyle устанавливает новый стиль вычерчивания линий. Procedure SetLineStyle(Type,Obr,T:Word); Здесь Type,Obr,T – соответственно тип, образец и толщина линии. Тип линии может быть задан одной из следующих констант: const Solidln=0; (*сплошная линия*) Dottedln=1; (*точечная линия*) Centerln=2; (*штрихпунктирная линия*) Dashcdln=3; (*пунктирная линия*) Userbitln=4; (*узор линий определяет пользователь*) Процедура SetColor(Color:word) – установка цвета линии. Процедура SetFillStyle(Pattern:word;color:word) – определяет стиль заполнения. далееназад
Графические опции Константазначениемаска EmptyFill 0 Заполнение цветом фона SolidFill 1 Заполнение текущим цветом lineFill 2 Заполнение символами - - -, цвет - color LtslashFill 3 Заполнение символами //, нормальной толщины, цвет - color SlashFill 4 Заполнение символами //, удвоенной толщины, цвет - color BkslashFill 5 Заполнение символами \\, нормальной толщины, цвет - color LtbkslahFill 6 Заполнение символами \\, удвоенной толщины, цвет - color далее назад
HatchFill 7 Заполнение вертикально- горизонтальной штриховки тонкими линиями, цвет – color. XhatchFill 8 Заполнение штриховкой крест- накрест по диагонали редкими тонкими линиями, цвет – color. InterLeaveFill 9 Заполнение крест-накрест по диагонали частыми тонкими линиями, цвет – color. WideDotFill 10 Заполнение редкими точками. CloseDotFill 11 Заполнение частыми точками. UserFill 12 Заполнение по определенной пользователем маске заполнения, цвет – color. далее назад
6 Работа с текстом 6.1 Вывод текста Выводимые на экран изображения обычно сопровождаются пояснительным текстом, для этого существует процедура OutText и OutTextXY Процедура OutText(Введите данные) выводит строку текста, начиная с текущего положения курсора. Процедура OutTextXY(60,100, для продолжения нажмите любую клавишу) – выводит строку текста начиная с точки с координатами (60,100). 6.2 Установка шрифта Качественное оформление экрана требует при выводе текста использование самых различных шрифтов. Установить нужный шрифт можно процедурой: SetTextStyle(Font:word;Direction:word;CharSize:word), где Font – выбранный шрифт Direction – направление (горизонтальное или вертикальное) CharSize размер выводимых символов далее назад
шрифты константазначениеописание DefaultFont08*8 битовый шрифт TriplexFont1Штриховые шрифты SmallFont2Малый шрифт SansSerifFont3Сансериф Gothic Font4Готический Константы ориентации HorizDit0Слева направо VertDir1Сверху вниз далее назад
Состав модуля GRAPH В графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16 цветов. Координаты точек возрастают слева направо и сверху вниз. В начале основной программы перед инициированием графического режима необходимо установить тип имеющегося драйвера: driver:=detect; InitGraph(driver,mode,C:\TP\BGI); По окончанию выполнения программы необходимо выйти из графического режима: CloseGraph Шаблон графической программы выглядит следующим образом: uses Graph var grDriver: Integer; grMode: Integer; ErrCode: Integer; далее назад
Res:Integer; Begin grDriver:=detect; InitGraph(grDriver,grMode, C:\TP\BGI); ErrCode:=GraphResult; if ErrCode=drOk then begin { сюда следует поместить основные конструкции (операторы) } end; CloseGraph; end. далее назад
Основные процедуры и функции модуля GRAPH 1. Построение дуги окружности Arc (x, y, начальный угол, конечный угол, радиус). 2. Построение прямоугольника Rectangle (x1, y1, x2, y2). 3. Построение закрашенного прямоугольника Bar (x1, y1, x2, y2). 4. Построение закрашенного параллелепипеда Bar3D (x1, y1, x2, y2, Depth, Top). 5. Построение окружности Circle (x, y, радиус). 6. Очистка экрана и заливка его цветом фона ClearDevice. 7. Очистка экрана и заливка его черным цветом ClesrViewPort. 8. Определение типа драйвера и режима работы DetectGraph (Driver, mode). 9. Построение многоугольника GrawPoly (число точек, координаты точек). 10. Построение эллипса Ellipse (x, y, начальный угол, конечный угол, радиус X, радиус Y). 11. Построение закрашенного эллипса FillEllipse (x, y, радиус X, радиус Y). 12. Построение закрашенного многоугольника FillPoly (число точек, координаты). далее назад
13. Рисование точки PutPixel (x, y, цвет). 14. Установка цвета SetColor (цвет). 15. Определение максимальных значений экрана по оси X и Y. GetMaxX GetMaxY. Цвета 0 – черный 6 – оранжевый 1 – синий 7 – белый 2 – салатовый 8 – серый 3 – голубой 9 – васильковый 4 – морковный 5 – сиреневый Пример написания программы : назад далее
возврат
Массивы 1 Одномерные массивы Массив – набор данных, которые являются однотипными и однородными. Для всех этих данных дается общее имя. Индекс – номер элемента в массиве Обращение к элементу массива – имя массива[номер данного элемента] Синтаксис: var _имя массива:array [N1..N2] of type; Array, of – зарезервированные слова N1, N2 – соответственно номера первого и последнего элемента массива (обычно N1=1 ) Type – тип элементов массива Пример: вычислить сумму 15 целых чисел введенных с клавиатуры далееназад Между начальным и конечным числом ставится две точки
\ Ввод /вывод одномерного массива производится всегда через цикл (чаще всего FOR) Ввод массива с помощью клавиатуры– writeln(введите элементы массива - ); For i:=1 to n d begin readln(mas[i]); end; Ввод массива с помощью формулы- For i:=1 to n d begin mas[i]:=i*2+13; end; Вывод массива – For i:=1 to n do writeln(mas[i], ); далееназад
далее
возврат
Для создания массива можно использовать генератор случайных чисел. Random(N) – передает в программу случайное число в интервале от нуля до N. Чтобы получить случайное число в интервале от A до B нужно воспользоваться формулой: Random(B-A)+A Например : …………… FOR i:=1 TO 20 DO A[i]:=RANDOM(30)+20; ……………… Заполнение массива А случайными числами из диапазона от 20 до 30 далееназад
Если в программе используется несколько массивов одного типа индекса и данных, то при описании этих массивов можно указать их через запятую: var_mas1,mas2,mas3:array [1..10] of real; Для заполнения массива используются циклы простые и вложенные (чаще всего FOR) Три массива, по десять элементов в каждом типа real далееназад
В массиве из 20 чисел найти максимальный элемент и поменять его местами с первым элементом. возврат Ввод массива Находим минимум и запоминаем его позицию Меняем минимум и первый элемент местами
2 Многомерные массивы Очень часто используются многомерные массивы, т.е. Массивы массивов. Особенно широко распространены двухмерные массивы, иначе называемые матрицами. Синтаксис(с использованием имени типа t): 1. type_t = array [1..n,1..m] of _type; var _a : t; 2. Var_mas = array [1..n,1..m] of_type; Обращение к элементу двухмерного массива: mas [номер строки, номер столбца] Пример с двухмерным массивом: [1.. Количество строк, 1.. Количество столбцов] далееназад
Ввод многомерного массива: for i:=1 to n do for j:=1 to m do begin writeln(введите элемент массива - ); readln(mas[i,j]); end; for i:=1 to n do for j:=1 to m do begin mas[i,j]:=i*j+12-1; end; Ввод с клавиатуры Ввод с помощью формулы далееназад
Вывод многомерного массива: for i:=1 to n do begin for j:=1 to m do write(mas[i,j], ); writeln; end; Например: дан массив(3*3) он выведется по строкам: далееназад
Нахождение минимума каждой строки в двумерном массиве. возврат
Записи Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Синтаксис: type = record : ; ……………………………… : ; end; var : ; Пример: назад далее
Type Car = record Number : integer ; Marka : string [20] ; FIO : string [40] ; Address : string [60] ; end; Var M : Car ; Доступ к полям записи осуществляется через переменную типа «запись» В данном случае это переменная M. Обращение к значению поля : M. Number M. Marka M. FIO M. Address Запись Car – содержит 4 компонента Номер Марка автомобиля ФИО владельца Адрес владельца возврат
Для присваивания полям значений используется оператор присваивания - Number : = 1678 ; Marka : = ГАЗ – 24 ; FIO : = Иванов В. А. ; Address : = ул. Пушкина 12 – 31 ; Также можно использовать операторы ввода-вывода для соответствующих операций – ввод - read (M.Number, M.Marka, M.FIO, M.Address ) вывод - write(M.Number :4, M.Marka :7, M.FIO :12, M.Address :25) далееназад
Вы ознакомились с краткой частью языка Turbo Pascal - графика, массивы и записи. Спасибо за внимание. Нажмите -