Sinn des ggt Programmes war es nun den Euklidische Algorithmus (wie im Kapitel "Euklidische Algorithmus" erklärt) in eine funktionsfähige Prozedur umzusetzen. Dabei musste man sich erst einmal eine Art Eingabemaske erstellen, die den Benutzer auffordert die beiden Zahlen einzugeben und gleichzeitig einen Button aufweist, der auf Klick das Ergebnis (den ggT) ausrechnet. Ein Beispiel für diese Eingabemaske zeigt das folgende Bild:
In diese Eingabemaske werden nun die Werte eingegeben und dann kann der Benutzer den Button klicken. Bei dieser Aktion wird folgender Programmtext aufgerufen:
Die Prozedur wird aufgerufen. In dieser Zeile werden die Variablen(a,b,rest,ggt), die die Prozedur benutzt definiert. Die Variblen a, b bekommen ihre aktuellen Werte. Hier wird überprüft ob der Wert für b = 0 ist. Wenn dies der Fall ist, dann wird ein Fenster geöffnet, weil die Division durch 0 nicht zulässig ist. Hier wird die Prozedur zum Ausrechnen des ggT´s aufgerufen, der Programmcode steht in der nächsten Zeile der Tabelle. Diese Zeile gibt den endgültig berechneten Wert für den ggT aus. |
Programmcode: procedure TForm1.btloesungClick(Sender: TObject); var a, b, rest, ggt :Integer; begin a := strtoint(edita.text); b := strtoint(editb.text); end; Try if b = 0 then begin showmessage('Division durch null unzulässig!'); exit end; Except ShowMessage('Fehler') end; berechne_ggt(a,b,ggt); editggt.text := InttoStr(ggt); end; |
Hier wird die Prozedur "berechne_ggT" aufgerufen. In den Klammern stehen die formalen Parameter der Prozedur. "alok" und "blok" sind Werteparameter und "ggtlok" ist ein Referenzparameter (Erklärungen im Kapitel "Werte und Refernzparameter"). Hier wird die Variable "rest" innerhalb der Prozedur festgelegt In dieser Zeilke wird die Abbruchbedingung festgelegt, solange "rest" größer 0 ist werden die folgenden Zeilen durchgeführt. Diese Befehlszeile rechnet den Rest von der Division a - b aus und ordnet ihn der Variablen "rest" zu. Die Variable "alok" bekommt den Wert der Variablen "blok" zugeordnet. Die Variable "blok" bekommt den Wert von "rest" zugeordnet. Der Referenzparameter "ggtlok" bekommt den Wert von "alok" zugewiesen, wenn "rest" null ist. |
Programmcode für die ggT Prozedur: procedure TForm1.berechne_ggt(alok, blok :integer; var ggtlok :integer); var rest :integer; begin while rest <> 0 do begin rest := alok mod blok; alok := blok; blok := rest; end; ggtlok := alok; end; |
Diese Aktionen werden bei dem Klicken auf den Button "btloesung" durchgeführt
procedure TForm1.berechne_ggt(alok, blok :integer; var ggtlok :integer); var rest :integer; begin while rest <> 0 do begin rest := alok mod blok; alok := blok; blok := rest; end; ggtlok := alok; end; |
![]() |
|
![]() |
|
![]() |
Zur
nächsten Seite ![]() |
© 2000 LK 12 If und G. Kubitz | Hannah-Arendt-Gymnasium, Lengerich |