unit berechnung.sss;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ExtCtrls, Math,cpu;
type
TSSS =
class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Image1: TImage;
closebutton: TButton;
Seitea: TEdit;
Seiteb: TEdit;
Seitec: TEdit;
Winkelalpha: TEdit;
Winkelbeta: TEdit;
Winkelgamma: TEdit;
MainMenu1: TMainMenu;
Gehezu1: TMenuItem;
Hilfe1: TMenuItem;
Info1: TMenuItem;
Programmbeenden1: TMenuItem;
Button1: TButton;
loeschen: TButton;
procedure closebuttonClick(Sender: TObject);
procedure Info1Click(Sender: TObject);
procedure Hauptmen1Click(Sender: TObject);
procedure Programmbeenden1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Gehezu1Click(Sender: TObject);
procedure loeschenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
SSS: TSSS;
implementation
uses info, rechner;
{$R *.dfm}
procedure TSSS.closebuttonClick(Sender: TObject);
begin
close;
end;
procedure TSSS.Info1Click(Sender: TObject);
begin
Information.Show;
SSS.Hide;
end;
procedure TSSS.Hauptmen1Click(Sender: TObject);
begin
index.show;
SSS.Hide;
end;
procedure TSSS.Programmbeenden1Click(Sender: TObject);
begin
close;
end;
procedure TSSS.Button1Click(Sender: TObject);
VAR alpha,beta,gamma,a,b,c:REAL;
begin
//Abfrage, ob keine Seite gegeben ist
IF (Seitea.Text='
')
AND (Seiteb.Text='
')
AND (Seitec.Text='
')
THEN showmessage('
Bitte geben Sie mindestens 1 Seite ein!');
//Abfrage, ob 3 Seiten gegeben sind
IF (Seitea.Text<>'
')
AND (Seiteb.Text<>'
')
AND (Seitec.Text<>'
')
THEN
BEGIN
//Einlesen der 3 Seiten
a:=STRTOFLOAT(Seitea.Text);
b:=STRTOFLOAT(Seiteb.Text);
c:=STRTOFLOAT(Seitec.Text);
//Berechnung der 3 Winkel
cosw(a,b,c,alpha);
cosw(b,c,a,beta);
cosw(c,a,b,gamma);
//Ausgabe der 3 Winkel
Winkelalpha.Text:=FLOATTOSTR(alpha);
Winkelbeta.Text:=FLOATTOSTR(beta);
Winkelgamma.Text:=FLOATTOSTR(gamma);
END;
//Abfrage, ob Seite a, Seite b und der dazwischen liegende Winkel Gamma gegeben sind
IF (Seitea.Text<>'
')
AND (Seiteb.Text<>'
')
AND (Winkelgamma.Text<>'
')
THEN
BEGIN
a:=STRTOINT(Seitea.Text);
b:=STRTOINT(Seiteb.Text);
gamma:=STRTOFLOAT(Winkelgamma.Text);
//Aufruf der Prozedur SWS
sws(a,b,gamma,c);
//Berechnung der Winkel Alpha und Beta
cosw(a,b,c,alpha);
cosw(b,c,a,beta);
//Ausgabe der berechneten Seite und der restlichen 2 Winkel
Seitec.Text:=FLOATTOSTR(c);
Winkelalpha.Text:=FLOATTOSTR(alpha);
Winkelbeta.Text:=FLOATTOSTR(beta);
END;
//Abfrage, ob Seite a, Seite c und der dazwischen liegende Winkel Beta gegeben sind
IF (Seitea.Text<>'
')
AND (Seitec.Text<>'
')
AND (Winkelbeta.Text<>'
')
THEN
BEGIN
a:=STRTOFLOAT(Seitea.Text);
c:=STRTOFLOAT(Seitec.Text);
beta:=STRTOFLOAT(Winkelbeta.Text);
//Aufruf der Prozedur SWS
sws(a,c,beta,b);
//Berechnung der Winkel Alpha und Gamma
cosw(a,b,c,alpha);
cosw(c,a,b,gamma);
//Ausgabe der berechneten Seite und der restlichen 2 Winkel
Seiteb.Text:=FLOATTOSTR(b);
Winkelalpha.Text:=FLOATTOSTR(alpha);
Winkelbeta.Text:=FLOATTOSTR(gamma);
END;
//Abfrage, ob 2 Winkel = 0° und einer = 180° sind --> Dreieck nicht möglich
IF (Winkelalpha.Text='
0')
AND (Winkelbeta.Text='
0')
AND (Winkelgamma.Text='
180')
OR (Winkelalpha.Text='
180')
AND (Winkelbeta.Text='
0')
AND (Winkelgamma.Text='
0')
OR (Winkelalpha.Text='
0')
AND (Winkelbeta.Text='
180')
AND (Winkelgamma.Text='
0')
THEN showmessage('
2 Seiten zusammen dürfen nicht kleiner als die dritte sein! Bitte versichern Sie sich, dass Sie alles korrekt eingegeben haben!');
end;
procedure TSSS.Gehezu1Click(Sender: TObject);
begin
index.show;
SSS.Hide;
end;
procedure TSSS.loeschenClick(Sender: TObject);
begin
Seitea.Text:='
';
Seiteb.Text:='
';
Seitec.Text:='
';
Winkelalpha.Text:='
';
Winkelbeta.Text:='
';
Winkelgamma.Text:='
';
end;
end.