athena.gif (7242 Byte)  

 PÜ 2: Berechnung geometrischer Körper

Zielstellung und Szenario:

Vom algorithmischen Anspruch her ordnet sich dieses Projekt in die Thematik "lineare Programmstrukturen" ein.
Als neue Komponenten lernen die Schüler das TabbedNotebook (Karteikasten) sowie das Image (Bilderrahmen zur Aufnahme einer Grafikdatei) kennen.
Da sich die zu programmierenden Seiten des "Karteikastens" äußerlich und vom Quelltext her ähneln, festigen die Schüler ihre Fertigkeiten im Umgang mit den visuellen Komponenten sowie die Umsetzung des E-V-A-Prinzips in linearen Programmstrukturen.

Problemformulierung:

Es ist ein nutzerfreundliches Delphiprogramm zu erstellen, welches für verschiedene geometrische Körper (Quader, Pyramiden, Kegel, Zylinder etc.) die jeweiligen Seitenlängen einliest und auf Knopfdruck die Werte für Oberfläche, Volumen usw. berechnet und ausgibt.

Es soll möglich sein, auf einem einzigen Formular über Registerseiten die jeweils zu berechnenden Körper auszuwählen.

Zur Verbesserung der Übersichtlichkeit ist der betreffende geometrische Körper als Abbildung zu zeigen und seine Abmessungen zu beschriften.
 
 

Komponente
Eigenschaft
Wert
Bemerkungen
Form1 Caption ‘Geometrische Körper’ Überschrift in der Kopfleiste des Programmfensters
TabbedNotebook1

(Karteikasten)

Align ‘alClient’ Komponente füllt das ganze Formular aus und wird mit diesem vergrößert bzw. verkleinert
Pages ‘Quader’
‘Pyramide’
‘Kegel’
‘Zylinder’
Die Benennung der einzelnen Registerseiten wird hier festgelegt (TStrings). Jede zu TStrings hinzugefügte Benennung eröffnet automatisch eine neue Seite im Register.
TabsPerRow 4 So viele Registerseiten erscheinen maximal nebeneinander.
ActivePage z.B. ‘Quader’ Name der gerade zu programmierenden Seite (Auswahl aus Pages). 
Diese Seite wird beim späteren Programmstart zur aktuellen Seite.
Image1 Picture quader.bmp Einfügen einer Grafik in ein Formular.

Quelltext zur Realisierung der Quaderberechnung:

procedure TForm1.Button1Click (Sender: TObject);
var a, b, c, v, ao, e: Real;
begin
  {Einlesen der Variablen}
  a := StrToFloat(Edit1.Text);
  b := StrToFloat(Edit2.Text);
  c := StrToFloat(Edit3.Text);
  {Berechnung}
  v := a*b*c;
  ao:= 2*(a*b+a*c+b*c);
  e := Sqrt(Sqr(a)+Sqr(b)+Sqr(c));
  {Ausgabe der Ergebnisse}
  Edit4.Text := FloatToStr(v);
  Edit5.Text := FloatToStr(ao);
  Edit6.Text := FloatToStr(e);
end;