unit Vieleck;
{Beispiel 1/D; Pirker Marco Matr.Nr. 0825635}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask;
type
TFormVieleck =
class(TForm)
LabelEckpunkte: TLabel;
{Label für die Eckpunkte}
LabelUmkreisradius: TLabel;
{Label für den Umkreisradius}
LabelFlaecheninhalt: TLabel;
{Label für den Flächeninhalt}
Editradius: TEdit;
{Eingabefeld für den Umkreisradius}
Editflaeche: TEdit;
Editeck: TEdit;
{Eingabefeld für die Anzahl der Ecken}
ButtonBerechnen: TButton;
{Button zum Berechnen des Vielecks}
ButtonEnde: TButton;
{Button zum Beenden des Programms}
procedure ButtonEndeClick(Sender: TObject);
procedure ButtonBerechnenClick(Sender: TObject);
procedure EditeckChange(Sender: TObject);
procedure EditradiusChange(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
FormVieleck: TFormVieleck;
implementation
{$R *.dfm}
procedure TFormVieleck.ButtonBerechnenClick(Sender: TObject);
var k,r,A:Real;
{k = Variable für die ANzahl der Ecken
r = Variable für den Umkreisradius
A = Variable für den Flächeninhalt }
begin
if (Editeck.Text='
')
or (Editradius.Text='
')
or (Editeck.Text='
')
or (Editradius.Text='
')
then ShowMessage('
Bitte geben sie die Anzahl der Ecken des Vielecks und einen Umkreisradius ein.')
else begin
k:=StrtoFloat(Editeck.Text);
r:=StrtoFloat(Editradius.Text);
if (k<3)
or (r<=0)
then begin
ShowMessage('
Falsche Eingabe! (Anzahl der Ecken muss mindestens 3 betragen und der Radius muss größer als 0 sein).')
end
else begin
A:=(k*Sqr(r))/2*sin((2*Pi)/k);
Editflaeche.Text:=FloattoStr(A);
end;
end;
end;
procedure TFormVieleck.ButtonEndeClick(Sender: TObject);
begin
Application.terminate
{Der Ende Button beendet das Programm}
end;
procedure TFormVieleck.EditeckChange(Sender: TObject);
var key:Char;
begin
If not(key
in [#48..#57,#8])
then
key := #0;
end;
procedure TFormVieleck.EditradiusChange(Sender: TObject);
var key:Char;
begin
If not(key
in [#48..#57,#8])
then
key := #0;
end;
end.