Abbildungsfunktionen in C [] (Abbildungsfunktionen in C), Lektion, Seite 722955
https://www.purl.org/stefan_ram/pub/abbildungsfunktionen_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Abbildungsfunktionen in C

Eine Abbildungsfunktion ist eine Funktion mit mindestens einem Argument, deren Wert durch die Argumentwerte bestimmt ist.

main.c

#include <stdio.h>

double kelvin( double const celsius )
{ return celsius + 273.15; }

int main( void )
{ printf( "%g\n", kelvin( 22. ));
printf( "%g\n", kelvin( 23. ));
printf( "%g\n", kelvin( 22. )); }

stdout
295.15
296.15
295.15
Ausgabe vorhersagen

Welche Ausgabe erzeugt das folgende Programm?

main.c

#include <stdio.h>

int f( int const i )
{ return i + 2; }

int main( void )
{ printf( "%d\n", f( 7 ));
printf( "%d\n", f( f( 7 ))); }

Umkehrabbildung schreiben

Bringen Sie das Programm zur Umrechnung in Kelvin zunächst unverändert zum Laufen.

Ergänzen Sie das Programm um 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 in das folgende Programm an die Stelle von »0« einen Ausdruck, so daß die Funktion »l_inch« den Argumentwert als Länge in Zentimetern akzeptiert und als Wert des Aufrufs die Länge in Zoll liefert.
Ergänzen Sie dann eine Umkehrfunktion »l_cm«, welche in die andere Richtung umrechnet.
main.c

#include <stdio.h>

double l_inch( double const l_cm )
{ return 0; }

int main( void )
{ printf( "%g\n", l_inch( 1.29 )); /* Laenge in Zoll (ca 0,51 Zoll) */
printf( "%g\n", l_inch( 2.58 )); /* ungefaehr das Doppelte der vorherigen Ausgabe */ }

/    Ganzzahliger Mittelwert zweier ganzzahliger Werte
Schreiben Sie eine Definition einer Funktion »avg« mit zwei Parametern (jeweils vom Typ »int«) und einem Ergebnis vom Typ »int«, so daß der Wert des Ausdrucks »avg(i ,j )« die größte ganze Zahl kleiner-gleich dem Mittelwert der Werte der beiden Argumentausdrücke »〈i 〉« und »〈j 〉« (jeweils vom Typ »int«) ist.
Testen Sie Ihre Definition unter anderem an Hand der Werte der in der folgenden Liste vor dem Semikolon stehenden Ausdrücke (nach »#include <limits.h>«):
»avg(0,0)«; 0
»avg(1,0)«; 0
»avg(0,1)«; 0
»avg(1,1)«; 1
»avg(INT_MIN,INT_MIN)«; INT_MIN
»avg(INT_MIN,INT_MAX)«; Unter einer typischen C -Implementation wird ein Wert nahe 0 (also 0, +1 oder 1) erwartet
»avg(INT_MAX,INT_MIN)«; Unter einer typischen C -Implementation wird ein Wert nahe 0 (also 0, +1 oder 1) erwartet
»avg(INT_MAX,INT_MAX)«; INT_MAX
Der gesuchte Mittelwert soll aber natürlich nicht nur für diese acht Testwerte, sondern für alle möglichen int -Werte richtig berechnet werden. Um dies zu testen, könnten daher noch weitere Testwerte herangezogen werden.

/   Eine willkürliche Funktion

Schreiben Sie eine Funktion, die 17 ergibt, falls ihr Argumentwert gleich 4 ist, und 12, falls ihr Argumentwert gleich 6 ist.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722955 stefan_ram:722955 Abbildungsfunktionen in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722955, slrprddef722955, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/abbildungsfunktionen_c