Raicoon - Mi 18.11.09 00:27
Titel: Verständnisproblem GGT
Hey ihr.
ich bin totaler Delphi-Neuling, muss mich aber wegen dem Schulfach Informatik da durchwursteln.
Unsere Aufgabe, die ich jetzt bereits zuhause erledigt habe, ist es, ein Programm zu erstellen, dass den größten gemeinsamen Teiler errechnet.
Nach einigen eigenen Versuchen, habe ich mir eine Lösung aus dem Internet gesucht, die auch funktioniert.
Nur ich kann es noch nicht so ganz nachvollziehen!
Folgende Unit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| var a, b, r : Integer; procedure TForm1.Button1Click(Sender: TObject); begin
a := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text); r := b;
while r <> 0 do begin r := a mod b; a := b; b := r; end;
Edit3.Text := IntToStr(a); if a = 1 then ShowMessage('Die beiden Zahlen sind teilerfremd.');
end. |
Ansonsten habe ich selbst einige Sachen hinzugefügt oder von der Lösung weggelassen, die ich hier nicht aufliste.
Ich hoffe, ihr könnt mir etwas helfen ! Bin total verwirrt!
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt.
elundril - Mi 18.11.09 01:52
Hallo und :welcome: im DF,
hast du dir den
euklidischen Algorithmus [
http://de.wikipedia.org/wiki/Euklidischer_Algorithmus] mal angesehen?
zu info: das erste r := b ist, weil du in der schleife darunter die abbruchbedinung r = 0 ist. und wenn du r nicht mit einer zahl ungleich 0 vorher füllt, hast du natürlich dann ein problem. ;)
ja, der operator
mod gibt dir den rest von 2 natürlichen zahlen (integer) aus.
warum du in edit3.text dein a einfügst weißt nur du selbst und kein anderer. ;)
verwende bitte in zukunft die Delphi-Tags für deinen Quellcode. Einfach [
delphi] vor den code und nach dem code ein [/delphi].
lg elundril