Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по ПР ПМ0_Копец1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.37 Mб
Скачать

Задание 2

Ввести три числа - x,y,z. Вычислить по усмотрению u=sin(x), u=cos(x) или u=tg(x). Найти по выбору максимальное из трех чисел: max(u,y,z). Cоздать форму, представленную на рис. 2., и написать соответствующую программу.

Рис. 3

  1. Создайте форму, скорректировав текст надписей и положение окон TEdit.

  2. Выберите в меню компонентов Standard кмпонент ТCheckBox и поместите его в нужное место формы. С помощью инспектора объектов измените заголовок (Caption) на maxabs. В зависимости от того, нажата или нет кнопка, булева переменная CheckBox1.Checked будет принимать значение true или false.

  3. Выберите в меню компонентов 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);

}