Autor Beitrag
Raicoon
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 18.11.09 00:27 
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:

ausblenden 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; // a= 1. Zahl, b= 2. Zahl, r= Rest ? ... :-S

procedure TForm1.Button1Click(Sender: TObject);
begin

(* Zahlen einlesen *)

a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
r := b; // Warum ist r:= b ?


(* Euklidischer Algorithmus *)

while r <> 0 do
begin
r := a mod b; // heißt das, das r:= der rest aus a:b ist?
a := b; // wieso wird a jetzt dem wert b zugeordnet?
b := r; // und wieso wird b:=r?
end;

(* ggT ausgeben *)

Edit3.Text := IntToStr(a); // wieso (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 user profile iconKlabautermann: Delphi-Tags hinzugefügt.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 18.11.09 01:52 
Hallo und :welcome: im DF,

hast du dir den euklidischen 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.