Hallo,
ich habe das ganze mal auseinander genommen. Mein Resultat ist das ein "end" an der falschen stand. Habe es mal korriegiert und richtig formatiert.
Ich denke so sollte es funktionieren (hab's net probiert).
Delphi-Quellcode:
private
{ Private-Deklarationen }
//Variabeln
P, Q, X1, X2, D : Real;
M : Integer;
//Procedures
procedure Pq;
public
{ Public-Deklarationen }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.Pq;
//Eingabe und Abfrage von P, Q
begin
P:=StrtoFloat(EdP.text);
Q:=StrtoFloat(EdQ.text);
X1:=(P * -1) / 2; //Berechnung von "minus P halbe" und zuweisung von X1, X2
X2:=(P * -1) / 2;
D:=sqr(P / 2) - Q; //Berechnung der Diskriminanten
If D < 0 then //If Abfrage zum verhindern von Abstürzen ( D < 0)
begin
Memo1.Lines.add('Die Gleichung besitzt keine Lösung');
end
else
begin
X1:=X1 + sqrt(D); //Ausrechnen von X1, X2
X2:=X2 + sqrt(D);
end;
If D < 0 then //Benutzen einer Marker Variabel für Antwortsatz
M:=1
else
begin
If D = 0 then
M:=2
else
M:=3;
// end; <- Eine End zuviel
end;
Case M of //Case M of für Antwortsatz
1 : Memo1.lines.add('Die Gleichung hat keine Lösung');
2 : Memo1.lines.add('Die Gleichung hat eine Lösung');
3 : Memo1.lines.add('Die Gleichung hat zwei Lösungen');
end;
end; <- dieses End fehlte
procedure TForm1.Button1Click(Sender: TObject);
begin
Pq;
end;
end.