This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Eine praktische Einführung in Mathematica /  Funktionen und Programme /

Funktionen definierenSich wiederholende Operationen

1.7.2 Funktionen als Prozeduren

Bei vielen Berechnungen werden Sie entdecken, daß Sie dieselbe Eingabe für Mathematica immer wieder eintippen. Sie können sich diese Arbeit erleichtern, indem Sie eine Funktion definieren, die Ihre Input-Befehle enthält.

Hiermit wird ein Produkt mit drei Termen konstruiert und das Ergebnis ausmultipliziert.

In[1]:= Expand[ Product[x + i, {i, 3}] ]

Out[1]=

Dies macht das gleiche, jedoch mit vier Termen.

In[2]:= Expand[ Product[x + i, {i, 4}] ]

Out[2]=

Hier wird eine Funktion exprod definiert, die aus Termen ein Produkt konstruiert und dieses dann ausmultipliziert.

In[3]:= exprod[n_] := Expand[ Product[ x + i, {i, 1, n} ] ]

Jedesmal, wenn Sie die Funktion einsetzen, wird sie die Operationen Product und Expand ausführen.

In[4]:= exprod[5]

Out[4]=

Die von Ihnen in Mathematica definierten Funktionen sind im wesentlichen Prozeduren, die die von Ihnen angegebenen Befehle ausführen. Ihre Prozeduren können aus mehreren Schritten bestehen, die durch Semikola getrennt sind.

Als Ergebnis der gesamten Funktion erhalten Sie den letzten Ausdruck in der Prozedur. Beachten Sie, daß Sie Klammern um die Prozedur setzen müssen, wenn Sie sie wie hier definieren.

In[5]:= cex[n_, i_] := ( t = exprod[n]; Coefficient[t, x^i] )

Dies führt die Prozedur aus.

In[6]:= cex[5, 3]

Out[6]=

Prozeduren konstruieren

Wenn Sie in Mathematica Prozeduren schreiben, ist es gewöhnlich eine gute Idee, Variablen, die Sie innerhalb der Prozeduren einsetzen, lokal zu machen, damit sie Dinge außerhalb der Prozeduren nicht stören. Dies erreichen Sie, indem Sie Ihre Prozeduren als Module einrichten, in denen Sie eine Liste mit Variablen angeben, die als lokale Variable behandelt werden sollen.

Die oben definierte Funktion cex ist kein Modul, deshalb „entkommt" der Wert von t und existiert auch nach dem Rücksprung der Funktion.

In[7]:= t

Out[7]=

Diese Funktion ist als ein Modul mit lokaler Variable u definiert.

In[8]:= ncex[n_, i_] :=
Module[{u}, u = exprod[n]; Coefficient[u, x^i]]

Die Funktion liefert dasselbe Ergebnis wie zuvor.

In[9]:= ncex[5, 3]

Out[9]=

Jetzt entweicht der Wert von u jedoch nicht aus der Funktion.

In[10]:= u

Out[10]=

Funktionen definierenSich wiederholende Operationen