- •Введение
- •Общие указания к выполнению практических работ
- •Практическая работа №1
- •Теоретическая часть
- •Пример выполнения задания
- •Задание:
- •Спецификация программы:
- •Постановка задачи:
- •Блок-схема алгоритма программы
- •Варианты заданий
- •Контрольные вопросы
- •Практическая работа №2
- •Теоретическая часть
- •Методы стратегии ‘белого ящика’
- •Метод покрытия операторов
- •Метод покрытия решений (покрытия переходов)
- •1.3 Метод покрытия условий
- •1.4 Критерий решений (условий)
- •1.5 Метод комбинаторного покрытия условий
- •Порядок выполнения практической работы
- •Контрольные вопросы
- •Практическая работа №3
- •Теоретические часть
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа №6
- •Описание практической работы Теоретические сведения
- •Операторы обнаружения и обработки исключений
- •Задание 1
- •Задание 2
- •Задание 2
- •Контрольные вопросы
- •Практическая работа №8
- •Описание лабораторной работы Задание 1
- •Задание 2
- •Методы компонента tMemo
- •Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы
- •Практическая работа №10
- •Теоретическая часть
- •Класс Tstrings
- •Задание 1
- •Задание 2
- •Задание 3
- •Основные свойства компонента StringGrid
- •Описание лабораторной работы Задани 1
- •Задание 2
- •Задание 1
- •Контрольные вопросы
- •Практическая работа №13
- •Теоретическая часть
- •Описание лабораторной работы
- •Контрольные вопросы
- •Практическая работа №14
- •Теоретическая часть RadioGroup, RadioButton и GroupBox - группы радиокнопок
- •Свойства компонента CheckBox
- •Свойства компонента RadioButton
- •Button и BitBtn - управляющие кнопки
- •Свойства компонента BitBtn
- •Задание 1
- •Свойства компонента SpeedButton
- •Компонент UpDown
- •Описание лабораторной работы Задание 1
- •Задание 2
- •Задание 3
- •TrackBar и ScrollBar - ползунки и полосы прокрутки
- •Контрольные вопросы
- •Практическая работа №15
- •Теоретические сведения
- •Описание лабораторной работы Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Панели общего назначения — компоненты Panel, GroupBox, Bevel, Splitter
- •Задание 1
- •Задание 2
- •Компонент PageControl
- •Задание 3
- •Задание 4
- •Контрольные вопросы
- •Практическая работа №17
- •Теоретические сведения
- •Описание практическая работы Задание 1
- •Контрольные вопросы
- •Практическая работа №18
- •Теоретические сведения Компонент MainMenu - главное меню
- •Описание лабораторной работы Задание 1
- •Контрольные вопросы
- •Практическая работа №19
- •Теоретические сведения Стандартные диалоги и их фрагменты
- •Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы
- •Практическая работа №20
- •Теоретические сведения
- •I способ
- •II способ
- •Свойства компонента TreeViewl
- •Задание
- •Контрольные вопросы
- •Практическая работа №21
- •Теоретические сведения Компонент tImage
- •Задание 1
- •Ход выполнения
- •Задание 2
- •Ход выполнения
- •Задание 3
- •Задание 4
- •Задание 1
- •Задание 3
- •Задание 4
- •Контрольные вопросы
- •Практическая работа №23
- •Теоретические сведения
- •Практическая работа №24
- •Теоретические сведения Компонент построения графиков и диаграмм Chart
- •Свойства компонента Chart
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа №25
- •Прием перетаскиваемых объектов
- •Задание 1
- •Контрольные вопросы
Задание 3
Написать приложение, которое показывает работу светофора по следующему циклическому алгоритму (в соответствии с номером варианта):
красный −> красный + желтый −> зеленый −> мигающий зеленый
красный + желтый −> желтый −> мигающий желтый −> зеленый
красный −>мигающий красный −>желтый+красный −> зеленый
красный + зеленый −> желтый −> мигающий желтый −> зеленый
зеленый −> мигающий красный −> желтый+красный
мигающий желтый −>зеленый −> мигающий зеленый −>красный
мигающий зеленый −> красный + желтый −> зеленый
желтый + зеленый −> зеленый −> мигающий красный
мигающий зеленый −> красный −>желтый+красный
мигающий зеленый −>желтый+красный −> зеленый
зеленый −> красный + зеленый −>желтый+красный
красный −> желтый+красный мигающий −> зеленый
красный + зеленый мигающий −> желтый + зеленый −> желтый
желтый+красный −> зеленый мигающий−> желтый + зеленый
желтый мигающий−> зеленый мигающий−>желтый+красный
Задание 4
Создать приложение «Автопогрузчик», примерный вид формы показан на рис.5. Для кнопок описать соответствующее движение:
«Вперед» «Поднять» «Переместить» «Опустить» «Назад»
автопогрузчика с грузом до опоры
груз с подъемной платформой поднять до верха опоры
груз переместить на опору
опустить подъемную платформу
автопогрузчик без груза откатывается на исходную позицию
В процессе разработки приложения предусмотреть следующие условия работы: груз не может быть перемещен, если автопогрузчик не подведен к опоре и подъемная платформа не находится на уровне верха опоры.
Для удобства работы, возможно, осуществлять совместные действия для группы компонентов. На этапе проектирования назначают дополнительное свойство Tag отличное от нуля, но одинаковое для каждого компонента группы. Например, если необходимо перемещать группу компонентов со свойством Tag = 1 влево, то запишем следующий код:
for (int i=0; i < ComponentCount; i++) {
if (Components[i] > Tag == 1)
((TControl *)Components[i]) > Left +=1; }
Подъемная платформа Груз Опора
Рис.2 Пример заполнения формы приложение «Автопогрузчик»
Контрольные вопросы
Для чего предназначен компонент Shape?
Основные свойства компонента Shape?
Какие подствойства имеет свойство Brush?
Каковы значения подсвойства Style свойства Brush?
Что определяет свойство Pen?
Практическая работа №23
Тема: «Создание рисуноков на канве».
Цель работы: Научиться создавать графические рисунки на канве.
Время выполнения: подготовка – 5 мин; выполнение – 255 мин.; проверка – 10 мин; всего – 270 мин.
Теоретические сведения
Объект Canvas – это поверхность (формы или компонента image), на которой соответствующие методы могут вычерчивать графические примитивы. Вид графических элементов определяют свойства поверхности, на которой эти элементы вычерчиваются.
Методы объекта Canvas
Метод |
Описание |
TextOut (х,у,s) |
Выводит строку s от точки с координатами (х, у). Шрифт определяет свойство Font поверхности (canvas), на которую выводится тест, цвет закраски области вывода текста – свойство Brush этой же поверхности |
Draw(x,y,b) |
Выводит от точки с координатами (х, у) битовый образ b. Если значение свойства Transparent поверхности, на которую выполняется вывод, равно true, то точки, цвет которых совпадает с цветом левой нижней точки битового образа, не отображаются |
LineTo (x,y) |
Вычерчивает линию из текущей точки в точку с указанными координатами. Вид линии определяет свойство Реn |
MoveTo(x,y) |
Перемещает указатель текущей точки в точку с указанными координатами |
PolyLine (pi) |
Вычерчивает ломаную линию. Координаты точек перегиба задает параметр р1 – массив структур типа TPoint. Если первый и последний элементы массива одинаковы, то будет. вычерчен замкнутый контур. Вид линии определяет свойство Реn |
Polygon (pi) |
Вычерчивает и закрашивает многоугольник. Координаты углов задает параметр p1 – массив структур типа TPoint. Первый и последний элементы массива должны быть одинаковы. Вид границы определяет свойство Реп, цвет и стиль закраски внутренней области – свойство Brush |
Ellipse (x1,y1,x2,y2) |
Вычерчивает эллипс, окружность или круг. Параметры x1, y1, х2 и у2 задают размер прямоугольника, в который вписывается эллипс. Вид линии определяет свойство Реn
|
Arc(x1, y1,x2, y2, х3,у3,х4,у4) |
Вычерчивает дугу. Параметры x1, y1, x2, у2 определяют эллипс, из которого вырезается дуга, параметры х2, у2, х3, и у4 – координаты концов дуги. Дуга вычерчивается против часовой стрелки от точки (х3, у3) к точке (х4, у4). Вид линии (границы) определяет свойство Реn, цвет и способ закраски внутренней области – свойство Brush
|
Rectangle (x1, y1, х2,у2) |
Вычерчивает прямоугольник. Параметры x1, y1, x2 и у2 задают координаты левого верхнего и правого нижнего углов. Вид линии определяет свойство Реп, цвет и способ закраски внутренней области – свойство Brush |
RoundRec (x1, y1, х2,у2, х3,у3) |
Вычерчивает прямоугольник со скругленными углами. Параметры x1, y1, х2 и у2 задают координаты левого верхнего и правого нижнего углов, х3 и у3 – радиус скругления. Вид линии определяет свойство Реn, цвет и способ закраски внутренней области – свойство Brush
|
Свойства объекта Canvas
Свойство |
Описание |
Transparent |
Признак использования "прозрачного" цвета при выводе битового образа методом Draw. Если значение свойства равно true, то точки, цвет которых совпадают с цветом левой нижней точки битового образа, не отображаются |
Pen |
Свойство Реn представляет собой объект, свойства которого определяют цвет, толщину и стиль линий, вычерчиваемых методами вывода графических примитивов |
Brush |
Свойство Brush представляет собой объект, свойства которого определяют цвет и стиль закраски областей, вычерчиваемых методами вывода графических примитивов |
Font |
Свойство Font представляет собой объект, уточняющие свойства которого определяют шрифт (название, размер, цвет, способ оформления), используемый для вывода на поверхность холста текста |
Свойства объекта Реn
Свойство |
Описание |
Color |
Цвет линии (clBlack – черный; clMaroon – каштановый; clGreen – зеленый; clOlive – оливковый; clNavy – темно-синий; clPurple – розовый; clTeal – зелено-голубой; clGray – серый; clSilver – серебристый; clRed – красный; clLime – салатный; clBlue – синий; clFuchsia – ярко-розовый; clAqua – бирюзовый; clWhite – белый) |
Style |
Стиль (вид) линии. Линия может быть: psSolid – сплошная; psDash – пунктирная (длинные штрихи); psDot – пунктирная (короткие штрихи); psDashDot – пунктирная (чередование длинного и короткого штрихов); psDashDotDot – пунктирная (чередование одного длинного и двух коротких штрихов); psClear – не отображается (используется, если не надо изображать границу, например, прямоугольника) |
Width |
Толщина линии задается в пикселах. Толщина пунктирной линии не может быть больше 1 |
Свойства объекта Brush
Свойство |
Определяет |
Color |
Цвет закрашивания замкнутой области |
Style |
Стиль (тип) заполнения области (bsSolid – сплошная заливка; bsClear – область не закрашивается; bsHorizontal – горизонтальная штриховка; bsVertical – вертикальная штриховка; bsFDiagonal – диагональная штриховка с наклоном линий вперед; bsBDiagonal – диагональная штриховка с наклоном линий назад; bsCross – горизонтально-вертикальная штриховка, в клетку; bsDiagCross – диагональная штриховка, в клетку) |
Доступ к канве любого обьекта происходит следующим образом:
имя_обьекта->Canvas->Свойство/Метод;
Канва, в ее графическом представлении, это двумерный массив пикселей. Каждый элемент этого массива хранит в себе информацию о цвете. Доступ к отдельно взятому пикселю можно получить из свойства Pixels, подробнее о котором будет написана ниже.
Точка (0,0) - эта верхний левый угол канвы. Значение по x-координате возрастает слево навправо от точки (0,0), а значение по y-координате сверху вниз.
Задание 1
Создайте приложения, представленные на рисунках.
|
|
Рис.1 Приложение «Флаг РФ» |
Рис.2 Приложение «Олимпийские кольца» |
Задание 2
Создайте поздравительную открытку, например с Новым годом. Добавьте к ней анимацию (мигающие шарики на ёлке, падающие снежинки и др.).
Задание 3
Создайте приложение, вид которого представлен на рис. 3.
Рис. 3 Вид приложеия
В приложении, кроме общего вида необходимо создать иллюзию движения транспорта. Машины так же, как и их цвет появляются рандомно. Машины должны двигаться по всем четырем рядам. Когда очередная машина достигает «конца» шоссе, то появляется следующая с другим цветом.
Контрольные вопросы
Что такое объект Canvas?
Какой метод Выводит строку s от точки с координатами (х, у)?
Какой метод выводит от точки с координатами (х, у) битовый образ b?
Какой метод вычерчивает линию из текущей точки в точку с указанными координатами?
Какой метод вычерчивает и закрашивает многоугольник?
Какой метод Вычерчивает эллипс, окружность или круг?
Какой метод вычерчивает дугу?
Какой метод вычерчивает прямоугольник?
Какой метод вычерчивает прямоугольник со скругленными углами?
Объект, свойства которого определяют цвет, толщину и стиль линий, вычерчиваемых методами вывода графических примитивов?
Объект, свойства которого определяют цвет и стиль закраски областей, вычерчиваемых методами вывода графических примитивов?
Объект, уточняющие свойства которого определяют шрифт (название, размер, цвет, способ оформления), используемый для вывода на поверхность холста текста?
