- •Глава 1. Линейный алгоритм
- •1.1. Понятие алгоритма
- •1.1.2. Алфавит Языка Паскаль.
- •1.1.3. Структура программы на языке Паскаль.
- •1.2. Данные
- •1.2.1. Классификация данных по функциональному признаку
- •1.2.2. Свойства данных
- •1.2.5. Типы данных
- •1.2.3. Идентификатор или имя
- •1.2.4. Константы и переменные
- •1.2.6. Целый тип данных
- •1.2.6. Вещественный тип данных
- •1.2.7. Преобразование типов: вещественный → целый
- •1.2.8. Стандартные математические функции
- •1.2.9. Арифметические выражения
- •1.2.10. Задание арифметических данных с помощью датчика случайных чисел
- •1.3. Операторы
- •1.3.1. Оператор присваивания
- •1.3.2. Операторы ввода
- •1.3.2. Оператор вывода
- •1.4. Примеры линейных алгоритмов Порядок решения задачи на эвм
- •Задача 1
- •1.5. Задания для самостоятельной работы
- •Задачи для изучения синтаксиса операторов присваивания, ввода, вывода.
- •Задачи, требующие ввода рабочих переменных
- •Задачи на целочисленное деление
- •1.6. Линейный алгоритм в графических задачах
- •1.6.1. Графический экран
- •Инициализация графического режима
- •Основные графические примитивы
- •Сначала следует задать стиль и цвет заливки с помощью функции
- •Тип параметров - целый
- •1.6.4. Вывод текста в графическом режиме
- •1.6 5. Графические задачи для самостоятельного решения
- •Основные элементы блок-схем
- •Приложение 1.2 основные математические функции
- •Приложение 1.3 Пример тестов по теме «Линейный алгоритм»
- •Приложение 1. 4 Лабораторные работы по теме «Линейный алгоритм, операторы присваивания, ввода, вывода» Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
Сначала следует задать стиль и цвет заливки с помощью функции
Setfillstyle(<тип заливки>,<цвет заливки>);
Тип параметров - целый
<цвет заливки> задается в соответствии с таблицей палитры 1-5.
<тип заливки> задается в соответствии со следующей таблицей 1-7
Таблица 1-7. Стили заливки в среде Турбо (Borland) Паскаля
Тип заливки (константа графической библиотеки) |
Заливка |
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,<цвет контура>);
Область закрашивается, начиная с точки x,y до линии, имеющей цвет <цвет контура>. Линии другого цвета и закрашенные области другого цвета препятствием для раскраски не являются. Непрерывность контура нарушается, если до заливки его пересекли линии другого цвета. Если задать точку вне контура, то закраске подвергнется область экрана вне контура, внутрь не попадет ни «капли».
Закрашенный прямоугольник
Процедура Bar штрихует прямоугольную область экрана. Формат обращения:
Bar (x1, y1, x2, y2 );
где x1,y1, x2,y2 — выражения типа Integer, определяющие координаты левого верхнего и правого нижнего углов закрашиваемой области.
Процедура штрихует, но не обводит, прямоугольник текущим образцом штриховки и текущим цветом (устанавливаются процедурой SetFillStyle),
Задание на самостоятельное изучение графической библиотеки
С помощью опции меню Турбо - Паскаля Help изучить обращения к следующим процедурам и функциям графической библиотеки. Для этого в тексте программы набрать одно из имён процедур, выделить, оставить курсор в пределах выделенного прямоугольника и нажать Ctrl+F1. На экране откроется окно помощи с описание процедурф или функции.
Процедуры и функции для самостоятельного изучения: bагЗd, ellipse, fillellipse, sector, pieslice, getpixel, moverel , moveto , getx , gety, getbkcolor , getlcolor.
1.6.4. Вывод текста в графическом режиме
В состав стандартного модуля GRAPH.TPU входят специальные процедуры для обеспечения вывода сообщений в графическом режиме различными шрифтами, в горизонтальном или вертикальном направлении, с изменением размеров и цвета. Более подробно работу с текстом смотрите в разделе для изучения структуры данных «строка». В графическом режиме на экран можно выдать только строку, т.е. последовательность символов.
Задать стиль вывода текста на экран
Процедура SetTextStyle устанавливает стиль текстового вывода на графический экран. Формат обращения:
SetTextStyle(<шрифт>,<направление>,<размер>);
где
<шрифт> - константа или выражение типа Word, обозначающее номер шрифта; Для выдачи русских букв используется только номер 0. Количество шрифтов зависит от того, сколько и каких файлов с шрифтами у вас есть. Если нет никаких файлов с шрифтами, то используется только номер 0.
<направление> - константа типа Word, обозначающая направление вывода шрифта, может указываться номером или именем направления.
HorizDir = 0; {слева направо}
VertDir = 1; {снизу вверх}
<размер> — константа или выражение типа Word, обозначающие коэффициент пропорциональности. Если третьим параметром стоит 1, то каждый символ будет занимать на экране прямоугольник 8*8 пикселей, если 2 – 16*16 пикселей. Каждый шрифт способен десятикратно изменять свои размеры. Диапазон изменения параметра <размер> может изменяться от 1 до 10.
Вывод строки
Процедура OutTextXY выводит строку, начиная с координат точки, указанной в скобках. Формат обращения:
OutTextXY (x, y, <строка>);
где
x, y — выражения типа Integer, определяющие координаты точки вывода;
<текст> — выражение типа String (строка) или Char (символ). Строка символов заключается в одинарные кавычки.
Пример:
uses Graph;
var
Gd, Gm : Integer;
begin
Gd := Detect;
lnitGraph(Gd, Gm, ' ');
if GraphResult <> grOk then Halt(1);
setcolor(1);
settextstyle(0,0,3);
OutTextXY(100,0, 'Тест');
ReadLn;
CloseGraph;
end.
Вывод чисел на экран в графическом режиме
Очень часто необходимо вывести на экран значения некоторых числовых переменных в графическом режиме. Для этого необходимо преобразовать значение числовой переменной в последовательность символов (строку), используя процедуру Str, и вывести сформированную строку процедурой OutTextXY.
Формат обращения к процедуре STR
Str (x, st);
Где
х – переменная целого или вещественного типа;
st - строка символов.
Если х – переменная целого типа, то формат преобразования указывать не нужно. Если ч- переменная вещественного типа, то возможны два случая. Если формат не указан, то в строке будет записана запись числа в экспоненциальной форме, что не удобно для вывода на экран. Формат указывается следующим образом: Str (x:7:3, st); Здесь 7 – общее количество символов, которое отводится для представления числа, включая десятичную точку, 3 – количество знаков после запятой.
Но можно задать число в виде строки, например, St:=’12’; Тогда никакого преобразования в строку делать не нужно.
Пример:
uses Graph;
var
Gd, Gm, n : Integer;
St : string;
begin
Gd := Detect;
lnitGraph(Gd, Gm, ' ');
if GraphResult <> grOk then Halt(1);
n:=100;
Str(n,St);
setcolor(11);
settextstyle(0,0,2);
OutTextXY(10,10, st);
ReadLn;
CloseGraph;
end.
