Praktische Codebeispiele
Grundlegende mathematische Operationen
Trigonometrische Funktionen
#include <stdio.h>
#include <math.h>
int main() {
double winkel = M_PI / 4; // 45 Grad
printf("sin(45°) = %f\n", sin(winkel));
printf("cos(45°) = %f\n", cos(winkel));
return 0;
}
Exponential- und Logarithmusberechnungen
#include <stdio.h>
#include <math.h>
int main() {
double x = 2.0;
printf("e^%f = %f\n", x, exp(x));
printf("log(%f) = %f\n", x, log(x));
return 0;
}
Komplexe mathematische Berechnungen
Löser für quadratische Gleichungen
#include <stdio.h>
#include <math.h>
void solveQuadratic(double a, double b, double c) {
double diskriminante = b * b - 4 * a * c;
if (diskriminante > 0) {
double wurzel1 = (-b + sqrt(diskriminante)) / (2 * a);
double wurzel2 = (-b - sqrt(diskriminante)) / (2 * a);
printf("Zwei reelle Wurzeln: %f und %f\n", wurzel1, wurzel2);
} else if (diskriminante == 0) {
double wurzel = -b / (2 * a);
printf("Eine reelle Wurzel: %f\n", wurzel);
} else {
printf("Keine reellen Wurzeln\n");
}
}
int main() {
solveQuadratic(1, -5, 6); // x^2 - 5x + 6 = 0
return 0;
}
Statistische Berechnungen
Berechnung der Standardabweichung
#include <stdio.h>
#include <math.h>
double calculateStdDeviation(double data[], int size) {
double sum = 0.0, mean, varianz = 0.0;
// Berechnung des Mittelwerts
for (int i = 0; i < size; i++) {
sum += data[i];
}
mean = sum / size;
// Berechnung der Varianz
for (int i = 0; i < size; i++) {
varianz += pow(data[i] - mean, 2);
}
varianz /= size;
return sqrt(varianz);
}
int main() {
double zahlen[] = {2, 4, 4, 4, 5, 5, 7, 9};
int size = sizeof(zahlen) / sizeof(zahlen[0]);
printf("Standardabweichung: %f\n",
calculateStdDeviation(zahlen, size));
return 0;
}
Kategorien mathematischer Funktionen
Kategorie |
Funktionen |
Anwendungsfall |
Trigonometrisch |
sin(), cos(), tan() |
Winkelberechnungen |
Exponential |
exp(), log() |
Wachstums-/Zerfallmodelle |
Potenz |
pow(), sqrt() |
Wissenschaftliche Berechnungen |
Rundung |
ceil(), floor() |
Datenverarbeitung |
Kompilierungsablauf
graph TD
A[Quellcode] --> B[Kompilieren mit -lm]
B --> C[Verknüpfung der Mathematikbibliothek]
C --> D[Ausführbares Programm]
D --> E[Ausführen mathematischer Berechnungen]
Fehlerbehandlung und Genauigkeit
Umgang mit mathematischen Fehlern
#include <stdio.h>
#include <math.h>
#include <errno.h>
int main() {
errno = 0;
double ergebnis = sqrt(-1);
if (errno != 0) {
perror("Mathematischer Fehler");
}
return 0;
}
LabEx Lernansatz
LabEx bietet interaktive Umgebungen, um diese mathematischen Programmiertechniken zu üben und Entwicklern die Möglichkeit zu geben, durch praktische Codierung zu experimentieren und zu lernen.
Best Practices
- Fügen Sie immer
<math.h>
hinzu.
- Verwenden Sie das Flag
-lm
während der Kompilierung.
- Überprüfen Sie potenzielle mathematische Fehler.
- Wählen Sie geeignete Datentypen.
- Berücksichtigen Sie die Rechenkomplexität.