Processing math: 100%
C-Programmierung

Funktionsdefinition

Einsatz von Funktionen | | Funktionshierarchie

Ein einfaches Beispiel einer Funktionsdefinition anhand des ggT:

Ausgehend von der mathematischen Definition des größten gemeinsamen Teilers ggT(a,b)

ggT(a,b)=ggT(b,a mod b)a,b>0.

ergeben sich die Ein- und Ausgabewerte zu:

in: a,b
out: ggt(b,a mod b)

und damit die Funktionsdeklaration in C:

unsigned int gcd(unsigned int a, unsigned int b);

Die Implementierung des Algorithmus, d.h. die Definition von gcd(a,b), läßt sich in C äquivalent formulieren:

/* greatest common divisor */
unsigned int gcd(unsigned int a, unsigned int b)
{
   if (b>0) return(gcd(b, a%b));
   else return(a);
}

Q Die Funktion gcd ruft sich selber auf, ist das überhaupt erlaubt?

Ja, man spricht hier von einer rekursiven Funktion, welche durch das Konzept der Stapelmaschine realisierbar ist.

Einsatz von Funktionen | | Funktionshierarchie

Options: