Abbildungsdefinitionen in C++
Umrechnen von Grad Celsius in Kelvin
Die im folgenden definierte Funktion kann verwendet werden, um den Kelvin -Wert einer in Grad Celsius angegebenen Temperatur zu notieren.
kelvin.cpp#include <iostream>
#include <ostream>
double kelvin( double const celsius )
{ return celsius + 273.15; }
int main(){ std::cout
<< kelvin( 22. ) << '\n'
<< kelvin( 23. ) << '\n'; }std::cout295.15
296.15
Der Typname "double" am Anfang der Funktionsdefinition bestimmt, daß das Ergebnis der Funktion ein Wert des Datentyps "double" ist. (Es kann hierbei unter Umständen ein vorübergehendes namenloses Objekt mit dem Ergebnis erzeugt und zurückgegeben werden.)
Der Parameter "celsius" ist konstant. Das ist kein Widerspruch dazu, daß er im Laufe der Zeit zuerst den Wert "22." und dann den Wert "23." erhält, da dies während zweier verschiedener Inkarnationen der Funktion geschieht. Während jeder einzelnen Inkarnation ist der Wert des Parameters aber konstant.
Rückgabe eines Wertes|Zeit main
| .-------------------.
| | |
| | |
| | << kelvin( 22.0 ) | double kelvin
| | | .----------------------.
| | | | ( double const | Erste
| | '-------> celsius ) | Inkarnation
| | | { | der Funktion
| | | | kelvin
| | | return |
| | | celsius + 273.15 -. |
| | 295.15 | ; } | |
| | .-------------------------------' |
| | | '----------------------'
| | | |
| | V |
| | << kelvin( 22.0 ) |
| | |
| | |
| | |
| | << kelvin( 23.0 ) | double kelvin
| | | .----------------------.
| | | | ( double const | Zweite
| | '-------> celsius ) | Inkarnation
| | | { | der Funktion
| | | | kelvin
| | | return |
| | | celsius + 273.15--. |
| | 296.15 | ; } | |
| | .-------------------------------' |
| | | '----------------------'
| | | |
| | V |
| | << kelvin( 23.0 ) |
| | |
V '-------------------'
Übungsaufgaben
- Umkehrabbildung schreiben
Bringen Sie das Programm "kelvin.cpp" zunächst unverändert zum Laufen.
Ergänzen Sie eine Abbildungs-Funktion "celsius", die von Kelvin in Grad Celsius umrechnet, und probieren Sie diese Funktion aus.
Welchen Wert sollte der Ausdruck "kelvin( celsius( 22. ))" haben?
Die zu definierenden Abbildungs-Funktionen dürfen selber nichts auf den Bildschirm ausgeben ! Sie sollen nur einen Wert ergeben.
- Zentimeter und Zoll
Schreiben Sie jeweils eine Abbildungs-Funktion zur Umrechnung von Zentimeter in Zoll bzw. von Zoll in Zentimeter.
Aufruf einer Funktion mit ErgebnisParameter
.------------. Ergebnis
------------->| Zoll |--------->
Zahl 10 '------------' Zahl 3,93700787401574803149606299212598
Argument keine Wirkung
Parameter
.------------. Ergebnis
------------->| cm |--------->
Zahl 10 '------------' Zahl 25,4
Argument keine Wirkung