- •Введение
- •Общие указания к выполнению практических работ
- •Практическая работа №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
- •Контрольные вопросы
Задание 2
Ввести три числа - x,y,z. Вычислить по усмотрению u=sin(x), u=cos(x) или u=tg(x). Найти по выбору максимальное из трех чисел: max(u,y,z). Cоздать форму, представленную на рис. 2., и написать соответствующую программу.
Рис. 3
Создайте форму, скорректировав текст надписей и положение окон TEdit.
Выберите в меню компонентов Standard кмпонент ТCheckBox и поместите его в нужное место формы. С помощью инспектора объектов измените заголовок (Caption) на maxabs. В зависимости от того, нажата или нет кнопка, булева переменная CheckBox1.Checked будет принимать значение true или false.
Выберите в меню компонентов Standard пиктограмму и поместите ее в нужное место формы. На форме появится окаймленный линией чистый прямоугольник с заголовком RadioGroup1. Замените заголовок (Caption) на U(x).
Для того, чтобы разместить на компоненте кнопки, необходимо свойство Columns установить равным единице (кнопки размещаются в одном столбце). Дважды щелкните по правой части свойства Items мышью, появится строчный редактор списка заголовков кнопок. Наберите три строки с именами: в первой строке - cos(x), во второй - sin(x), в третьей - tg(x), нажмите ОК.
После этого на форме внутри окаймления появится три кнопки- переключателя с введенными надписями.
Обратите внимание на то, что в тексте программы появится переменная RadioGroup1 типа TRadioGroup. Теперь при нажатии одной из кнопок группы в переменной целого типа RadioGroup1−>ItemIndex будет находиться номер нажатой клавиши (отсчитывается от нуля), что используется в тексте приведенной программы.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit1->Text="0,1";
Edit2->Text="0,356";
Edit3->Text="0";
Memo1->Clear();
Memo1->Lines->Add("Рез-ты ст. гр.920201 Петрова И.И.");
}
//-----------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double x,y,z,u,ma;
// Ввод исходных данных и вывод в окно Memo1
x=StrToFloat(Edit1->Text);
Memo1->Lines->Add("x="+Edit1->Text);
y=StrToFloat(Edit2->Text);
Memo1->Lines->Add("y="+Edit2->Text);
z=StrToFloat(Edit3->Text);
Memo1->Lines->Add("z="+Edit3-z=StrToFloat(Edit3->Text);
Memo1->Lines->Add("z="+Edit3->Text);
// Проверка номера нажатой кнопки и выбор //соответствующей ей функции
switch(RadioGroup1->ItemIndex)
{
case 0: u=cos(x); break;
case 1: u=sin(x); break;
case 2: u=tan(x); break;
}
if (CheckBox1->Checked) // Проверка состояния //кнопки CheckBox1
{
u=fabs(u);
y=fabs(y);
z=fabs(z);
}
// Нахождение максимального из трех чисел
if (u>y) ma=u; else ma=y;
if (z>ma) ma=z;
if (CheckBox1->Checked) Memo1->Lines->Add("maxabc="+
FloatToStrF(ma,ffFixed,8,6));
else Memo1->Lines->Add("max="+
FloatToStrF(ma,ffFixed,8,6)); }
Задание 3
Отредактируйте вид формы и текст программы в соответствии с полученным заданием. Предусмотрите вывод информации, показывающий, по какой ветви производились вычисления. В качестве f(x) использовать по выбору: x2, x3, ex.
TrackBar и ScrollBar - ползунки и полосы прокрутки
Компонент TrackBar представляет собой элемент управления в виде ползунка, который пользователь может перемещать курсором мыши или клавишами во время выполнения
Компонент ScrollBar представляет собой стандартную линейку прокрутки Windows. Однако он может использоваться и для целей прокрутки (впрочем, многие оконные компоненты C++Builder имеют собственные полосы прокрутки), и для управления, подобно компоненту TrackBar.
Компонент UpDown - компонент для задания нужного целого числа с помощью двух кнопок.
Свойство |
Значение |
AlignButton |
Определяет где будет находиться кнопка: udLeft - слева от компонента, udRight - справа от компонента. |
Associate |
Служит для выбора из выпадающего списка, куда будет "прицеплен" этот компонент. |
Increment |
Увеличение и уменьшение за один щелчок по клавишам. |
Max |
Максимальное значение. |
Min |
Минимальное значение. |
Orientation |
Расположение кнопок: udVertical - вертикально, udHorizontal - горизонтально. |
Position |
Начальное значение. |
Компонент TrackBar из раздела Win32 используется для визуального задания числовых значений с помощью ползунка. Основное свойство Position определяет текущее числовое значение, свойство Fraquency — частоту засечек, свойства Orientation, TickMarcs, TickStyle, ThumbLength, SetStart, SetEnd и некоторые другие влияют на внешний вид компоненты.
C помощью свойств Min и Max задаем границы изменения числовых значений. Для их отображения слева и справа от TrackBar размещаем две компоненты Label и в обработчике события OnActivate для формы определяем отображаемые в метках значения.
Для проверки другого способа задания числовых величин размещаем компоненты UpDown из раздела Win32 и Edit из раздела Standard. C помощью свойства Assosiate компонента UpDown устанавливаем связь между этими двумя компонентами. С помощью свойства Increment указываем шаг изменения числового значения при щелчке мышью. Основное свойство Position определяет текущее числовое значение, а свойства Min и Max определяют границы его изменения. Свойство AlignButton влияет на взаимное расположение двух компонентов, Orientation определяет ориентацию UpDown.
Событие OnChange для компонента TrackBar возникает при изменении числового значения в результате перемещения ползунка. В его обработчике TrackBar1Change получаем значение в переменную b.
Событие OnClick для UpDown возникает при щелчке мышью по UpDown, то есть при изменении его значения. В его обработчике UpDown1Click забираем числовое значение в переменную a.
int a,b,r; /* Это глобальные переменные, которые используются в разных
функциях (обработчиках событий)*/
/* Событие OnClick для UpDown*/
void __fastcall TForm1::UpDown1Click(TObject *Sender,
TUDBtnType Button)
{ a=UpDown1->Position;
}
/* Событие OnChange для TrackBar*/
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{ b=TrackBar1->Position;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
r=a+b;
ShowMessage(IntToStr(r));
}
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Label1->Caption=IntToStr(TrackBar1->Min);
Label2->Caption=IntToStr(TrackBar1->Max);
}
