function (Unterprogramme)
...
var
Form1: TForm1;
a,b,c,d,x1,x2:real;
implementation
{$R *.dfm}
function diskr(ad,bd,cd:real):real;
begin
diskr:=bd*bd-4*ad*cd;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=strtofloat(edit3.Text);
d:=diskr(a,b,c); {Aufruf der Funktion}
if d<0 then
begin
label5.Caption:='Keine Lösung';
end;
if d=0 then
begin
label5.Caption:='Genau eine Lösung';
x1:=-b/(2*a);
label6.Caption:=floatTOstrF(x1,FFFixed,3,4);
end;
if d>0 then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
label5.caption:='x1= '+floattostrF(x1,FFFixed,3,4);
label6.Caption:='x2= '+floattostrF(x2,FFFixed,3,4);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
label5.Caption:='';
label6.Caption:='';
end;
end.
Quelltexte sollten übersichtlich, strukturiert und kommentiert geschrieben werden. Generell sollten Algorithmen gegliedert und schrittweise entwickelt werden. Bei größeren Programmen verliert man schnell die Übersicht. Um Programme überschaubar zu gestalten, wird mit Unterprogrammen gearbeitet. Dabei bedient man sich der Methode der schrittweisen Verfeinerung ( Top-Down-Methode) zur algorithmischen Lösung komplexer Aufgaben: Schrittweise Zerlegung der zu lösenden Aufgabe in logisch zusammenhängende Teilaufgaben; Zerlegung der Teilaufgaben in kleine überschaubare Einheiten (Unterprogramme), Prozeduren und Funktionen (procedure or function)