Ich habe einen kurzen demo-quelltext im internet gefunden. jedoch ist er in delphi und darin bin ich absoluter analphabet. ich habe den text sozugen manuell nach c++ portiert, bin mir aber nicht sicher ober stimmt. kann mir jemand sagen ob das so stimmt bzw. wenn nicht was falsch ist?
Delphi:
Function ggTerw(a,b: integer; var u,v: integer):integer;
var u0, v0:integer;
begin
if b = 0 then Begin
result := a;
u := 1;
v := 0;
End else Begin
result := ggTerw(b, a mod b, u0, v0);//rekursiv
u := v0;
v := u0 - (a div b)*v0;
End;
end;
C++:
int ggTerw( int a, int b, int u, int v)
{
int u0= 0; int v0=0;
if(b==0)
{
u = 1; v = 0;
return a;
}
else
{
u = v0;
div_t v = div(a,b); v = u0 - v.quot*v0;
return ggTerw(b, a % b, u0, v0); //rekursiv
}
}
Ich bedanke mich schon mal im vorraus ausserordentlich bei jedem helfenden, werde es aber sicher hinterher nochmal tun.
Vielen Dank
Mike
Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge
Hallo, vielen Dank für Deine Mühe. Ich finde das echt super :-)
Ja die beiden ersten Parameter als Referenz zu übergeben scheint nicht notendig , da hast du recht. Ich werde das vergleichend debuggen wenn mein Download der Trial-Version von Delphi endlich fertig ist(174 MB mit analog-verbindung )
---
warum
int u0= 0; int v0=0;
und nicht
int u0, v0
Naja irgendwer hat mir mal eingeprügelt Variablen immer mit einem Startwert zu initialisieren in C++. Siehst Du hier etwa einen Fehler den ich nicht sehe?
----------
warum
div_t dv = div(a, b);
v = u0 - dv.quot * v0;
und nicht
v = u0 - (a / b) * v0;
Also ich bin davon ausgegangen das div in Delphi das Gegenstück zu Modulo ist also den "Rest" einer Modulo-Rechnung ausgibt. Stimmt das etwa nicht und es ist doch nur Division pur?
Vielen Dank und Grüsse (wohin auch immer..)
Mike