Mathematische Funktionen |
Bei vielen, vor allem älteren Programmiersprachen gehörten die mathematischen Funktionen zum Sprachumfang. Die Sprache C wurde ursprünglich zur systemnahen Programmierung entwickelt. Dort sind mathematische Fähigkeiten weniger gefragt. Darum wurden die mathematischen Funktionen in die Bibliotheken ausgelagert. Das macht diejenigen Programme schlanker, die keine mathematischen Funktionen benötigen.
#include <math.h>
(tabwinkelfkt) [Trigonometrische Funktionen]
| Deklaration | Funktion |
|---|---|
| double acos(double); | Arcus Cosinus |
| double asin(double); | Arcus Sinus |
| double atan(double); | Arcus Tangens |
| double atan2(double, double); | Arcus Tangens zweier Variablen |
| double cos(double); | Cosinus |
| double cosh(double); | Cosinus Hyperbolicus |
| double sin(double); | Sinus |
| double sinh(double); | Sinus Hyperbolicus |
| double tan(double); | Tangens |
| double tanh(double); | Tangens Hyperbolicus |
x = α/180 · π
Damit sich der Compiler daran nicht verschluckt, sollten Sie es vielleicht auf folgende Weise formulieren:
bogenmass = gradmass/180*3.1415926535;
Die Umrechnung vom Bogenmaß x ins Gradmaß α ist dementsprechend:
α = (x · 180)/π
Das sieht im Programm dann so aus:
gradmass = bogenmass*180/3.1415926535;
double exp(double a);
Soll ein beliebiger Exponent ab berechnet werden, verwendet man die Funktion pow():
double pow(double a, double b);
double sqrt(double a);
double log(double a);
Zur Berechnung des Logarithmus zur Basis 10 gibt es eine eigene Funktion namens log10():
double log10(double a);
double frexp(double a, int *b);
Der Wert von b wird der aufrufenden Parametervariablen per Adresse übergeben. Ein Aufruf der Funktion sieht also etwa so aus:
int b; f = frexp(a, &b);
Die Funktion ldexp() ist die Umkehrfunktion zu frexp():
double ldexp(double ai, int b);
#include <stdlib.h> int abs(int j); long labs(long k);
Die Funktion fabs() unterscheidet sich im Typ des Parameters und des Rückgabewertes von abs() und darin, dass die Datei math.h eingebunden werden muss.
#include <math.h> double fabs(double a);
double fmod(double a, double b);
Der Fließkommawert a wird durch die Funktion modf() in seinen ganzzahligen Anteil und die Nachkommastellen aufgespalten. Der ganzzahlige Anteil liegt im Parameter b, und die Nachkommastellen sind der Rückgabewert der Funktion:
double modf(double a, int* b);
Die Funktion ceil() liefert die nächsthöhere ganze Zahl zurück:
double ceil(double);
Die Funktion floor() liefert die nächstniedrige ganze Zahl zurück:
double floor(double);
#include <complex> using namespace std; complex<double> meinKomplex(-1, 3);
Die komplexe Zahl meinKomplex wurde durch den Konstruktor mit dem Realteil -1 und dem Imaginärteil 3 initialisiert. Die Elementfunktion real() liefert den Realteil und die Funktion imag() den Imaginärteil der komplexen Zahl.
| Funktion | Wirkung |
|---|---|
| norm() | Liefert das Quadrat des Betrages |
| abs() | Betrag, die Wurzel aus norm() |
| conj() | Der konjugierte Wert |
| arg() | Winkel in Polarkoordinaten |
| polar() | Komplexe Zahl zu Polarkoordinaten |
|
Diese Seite basiert auf Inhalten aus dem Buch
Arnold Willemer: Einstieg in C++ Mit freundlicher Genehmigung und Unterstützung des Verlags galileo computing |
| Informatik-Ecke Einstieg in C++ |
(C) Copyright 2005 Arnold Willemer
|