Argumente in C++
Beschreibung können in C++ neben dem Kern (oft einer Funktion) vor der Klammer auch ein Argument in der Klammer enthalten. In der folgenden Produktion wird durch die eckigen Klammern angezeigt, daß das enthaltene Argument 〈Argument 〉 optional ist, also auch entfallen kann.
- 〈Ausdruck mit Argument 〉 ::=
- 〈Kern 〉 "(" [〈Argument 〉] ")".
Nach der Angabe der Funktion folgt also ein Paar runder Klammern, innerhalb derer ein eventuelles Argument notiert werden kann. Das Argument ist wieder ein Ausdruck. Der beschriebene Wert hängt dann im allgemeinen auch von dem Wert des Arguments ab.
Die Standardfunktion "::std::fabs"
In diesem Abschnitt wird die Standardfunktion "::std::fabs" als Beispiel einer Abbildungsfunktion vorgestellt.
Die Standardfunktion "::std::fabs" ergibt den Betrag des Argumentwertes. (Der Betrag einer Zahl ist der Abstand der Zahl von Null. Der Betrag von −4 ist beispielsweise 4, also die Gegenzahl, der Betrag von 4 ist hingegen ebenfalls 4, also die Zahl selber.)
Diese Standardfunktion hat einen Parameter vom Typ "double" und hat einen Wert vom Typ "double".
Die folgende Dokumentation soll daran erinnern, daß bei Verwendung dieser Standardabbildung die Kopfdatei "cmath" einzubinden ist und von welchem Typ Parameter und Abbildungswert sind. Sie bedeutet nicht, daß "double ::std::fabs( double x );" in ein Programm geschrieben werden muß, das "::std::fabs" verwendet.
::std::fabs [Dokumentation]#include <cmath>
double ::std::fabs( double number );
Betrag des Argumentwerts.
Der Parameter der Funktion wird in der Synopsis durch den Text "double number" beschrieben. (Manchmal wird auch nur "double" verwendet.) Das bedeutet, daß der Parameter mit dem Namen "number" bezeichnet wird und vom Typ "double" ist. Es heißt aber nicht, daß bei der Anwendung etwa der Text "double number" oder der Text "double" in die Klammern zu schreiben ist. Vielmehr ist bei einer Anwendung ein Ausdruck vom Datentyp "double" in die runden Klammern zu schreiben.
Der Parametername "number" ist hier nur als ein Kommentar zu verstehen, der einen Hinweis auf die Bedeutung des Parameters gibt. Dieser Name hat sonst keine Bedeutung.
Genauso erklärt das vorangestellte "double", daß das Ergebnis der Funktion vom Typ "double" ist. Es bedeutet aber nicht, daß vor eine Anwendung der Funktion der Text "double" geschrieben werden soll.
Auf keinen Fall ist die Verwendung einer Funktion mit einer Dokumentation, die den Datentyp "double" erwähnt ein Grund dafür in dem Programmgerüst den Text "int main" irgendwie zu verändern: Der Text "int main" darf nicht verändert werden.
Das folgende Beispiel zeigt einen Ausdruck mit dieser Abbildung in einem Programm, das den Wert des Funktionsausdrucks "::std::fabs( -2. )" ausgibt.
fabs.cpp#include <iostream> // ::std::cout
#include <ostream> // <<
#include <cmath> // ::std::fabs
int main(){ ::std::cout << ::std::fabs( -2. )<< '\n'; }::std::cout2
Übungsaufgaben
Wer bei der Bearbeitung der folgenden Aufgaben die mittlere Zeile der Dokumentation in das Programm kopiert, macht wahrscheinlich einen Fehler. Die mittlere Zeile der Dokumentation soll nicht kopiert werden. Sie gibt dem Programmierer Informationen über eine Funktion, aufgrund derer die Funktion dann richtig in ein Programm eingebaut werden kann. Dieser Einbau geschieht aber meistens nicht dadurch, daß die mittlere Zeile der Dokumentation einfach in das Programm kopiert wird.
- Anwendung der Funktion "::std::tolower"
::std::tolower [Dokumentation]
#include <cctype>
int ::std::tolower( int c );
Kennzahl des kleinen Zeichen zur Kennzahl c.- Auf einem Computer hat jedes Zeichen eine Kennzahl. Die Funktion "::std::tolower" akzeptiert als Argument die Kennzahl eines zu untersuchenden Zeichens.
- Wenn das Argument die Kennzahl eine Versalie (ein „großer“ Buchstabe, wie z.B. der Buchstabe „A“) ist, dann ist das Ergebnis der Funktion "::std::tolower" die Kennzahl der entsprechenden Gemeinen (des entsprechenden „kleinen Buchstabens“ wie z.B. des Buchstabens „a“). (Sonst ist das Argument das Ergebnis.)
- Ermitteln Sie durch Verwendung der Funktion "::std::tolower" in einer C++ -Übersetzungseinheit, den Code der Gemeinen zur Versalie 65!