Hallo,
also deine Aufgabe werden wir dir nicht direkt lösen, sonst lernst du nicht genügend, aber wir geben dir gerne ein paar "Stupser" in die richtige Richtung.
1. Dein Rechteck sollte sicher als Klasse umgesetzt werden.
Beispielhaftes Grundgerüst:
Delphi-Quellcode:
type
TRechteck = class(TObject)
private
public
end;
2. Überlege mal, was du wissen müsstest, wenn du dieses Rechteck wärst um komplett definiert zu sein.
Richtig! Die X und Y Koordinaten von 2 diagonalen Ecken des Rechtecks. Diese muss dein Rechteck speichern können.
Frage an dich: wo gehören die entsprechenden Felder hin? In public oder in private?
Wenn die in der private Sektion eingebaut werden, dann kann nur dein Rechteck darauf zugreifen und
jemand anderes von Außen (ein benutzer deines Rechtecks) kann diese nicht durcheinander bringen.
Wäre das sinnvoll? Also, wo rein mit denen? private oder public?
Man könnte die Punkte dann z.B. so umsetzen:
x1, y1: Integer;
x2, y2: Integer;
3. Wie kommt das Rechteck zu seinen koordinaten?
Falls ihr Konstruktoren schon durchgenommen habt wäre ein Constructor wie dieser hier
eine Möglichkeit:
constructor Create(px1, py1, px2, py2: Integer);
und die Umsetzung des Constructors sähe beispielsweise so aus:
Delphi-Quellcode:
constructor TRechteck.Create(px1, py1, px2, py2: Integer);
begin
inherited Create; // Constructor der Klasse aufrufen, von der man erbt,
// evtl. will die nämlich auch schon etwas initialisieren
x1 := px1;
y1 := py1;
x2 := px2;
y2 := py2;
end;
4. Für die erste Aufgabe zum Ermitteln der Breite bräuchtest du eine Methode.
Ich schreibe mal nur ein Grundgerüst dazu hin, den Rest musst du selber ausfüllen, damit du noch etwas dabei lernst.
Die Methode muss zuerst im public Bereich deiner Klasse definiert werden, damit Nutzer deines Rechtecks diese auch
aufrufen können. Das sähe so aus:
Delphi-Quellcode:
function breite: Integer; // ermittelt die Breite des rechtecks und liefert diese als Integer Wert zurück,
// man kann hier debatieren ob ein vorzeichenloser Datentyp hier besser wäre, z.B. UInt16
Dann musst du die Methode im implementation Teil der
Unit wie folgt umsetzen:
Delphi-Quellcode:
function TRechteck.breite:Integer;
begin
result := // hier müsste jetzt deine Breitenberechnung hin, versuche mal selber drauf zu kommen
end;
5. Du hast dann hoffentlich auch schon erkannt, dass die Höhenberechnung analog zur
Breitenberechnung/Rückgabe erfolgt.
6. Auch die Fläche sollte dir keine ernsthaften Probleme mehr bereiten. Tipp:
die Fläche kannst du einfach durch Multiplizieren der Rückgaben deiner inzwischen
geschriebenen breite und hoehe Methoden ausrechnen. Es hindert dich ja keiner
Daran die in der eigenen Klasse aufzurufen.
7. Was die pruefe Methode tun soll, hab' ich noch nicht ganz verstanden. Ich hoffe aber,
dass ihr schon den boolean Datentyp durchgenommen habt. Falls ja würde die in die public
Sektion gehörende pruefe Methode so aussehen:
function pruefe:Boolean;
Und die Ausprogrammierung vermutlich so ähnlich:
Delphi-Quellcode:
function TRechteck.pruefe:Boolean;
begin
// an die Profis hier: ja, das kann man auch besser schreiben, aber dann würde er
// vermutlich ganz verwirrt. Daher ruhig mal zuerst auf die "platte" Weise umsetzen
if (von dir auszufüllen) then
result := true
else
result := false;
end;
So, jetzt hab' ich dir hoffentlich ein paar Ideen vermittelt. Ggf. nochmal zu den Details
hier im Thread nachfragen, dann aber bitte mal deine angefangene
Unit mit posten, damit wir
sehen wo du gerade stehst.