Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 22 Weitere Headerdateien und ihre Funktionen (ANSI C)
  gp 22.1 <assert.h> -– Testmöglichkeiten und Fehlersuche
  gp 22.2 <ctype.h> – Zeichenklassifizierung und Umwandlung
  gp 22.3 Mathematische Funktionen – <math.h>
  gp 22.4 <stdlib.h>
    gp 22.4.1 Programmbeendigung – exit(), _exit(), atexit() und abort()
    gp 22.4.2 Konvertieren von Strings in numerische Werte
    gp 22.4.3 Bessere Alternative – Konvertieren von Strings in numerische Werte
    gp 22.4.4 Zufallszahlen
    gp 22.4.5 Absolutwerte, Quotient und Rest von Divisionen
    gp 22.4.6 Suchen und Sortieren – qsort() und bsearch()
    gp 22.4.7 system()
  gp 22.5 <locale.h> – Länderspezifische Eigenheiten
  gp 22.6 <setjmp.h>
  gp 22.7 <signal.h>
  gp 22.8 <string.h> – Die mem…-Funktionen zur Speichermanipulation
    gp 22.8.1 memchr() – Suche nach einzelnen Zeichen
    gp 22.8.2 memcmp() – Bestimmte Anzahl von Bytes vergleichen
    gp 22.8.3 memcpy() – Bestimmte Anzahl von Bytes kopieren
    gp 22.8.4 memmove() – Bestimmte Anzahl von Bytes kopieren
    gp 22.8.5 memset() – Speicherbereich mit bestimmten Zeichen auffüllen
  gp 22.9 Erweiterter ANSI C-Standard (ANSI C99)
    gp 22.9.1 Neue elementare Datentypen
    gp 22.9.2 <stdint.h> – Ganzzahlige Typen mit vorgegebener Breite
    gp 22.9.3 Komplexe Gleitpunkttypen
    gp 22.9.4 <iso646.h> – Symbolische Konstanten für Operatoren
    gp 22.9.5 Deklaration von Bezeichnern
    gp 22.9.6 inline-Funktionen
    gp 22.9.7 Vordefinierte Makros
    gp 22.9.8 <math.h> – Neue Funktionen
    gp 22.9.9 <wchar.h> – (NA1)
    gp 22.9.10 <wctype.h> (NA1)
    gp 22.9.11 <fenv.h> – Kontrolle der Gleitpunkzahlen-Umgebung
    gp 22.9.12 <inttypes.h> – Für genauere Integer-Typen
    gp 22.9.13 <tgmath.h> – Typengenerische Mathematik-Funktionen
    gp 22.9.14 Zusammenfassung


Galileo Computing - Zum Seitenanfang

22.3 Mathematische Funktionen – <math.h>  toptop

Häufig werden bei Berechnungen die Quadratwurzel, der Sinus, der Cosinus oder der Tangens einer Zahl benötigt. Damit Sie nicht jedes Mal eine neue Funktion schreiben müssen, wurde die Bibliothek <math.h> geschrieben. Sie beinhaltet viele nützliche mathematische Funktionen.


Hinweis   (Anmerkung für Linux-User) Damit ein Programm die <math.h>-Bibliothek verwenden kann, muss diese erst mit dem Compilerflag -lm hinzugelinkt werden. Beispiel: gcc –o programm programm.c –lm


Hierzu ein Überblick über die Funktionen in der Headerdatei <math.h> und ihre Bedeutungen:


Tabelle 22.2   Mathematische Funktionen

Funktion Beschreibung
double acos(double zahl) Arcuscosinus
double asin(double zahl) Arcussinus
double atan(double zahl) Arcustangens
double atan2(double zahl1, double zahl2) Arcustangens von zahl1 und zahl2
double cos(double zahl) Cosinus
double sin(double zahl) Sinus
double tan(double zahl) Tangens
double cosh(double zahl) Cosinus hyperbolicus
double sinh(double zahl) Sinus hyperbolicus
double tanh(double zahl) Tangens hyperbolicus
double exp(double zahl) Exponentialfunktion berechnen
double log(double zahl) Logarithmus von zahl zur Basis e = 2.71828...
double log10(double zahl) Logarithmus zur Basis 10
double sqrt(double zahl) Quadratwurzel
double ceil(double zahl) Gleitpunktzahl aufrunden
double fabs(double zahl) Absolutwert
double floor(double zahl) Gleitpunktzahl abrunden
double frexp(double zahl, int zahl2) Zerlegt zahl in eine Mantisse und einen ganzzahligen Exponenten
double modf(double1 zahl1, double2 *zahl2) Zerlegt den Wert von zahl1 in einen gebrochenen und einen ganzzahligen Wert. Der ganzzahlige Wert (Vorkommateil) befindet sich dann in der Adresse von zahl2.
double pow(double zahl1, double zahl2) Potenz zahl1zahl2
int fmod(double zahl1, double zahl2) float modulo errechnet den Rest von zahl1/zahl2

Es fällt außerdem auf, dass all diese Funktionen mit dem Typ double deklariert sind. Abhilfe schafft allerdings erst der ANSI C99-Standard. Dazu in ein paar Seiten mehr.

Diese Funktionen lassen sich einfach einsetzen, wie das folgende Beispiel zeigt:

/* mathematik.c */
#include <stdio.h>
#include <stdlib.h>
/* Bei Linux den Compilerflag –lm mit angeben */
#include <math.h>
int main(void) {
   double i=5.5;
   printf("Quadradwurzel von %f = %f\n",i,sqrt(i));
   printf("Der Sinus von %f = %f\n",i,sin(i));
   printf("Der Tangens von %f = %f\n",i,tan(i));
   printf("Der Cosinus von %f = %f\n",i,cos(i));
   printf("Der Absolute Wert von %f = %f\n",i,fabs(i));
   return EXIT_SUCCESS;
}

Sollte der double-Wert nicht mehr richtig darstellbar sein, geben all diese Funktionen die Konstante HUGE_VAL zurück, die ebenfalls in der Headerdatei <math.h> deklariert ist.

 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de