- •0Министерство образования тверской области
- •Практическое занятие 1
- •Теоретический материал
- •Порядок выполнения работы
- •Задания
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 2
- •Теоретический материал
- •Порядок выполнения работы
- •Задания
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 3
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 4
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 5
- •Теоретический материал
- •Порядок выполнения работы
- •Варианты прикладных задач:
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 6
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 7
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 8
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 9
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 10
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 11
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 12
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 13
- •Теоретический материал
- •1.1. Эквивалентное разбиение
- •Порядок выполнения работы
- •Варианты заданий:
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 14
- •Теоретический материал
- •Общие характеристики качества программного средства
- •Длина программы
- •4. Объем программы
- •Потенциальный объем V*
- •Порядок выполнения работы
- •Практическое занятие 15
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 16
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 17
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 18
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 22
- •Теоретический материал
- •Теоретический материал
- •Порядок выполнения работы
- •Порядок выполнения работы
- •Одномерные массивы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 23
- •Теоретический материал
- •Двумерные массивы (матрицы)
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 24
- •Теоретический материал
- •Порядок выполнения работы
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 25
- •Теоретический материал
- •Карандаш и кисть
- •Вывод текста
- •Методы вычерчивания графических примитивов
- •Ломаная линия
- •Окружность и эллипс
- •Прямоугольник
- •Многоугольник
- •Вывод иллюстраций
- •Битовые образы
- •Мультипликация
- •Метод базовой точки
- •Использование битовых образов
- •Загрузка битового образа из ресурса программы
- •Создание файла ресурсов
- •Подключение файла ресурсов
- •Просмотр "мультика"
- •Порядок выполнения
- •Контрольные вопросы
- •Список использованной литературы
- •Практическое занятие 26
- •Теоретический материал порядок выполнения
- •Контрольные вопросы
- •Список использованной литературы
Контрольные вопросы
Что такое модуль?
Каковы основные составные части модуля?
Что собой представляет заголовок модуля?
Как оформляется интерфейсная часть?
Как оформляется реализационная часть?
Как оформляется инициализационная часть?
Список использованной литературы
Голицина О.Л., Попов И.И. Основы алгоритмизации и программирования: Учебное пособие. - М.: Форум: Инфра-М, 2002.
Фленов М.Е. Библия Delphi. - 3-е изд. Перераб. И доп. - СПб.: БХВ-Петербург, 2011.
Практическое занятие 25
Тема: «Разработка программного продукта с применением графических возможностей Delphi»
Цели:
- закрепление изученного материала по применению графики в Delphi;
- формирование навыков разработки алгоритмов с применением графики.
Характер занятия: поисковый.
Форма организации: фронтальная.
Обеспечение занятия: ПК, ОС Windows, Delphi, ручка, карандаш, линейка, тетрадь по практическим работам.
Требования к знаниям
Перед выполнением практической работы студент должен
знать:
- основные элементы IDE Delphi и принципы работы в ней;
- основные операторы языка Object Pascal.
после выполнения практической работы студент должен
уметь:
- разрабатывать алгоритмы с использованием графики.
Теоретический материал
Delphi позволяет программисту разрабатывать программы, которые могут выводить графику: схемы, чертежи, иллюстрации. Программа выводит графику на поверхность объекта (формы или компонента Image). Поверхности объекта соответствует свойство canvas. Для того чтобы вывести на поверхность объекта графический элемент (прямую линию, окружность, прямоугольник и т. д.), необходимо применить к свойству canvas этого объекта соответствующий метод. Например, инструкция Form1.Canvas.Rectangle (10,10,100,100) вычерчивает в окне программы прямоугольник.
Холст
Как было сказано ранее, поверхности, на которую программа может выводить графику, соответствует свойство Canvas. В свою очередь, свойство canvas – это объект типа TCanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д.), а свойства позволяют задать характеристики выводимых графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации. Методы вывода графических примитивов рассматривают свойство Canvas как некоторый абстрактный холст, на котором они могут рисовать (canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек – пикселов. Положение пиксела характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксел имеет координаты (0, 0). Координаты возрастают сверху вниз и слева направо. Значения координат правой нижней точки холста зависят от размера холста.
Размер холста можно получить, обратившись к свойствам Height и width области иллюстрации (image) или к свойствам формы: ClientHeight и Clientwidth.
Карандаш и кисть
Художник в своей работе использует карандаши и кисти. Методы, обеспечивающие вычерчивание на поверхности холста графических примитивов, тоже используют карандаш и кисть. Карандаш применяется для вычерчивания линий и контуров, а кисть — для закрашивания областей, ограниченных контурами. Карандашу и кисти, используемым для вывода графики на холсте, соответствуют свойства Реn (карандаш) и Brush (кисть), которые представляют собой объекты типа треп и TBrush, соответственно. Значения свойств этих объектов определяют вид выводимых графических элементов.
Карандаш
Карандаш используется для вычерчивания точек, линий, контуров геометрических фигур: прямоугольников, окружностей, эллипсов, дуг и др. Вид линии, которую оставляет карандаш на поверхности холста, определяют свойства объекта треп, которые перечислены в табл.
Таблица. Свойства объекта треп (карандаш)
Свойство |
Определяет |
Color Width Style Mode |
Цвет линии Толщину линии Вид линии Режим отображения |
Свойство Color задает цвет линии, вычерчиваемой карандашом. В табл. перечислены именованные константы (тип TCoior), которые можно использовать в качестве значения свойства color.
Таблица. Значение свойства Color определяет цвет линии
Константа |
Цвет |
Константа |
Цвет |
clBlack clMaroon clGreen clOlive clNavy clPurple clTeal clGray |
Черный Каштановый Зеленый Оливковый Темно-синий Розовый Зелено-голубой Серый |
clSilver clRed clLime clBlue clFuchsia clAqua clWhite |
Серебристый Красный Салатный Синий Ярко-розовый Бирюзовый Белый |
Свойство width задает толщину линии (в пикселах). Например, инструкция Canvas. Pen. width: =2 устанавливает толщину линии в 2 пиксела.
Свойство style определяет вид (стиль) линии, которая может быть непрерывной или прерывистой, состоящей из штрихов различной длины. В табл. перечислены именованные константы, позволяющие задать стиль линии. Толщина пунктирной линии не может быть больше 1. Если значение свойства Pen.width больше единицы, то пунктирная линия будет выведена как сплошная.
Таблица. Значение свойства Реn. туре определяет вид линии
Константа |
Вид линии |
psSolid |
Сплошная линия |
psDash |
Пунктирная линия, длинные штрихи |
psDot |
Пунктирная линия, короткие штрихи |
psDashDot |
Пунктирная линия, чередование длинного и короткого штрихов |
psDashDotDot |
Пунктирная линия, чередование одного длинного и двух коротких штрихов |
psClear |
Линия не отображается (используется, если не надо изображать границу области, например, прямоугольника) |
Свойство Mode определяет, как будет формироваться цвет точек линии в зависимости от цвета точек холста, через которые эта линия прочерчивается. По умолчанию вся линия вычерчивается цветом, определяемым значением свойства Pen.Color. Однако программист может задать инверсный цвет линии по отношению к цвету фона. Это гарантирует, что независимо от цвета фона все участки линии будут видны, даже в том случае, если цвет линии и цвет фона совпадают. В табл. перечислены некоторые константы, которые можно использовать в качестве значения свойства Pen.Mode.
Таблица. Значение свойства Реп. Mode влияет на цвет линии
Константа |
Цвет линии |
pmBlack |
Черный, не зависит от значения свойства Pen. Color |
pmWhite |
Белый, не зависит от значения свойства Pen. Color |
pmCopy |
Цвет линии определяется значением свойства Pen . Color |
pmNotCopy |
Цвет линии является инверсным по отношению к значению свойства Pen. Color |
pmNot |
Цвет точки линии определяется как инверсный по отношению к цвету точки холста, в которую выводится точка линии |
Кисть
Кисть (canvas.Brush) используется методами, обеспечивающими вычерчивание замкнутых областей, например геометрических фигур, для заливки (закрашивания) этих областей. Кисть, как объект, обладает двумя свойствами, перечисленными в табл.
Таблица. Свойства объекта TBrush (кисть)
Свойство |
Определяет |
Color Style |
Цвет закрашивания замкнутой области Стиль (тип) заполнения области |
Область внутри контура может быть закрашена или заштрихована. В первом случае область полностью перекрывает фон, а во втором – сквозь незаштрихованные участки области будет виден фон. В качестве значения свойства Color можно использовать любую из констант типа TColor (см. список констант для свойства Pen.color в табл.). Константы, позволяющие задать стиль заполнения области, приведены в табл.
Таблица. Значения свойства Brush, style определяют тип закрашивания
Константа |
Тип заполнения (заливки) области |
bsSolid |
Сплошная заливка |
bsClear |
Область не закрашивается |
bsHorizontal |
Горизонтальная штриховка |
bsVertical |
Вертикальная штриховка |
bsFDiagonal |
Диагональная штриховка с наклоном линий вперед |
bsBDiagonal |
Диагональная штриховка с наклоном линий назад |
bsCross |
Горизонтально-вертикальная штриховка, в клетку |
bsDiagCross |
Диагональная штриховка, в клетку |
В качестве примера в листинге 1 приведена программа Стили заполнения областей, которая в окно выводит восемь прямоугольников, закрашенных черным цветом с использованием разных стилей.
Листинг. Стили заполнения областей
unit brustyle_;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
private
{ Private declarations}
public
{ Public declarations )
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// перерисовка формы
procedure TForm1.FormPaint(Sender: TObject);
const
bsName: array[1..8] of string =
('bsSolid','bsClear','bsHorizontal',
'bsVertical','bsFDiagonal','bsBDiagonal',
'bsCross','bsDiagCross');
var
x,y: integer; // координаты левого верхнего угла прямоугольника
w,h: integer; // ширина и высота прямоугольника
bs: TBrushStyle;// стиль заполнения области
k: integer; // номер стиля заполнения
i,j: integer;
begin
w:=40; h:=40; // размер области(прямоугольника)
у:=60;
for i:=l to 2 do
begin
х:=10;
for j:=1 to 4 do
begin
k:=j+(i-1)*4; // номер стиля заполнения
case k of
1: bs:= bsSolid;
2: bs:= bsClear;
3: bs:= bsHorizontal;
4: bs:= bsVertical;
5: bs:= bsFDiagonal;
6: bs:= bsBDiagonal;
7: bs:= bsCross;
8: bs:= bsDiagCross;
end;
// вывод прямоугольника
Canvas.Brush.Color := clGreen; // цвет закрашивания – зеленый
Canvas.Brush.Style := bs; // стиль закрашивания
Canvas . Rectangle (x, y, x+w, y-j-h) ;
// вывод названия стиля
Canvas.Brush.Style := bsClear;
Canvas.TextOut(x, y-55, bsName[k]); // вывод названия стиля
x := x+w+30;
end;
у := y+h+30;
end;
end;
end.
