Ermitteln der Geradengleichung anhand zweier Punkte in C

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labor lernen Sie, die Gleichung einer Geraden anhand zweier Punkte in C zu finden. Das Labor umfasst drei Hauptschritte: die Berechnung der Steigung aus zwei Punkten, die Berechnung des y-Achsenabschnitts mithilfe der Steigung und eines bekannten Punktes und schließlich die Ausgabe der vollständigen Geradengleichung in der Form y = mx + b. Am Ende dieses Labors haben Sie ein solides Verständnis dafür, wie Sie mit Geraden in der analytischen Geometrie mit C arbeiten.

Das Labor beginnt mit der Demonstration der Berechnung der Steigung zwischen zwei Punkten mithilfe der Formel (y2 - y1) / (x2 - x1). Anschließend wird gezeigt, wie der y-Achsenabschnitt bestimmt wird, indem die Gleichung y = mx + b umgestellt wird, um die Konstante b zu ermitteln. Schließlich wird die vollständige Geradengleichung ausgegeben, sodass Sie die Gerade in der Standardform darstellen können.

Steigungsberechnung anhand zweier Punkte

In diesem Schritt lernen Sie, die Steigung zwischen zwei Punkten in einem C-Programm zu berechnen. Die Steigung repräsentiert die Steilheit einer Geraden und wird mithilfe der Formel berechnet: Steigung = (y2 - y1) / (x2 - x1).

Erstellen Sie zunächst eine neue C-Datei zur Implementierung der Steigungsberechnung:

cd ~/project
nano slope_calculation.c

Schreiben Sie nun den folgenden C-Code, um die Steigung zu berechnen:

#include <stdio.h>

float calculate_slope(float x1, float y1, float x2, float y2) {
    // Überprüfen Sie, ob die Punkte auf derselben vertikalen Linie liegen
    if (x2 - x1 == 0) {
        printf("Unbestimmte Steigung (vertikale Linie)\n");
        return 0;
    }

    // Berechnung der Steigung mithilfe der Formel: (y2 - y1) / (x2 - x1)
    float slope = (y2 - y1) / (x2 - x1);
    return slope;
}

int main() {
    float x1 = 2.0, y1 = 3.0;  // Erster Punkt
    float x2 = 5.0, y2 = 7.0;  // Zweiter Punkt

    float slope = calculate_slope(x1, y1, x2, y2);

    printf("Punkt 1: (%.1f, %.1f)\n", x1, y1);
    printf("Punkt 2: (%.1f, %.1f)\n", x2, y2);
    printf("Steigung: %.2f\n", slope);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc slope_calculation.c -o slope_calculation
./slope_calculation

Beispielausgabe:

Punkt 1: (2.0, 3.0)
Punkt 2: (5.0, 7.0)
Steigung: 1.33

Lassen Sie uns den Code aufschlüsseln:

  1. Die Funktion calculate_slope() nimmt vier Parameter entgegen: x1, y1, x2, y2
  2. Sie prüft zunächst, ob die Punkte eine vertikale Gerade bilden (x2 - x1 = 0)
  3. Falls keine vertikale Gerade vorliegt, berechnet sie die Steigung mithilfe der Standardformel.
  4. Die Funktion main() demonstriert die Verwendung der Steigungsberechnung.

Die Steigung repräsentiert die Änderung der y-Koordinate dividiert durch die Änderung der x-Koordinate zwischen zwei Punkten. In diesem Beispiel beträgt die Steigung ungefähr 1,33, was bedeutet, dass sich y für jede Änderung von x um 1 Einheit um 1,33 Einheiten ändert.

Berechnung des y-Achsenabschnitts mit y - mx

In diesem Schritt lernen Sie, den y-Achsenabschnitt einer Geraden mithilfe der Steigung und eines bekannten Punktes zu berechnen. Der y-Achsenabschnitt ist der Punkt, an dem die Gerade die y-Achse schneidet, und er kann mithilfe der Gleichung berechnet werden: b = y - mx.

Fahren Sie im selben Projektverzeichnis fort und modifizieren Sie die vorherige C-Datei:

cd ~/project
nano line_equation.c

Schreiben Sie den folgenden C-Code, um den y-Achsenabschnitt zu berechnen:

#include <stdio.h>

float calculate_slope(float x1, float y1, float x2, float y2) {
    if (x2 - x1 == 0) {
        printf("Unbestimmte Steigung (vertikale Linie)\n");
        return 0;
    }
    return (y2 - y1) / (x2 - x1);
}

float calculate_intercept(float x, float y, float slope) {
    // Berechnung des y-Achsenabschnitts mit der Formel: b = y - mx
    float intercept = y - (slope * x);
    return intercept;
}

int main() {
    float x1 = 2.0, y1 = 3.0;  // Erster Punkt
    float x2 = 5.0, y2 = 7.0;  // Zweiter Punkt

    float slope = calculate_slope(x1, y1, x2, y2);
    float intercept = calculate_intercept(x1, y1, slope);

    printf("Punkt 1: (%.1f, %.1f)\n", x1, y1);
    printf("Punkt 2: (%.1f, %.1f)\n", x2, y2);
    printf("Steigung: %.2f\n", slope);
    printf("Y-Achsenabschnitt: %.2f\n", intercept);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc line_equation.c -o line_equation
./line_equation

Beispielausgabe:

Punkt 1: (2.0, 3.0)
Punkt 2: (5.0, 7.0)
Steigung: 1.33
Y-Achsenabschnitt: 0.33

Lassen Sie uns den neuen Code aufschlüsseln:

  1. Die Funktion calculate_intercept() nimmt drei Parameter entgegen: x, y und Steigung
  2. Sie verwendet die Formel b = y - mx, um den y-Achsenabschnitt zu berechnen.
  3. In der Funktion main() verwenden wir die zuvor berechnete Steigung und einen Punkt, um den y-Achsenabschnitt zu ermitteln.
  4. Der y-Achsenabschnitt stellt den Punkt dar, an dem die Gerade die y-Achse schneidet, wenn x = 0 ist.

Die Berechnung zeigt, dass die Gerade für die gegebenen Punkte eine Steigung von 1,33 und einen y-Achsenabschnitt von 0,33 hat.

Ausgabe der Geradengleichung y = mx + b

In diesem Schritt lernen Sie, die vollständige Geradengleichung mithilfe der Steigung und des y-Achsenabschnitts zu formatieren, die in den vorherigen Schritten berechnet wurden. Wir werden das bestehende C-Programm modifizieren, um die Geradengleichung in der Standardform y = mx + b anzuzeigen.

Arbeiten Sie im selben Projektverzeichnis fort:

cd ~/project
nano line_equation_final.c

Schreiben Sie den folgenden C-Code, um die Geradengleichung auszugeben:

#include <stdio.h>

float calculate_slope(float x1, float y1, float x2, float y2) {
    if (x2 - x1 == 0) {
        printf("Unbestimmte Steigung (vertikale Linie)\n");
        return 0;
    }
    return (y2 - y1) / (x2 - x1);
}

float calculate_intercept(float x, float y, float slope) {
    return y - (slope * x);
}

void print_line_equation(float slope, float intercept) {
    printf("Geradengleichung: y = ");

    // Ausgabe des Steigungskoeffizienten
    if (slope == 1) {
        printf("x");
    } else if (slope == -1) {
        printf("-x");
    } else if (slope != 0) {
        printf("%.2fx", slope);
    }

    // Ausgabe des y-Achsenabschnitts
    if (intercept > 0) {
        printf(" + %.2f", intercept);
    } else if (intercept < 0) {
        printf(" - %.2f", -intercept);
    }

    printf("\n");
}

int main() {
    float x1 = 2.0, y1 = 3.0;  // Erster Punkt
    float x2 = 5.0, y2 = 7.0;  // Zweiter Punkt

    float slope = calculate_slope(x1, y1, x2, y2);
    float intercept = calculate_intercept(x1, y1, slope);

    printf("Punkt 1: (%.1f, %.1f)\n", x1, y1);
    printf("Punkt 2: (%.1f, %.1f)\n", x2, y2);
    printf("Steigung: %.2f\n", slope);
    printf("Y-Achsenabschnitt: %.2f\n", intercept);

    print_line_equation(slope, intercept);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc line_equation_final.c -o line_equation_final
./line_equation_final

Beispielausgabe:

Punkt 1: (2.0, 3.0)
Punkt 2: (5.0, 7.0)
Steigung: 1.33
Y-Achsenabschnitt: 0.33
Geradengleichung: y = 1.33x + 0.33

Lassen Sie uns den neuen Code aufschlüsseln:

  1. Die Funktion print_line_equation() verarbeitet verschiedene Fälle für Steigung und y-Achsenabschnitt.
  2. Sie behandelt Sonderfälle wie Steigungen von 1, -1 oder 0.
  3. Sie formatiert die Gleichung mit korrekten Vorzeichen für den y-Achsenabschnitt.
  4. Die Funktion bietet eine saubere und gut lesbare Darstellung der Geradengleichung.

Der Code zeigt, wie Punkt- und Steigungsinformationen in eine Standardform der linearen Gleichung umgewandelt werden.

Zusammenfassung

In diesem Labor haben Sie zunächst gelernt, wie man die Steigung zwischen zwei Punkten mithilfe der Formel (y2 - y1) / (x2 - x1) berechnet. Dies repräsentiert die Steilheit der Geraden. Anschließend haben Sie gelernt, wie man den y-Achsenabschnitt der Geraden mithilfe der Steigung und eines bekannten Punktes berechnet, indem man die Gleichung y = mx + b umstellt, um nach b aufzulösen. Schließlich haben Sie die Steigung und den y-Achsenabschnitt kombiniert, um die vollständige Gleichung der Geraden in der Form y = mx + b auszugeben.