Загрузка данных


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.