unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, Math;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
CheckBox1: TCheckBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
RadioGroup1: TRadioGroup;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '0.1'; // Начальный x
Edit2.Text := '0.793'; // Начальный y
Label4.Caption := '';
Memo1.Clear;
Memo1.Lines.Add('Лабораторная Работа N2');
RadioGroup1.ItemIndex := 1; // Переключатель по умолчанию: f(x) = x^2
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x, y, s, f: Extended;
st: String;
begin
// 1. Считывание данных
x := StrToFloat(Edit1.Text);
y := StrToFloat(Edit2.Text);
// 2. Выбор функции f(x)
case RadioGroup1.ItemIndex of
0: f := Sinh(x); // sh(x)
1: f := Sqr(x); // x^2
2: f := Exp(x); // e^x
end;
// 3. Расчет веток (Вариант 18)
if (y > -1) and (y < x) then
begin
s := Sin(4 * f + 2 * y);
st := 'Ветвь 1';
end
else if x > y then
begin
s := Cos(Abs(f * y)) + Power(f, 3);
st := 'Ветвь 2';
end
else // x = y
begin
s := Sqr(f + y);
st := 'Ветвь 3';
end;
// 4. Вывод наименования ветви
Label4.Caption := st;
// 5. Вывод результата в Memo
if CheckBox1.Checked then
Memo1.Lines.Add('Результат s = ' + IntToStr(Round(s)))
else
Memo1.Lines.Add('Результат s = ' + FloatToStrF(s, ffGeneral, 8, 2));
end;
end.