Текст программы

unit Main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TMainForm = class(TForm)

Figure: TRadioGroup;

ra: TEdit;

rb: TEdit;

ta: TEdit;

tb: TEdit;

tc: TEdit;

cr: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Button1: TButton;

Button2: TButton;

Image: TImage;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainForm: TMainForm;

implementation

{$R *.DFM}

procedure TMainForm.Button1Click(Sender: TObject);

var

a,b,c,r,p,s,h:Real;

begin

with Image.Picture.Bitmap do

begin

Width:=0; { Для очистки изображения }

Height:=0;

Width:=Image.Width;

Height:=Image.Width;

end;

 

case Figure.ItemIndex of

0:begin

a:=StrToFloat(ra.Text);

b:=StrToFloat(rb.Text);

if (a<=0) or (b<=0) then

ShowMessage('Некорректный ввод')

else

begin

ShowMessage('Площадь прямоугольника равна '+

FloatToStr(a*b));

with Image.Picture.Bitmap.Canvas do

Rectangle(0,0,Round(a),Round(b));

end;

end;

1:begin

a:=StrToFloat(ta.Text);

b:=StrToFloat(tb.Text);

c:=StrToFloat(tc.Text);

if (a<=0) or (b<=0) or (c<=0) then

ShowMessage('Некорректный ввод')

else

if (a+b<=c) or (b+c<=a) or (a+c<=b) then

ShowMessage('Треугольник не существует')

else

begin

p:=(a+b+c)/2;

s:=Sqrt(p*(p-a)*(p-b)*(p-c));

ShowMessage('Площадь треугольника равна '+

FloatToStr(s));

with Image.Picture.Bitmap.Canvas do

begin

MoveTo(0,0);

LineTo(Round(a),0);

h:=2*s/a;

LineTo(Round(Sqrt(Sqr(c)-Sqr(h))),

Round(h));

LineTo(0,0);

end;

end;

end;

2:begin

r:=StrToFloat(cr.Text);

if r<=0 then

ShowMessage('Некорректный ввод')

else

begin

ShowMessage('Площадь круга равна '+

FloatToStr(Pi*Sqr(r)));

with Image.Picture.Bitmap.Canvas do

Ellipse(0,0,Round(2*r),Round(2*r));

end;

end;

end;

end;

 

procedure TMainForm.Button2Click(Sender: TObject);

begin

Close;

end;

end.