Компонента RadioGroup

В меню Standard выберите пиктограмму , поместите ее в нужное место формы. На форме появится окаймленный линией чистый прямоугольник с заголовком RadioGroup 1. Замените заголовок (Caption) на «Выбор функции».

В инспекторе объектов в свойстве Items вызовите строчный редактор списка заголовков кнопок и наберите три строки с именами выбираемых функций (cos (x), sin (x), tg (x)), нажмите ОК. После этого внутри компоненты появятся три кнопки-переключателя с введенными надписями.

В тексте Unit 1. h появилась переменная RadioGroup 1 типа TRadioGroup. Теперь при нажатии одной из кнопок группы в переменной целого типа RadioGroup 1-> ItemIndex будет находиться номер выбранной строчки (отсчитывается от нуля).

В функции FormCreate () желательно установить начальное значение этой переменной, например, RadioGroup 1-> ItemIndex = 0.

Подготовив форму, создайте функции-обработчики событий FormСreate и Botton1Сlick аналогично первой работе. Текст функций приведен в примере.

Запустите программу и убедитесь в том, что все ветви алгоритма выполняются правильно. Форма приведена на рис. 2.1.

Рис. 2.1

Текст программы может быть следующим:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "math.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1:: FormCreate (TObject *Sender)

{

Edit1->Text="0,1";

Edit2->Text="0,356";

Edit3->Text="-3,5";

Memo1->Clear();

Memo1->Lines->Add("Лабораторная работа 2");

RadioGroup1->ItemIndex = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button1Click (TObject *Sender)

{

double x,y,z,u,ma;

x=StrToFloat(Edit1->Text);

y=StrToFloat(Edit2->Text);

z=StrToFloat(Edit3->Text);

// Проверка номера нажатой кнопки и выбор соответствующей функции

switch(RadioGroup1->ItemIndex){

case 0: u=cos(x);

Memo1->Lines->Add("Cos(x)= "+FloatToStrF(u,ffFixed,8,6));

break;

case 1: u=sin(x);

Memo1->Lines->Add("Sin(x)= "+FloatToStrF(u,ffFixed,8,6));

break;

case 2: u=tan(x);

Memo1->Lines->Add("Tg(x)= "+FloatToStrF(u,ffFixed,8,6));

break;

}

// Проверка состояния кнопки CheckBox1

if (CheckBox1->Checked){

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("Max модулей= "+FloatToStrF(ma,ffFixed,8,6));

else Memo1->Lines->Add("Max= "+FloatToStrF(ma,ffFixed,8,6));

}

2.3.1. Пример написания программы консольного приложения

Текст программы может иметь вид

//---------------------------------------------------------------------------

#include <vcl.h>

#include <conio.h>

#include <stdio.h>

#include <math.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

int main(int argc, char* argv[])

{

double x,y,z,u,ma;

int kod;

puts("Input x, y, z");

scanf("%lf%lf%lf",&x, &y, &z);

puts("Function U(x):\n 0 - cos(x)\n 1 - sin(x)\n 2 - tan(x)");

scanf("%d", &kod);

switch(kod){

case 0: u=cos(x); printf("\n\tCos(x)= %8.6lf",u); break;

case 1: u=sin(x); printf("\n\Sin(x)= %8.6lf",u); break;

case 2: u=tan(x); printf("\n\Tg(x)= %8.6lf",u); break;

}

puts("\nMax ABS - 1, Else - Max");

scanf("%d", &kod);

if (kod == 1){

u = fabs(u);

y = fabs(y);

z = fabs(z);

}

if (u>y) ma=u;

else ma=y;

if (z>ma) ma=z;

if (kod==1)printf("Max ABS = %8.6lf", ma);

else printf("Max = %8.6lf", ma);

puts("\nPress any key... ");

getch();

return 0;

}

Результаты выполнения программы:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: