- •Введение
- •Общие указания к выполнению практических работ
- •Практическая работа №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
- •Контрольные вопросы
Описание лабораторной работы Задани 1
Требуется создать приложение отображающее расписание занятий в табличной форме. Предметы выбираются из списка и по щелчку мыши заносятся в выбранную ячейку таблицы.
1. Создать приложение. На форме разместить необходимые компоненты.
2. Установить следующие свойства:
Компонент |
Свойство |
Значение |
Form1 |
Caption |
Расписание |
Form1 |
BorderStyle |
bsSingle |
Form1 |
BorderIcons->biMaximize |
false |
Label1 |
Caption |
Предметы |
ComboBox1 |
Text |
|
Button1 |
Caption |
Добавить |
Button2 |
Caption |
Удалить |
Button3 |
Caption |
Выход |
StringGrid1 |
BorderStyle |
bsNone |
StringGrid1 |
ColCount |
7 |
StringGrid1 |
RowCownt |
7 |
StringGrid1 |
ScrollBars |
ssNone |
3. Задать начальный список предметов в c свойстве Items компонента ComboBox1. Первый элемент в списке должен быть пустым для возможности удаления предмета из ячейки таблицы.
4. Создать обработчик события OnShow компонента Form1. Это событие возникает в момент прорисовки формы. В тело обработчика события ввести код:
AnsiString par[] = {"1 пара","2 пара","3 пара","4 пара",
"5 пара","6 пара"};
AnsiString day[] = {"Пн","Вт","Ср","Чт","Пт","Сб"};
for(int i=1;i<7;i++)
{
StringGrid1->Cells[0][i]=par[i-1];
StringGrid1->Cells[i][0]=day[i-1];
}
5. Создать обработчик события OnClick компонента Button1. В тело обработчика события вести код:
ComboBox1->Items->Add(ComboBox1->Text);
ComboBox1->Text="";
6. Создать обработчик события OnClick компонента Button2. В тело обработчика события вести код:
if(ComboBox1->ItemIndex >=1)
ComboBox1->Items->Delete(ComboBox1->ItemIndex);
7. Создать обработчик события OnClick компонента Button3. В тело обработчика события вести код:
Close();
8. Создать обработчик события OnSelectCell компонента StringGrid1. В тело обработчика события вести код:
StringGrid1->Cells[ACol][ARow]=
ComboBox1->Items->Strings[ComboBox1->ItemIndex];
Запустить приложение. Убедиться в работоспособности всех функций приложения.
Задание 2
Написать программу перемножения двух матриц размерностью 4х4.
Пример умножения двух матриц:
Умножить
на
.
Решение.
В ходе вычислений были выполнены следующие действия
Умножаем 1 строку на 1 столбец 1 • (-1) + (-2) • 23 + 3 • 4.4 + 1 • (-4.4) = -38.2
Умножаем 1 строку на 2 столбец 1 • 2 + (-2) • (-23) + 3 • 12 + 1 • 12 = 96
Умножаем 1 строку на 3 столбец 1 • 3 + (-2) • 1 + 3 • 1 + 1 • (-1) = 3
Умножаем 2 строку на 1 столбец 23 • (-1) + (-23) • 23 + 1 • 4.4 + 2 • (-4.4) = -556.4
Умножаем 2 строку на 2 столбец 23 • 2 + (-23) • (-23) + 1 • 12 + 2 • 12 = 611
Умножаем 2 строку на 3 столбец 23 • 3 + (-23) • 1 + 1 • 1 + 2 • (-1) = 45
Умножаем 3 строку на 1 столбец (-44) • (-1) + 12 • 23 + 0 • 4.4 + 1 • (-4.4) = 315.6
Умножаем 3 строку на 2 столбец (-44) • 2 + 12 • (-23) + 0 • 12 + 1 • 12 = -352
Умножаем 3 строку на 3 столбец (-44) • 3 + 12 • 1 + 0 • 1 + 1 • (-1) = -121
Пример компоновки формы
Спецификация программы:
1) Для работы с матрицами (ввод и вывод матриц) должен быть использован компонент StringGrid.
2) Перемножаемые матрицы должны вводиться пользователем. То есть таблица StringGrid1 и StringGrid2 должны быть редактируемые.
3) Таблица с результатом StringGrid3должна быть закрыта для редактирования пользователем.
Контрольные вопросы
Как узнать количество строк и столбцов в таблице?
Как очистить всю таблицу?
Как убрать фиксированные столбец и строку?
Как программно добавить столбец и строку?
Что означает оператор StringGrid1->ColWidths[Index] = -1;?
Что означает оператор A=StringGrid1->Cells[i][j];?
Что означает оператор R=StringGrid1->VisibleColCount;?
Практическая работа № 12
Тема: «Обработка событий клавиатуры и мыши в приложении».
Цель работы: Ознакомление с основными принципами программирования работы с манипулятором «мышь» и клавиатурой в C++ Builder.
Время выполнения: подготовка – 5 мин; выполнение – 165 мин.; проверка – 10 мин; всего – 180 мин.
Теоретическая часть
Основные события клавиатуры и мыши
Событие |
Описание |
OnKeyDown |
Происходит при нажатии пользователем любой клавиши, включая функциональные и вспомогательные, такие, как Shift, Alt и Ctrl. клавиши, когда компонент находится в фокусе при нажатии пользователем |
OnKeyPress |
Происходит при нажатии одной из алфавитно-цифровых клавиш, клавиши Tab, BackSpace, Enter или Esc. |
OnKeyUp |
Происходит при отпускании клавиши. |
OnMouseDown
|
Событие возникает при нажатии кнопки мыши на компоненте. Параметры, передаваемые обработчику события, содержат информацию о том, какой кнопкой мыши щелкнули и какие функциональные клавиши при этом были задействованы (Alt, Ctrl или Shift), а также координаты X и Y курсора мыши в момент щелчка.
|
OnMoveMouse |
Происходит при перемещении курсора через объект управления |
OnMouseUp
|
Событие возникает при отпускании кнопки мыши на компоненте, если перед этим кнопка была нажата на этом же компоненте.
|
Cобытия для клавиатуры
Событие OnEnter наступает в момент получения фокуса
Событие OnExit наступает в момент потери элементом фокуса, в момент его переключения на другой элемент.
Событие OnCreate возникает в момент создания формы и может использоваться для выполнения каких-то процедур настройки ее самой или содержащихся на ней компонентов.
Событие OnResize заключительное событие при изменении размеров формы.
Событие OnShortCut возникает при нажатии пользователем клавиши, до того, как возникло стандартное событие OnKeyDown.
