unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Label4: TLabel;
    Memo1: TMemo;
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    CheckBox1: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='1';
Edit2.Text:='1';
Memo1.Clear;
Memo1.Lines.Add('Рез-ты ст. гр. 020603 Лебедева А.А.');
RadioGroup1.ItemIndex:=0;

end;

procedure TForm1.Button1Click(Sender: TObject);
  var x,f,u:extended;
      i:integer;
      Correct: boolean;
begin
     Memo1.Lines.Clear;
     Memo1.Lines.Add('Рез-ты ст. гр. 020603 Лебедева А.А.');
     Correct := true;

     try
       i:=StrToInt(Edit1.Text);
     except
       on EConvertError do
       begin
          Memo1.Lines.Add('Некорректный ввод данных. i должно быть целым');
          Correct:=false;
       end;
     end;

     try
       x:=StrToFloat(Edit2.Text);
     except
       on EConvertError do
       begin
          Memo1.Lines.Add('Некорректный ввод данных. x должно быть вещественным');
          Correct:=false;
       end;   
     end;

     if Correct then
     begin

       Memo1.Lines.Add(' i = '+Edit1.Text);
       Memo1.Lines.Add(' x = '+Edit2.Text);

       case RadioGroup1.ItemIndex of
          0: f:=cos(x);
          1: f:=sqr(x);
          2: f:=exp(x);
       end;

       if (i mod 2=1) and  (x>0) then u:=i*sqrt(abs(f))
       else if (i mod 2=0) and  (x<0) then u:=i/2*sqrt(abs(f))
            else u:=sqrt(abs(i*f));

       if CheckBox1.Checked then Memo1.Lines.Add(' u = '+IntToStr(Round(u)))
       else Memo1.Lines.Add(' u = '+FloatToStrF(u,ffGeneral,8,2));
     end;  
end;


end.
