Eine Zeile des Pascalschen Dreiecks in C generieren

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, wie Sie eine Zeile des Pascalschen Dreiecks mit C programmieren. Das Labor umfasst drei Hauptphasen: die Eingabe der Zeilenzahl durch den Benutzer, die Berechnung der Binomialkoeffizienten für die Zeile und die Ausgabe der Zeile. Sie beginnen mit der Erstellung eines Programms, das den Benutzer nach der gewünschten Zeilenzahl fragt, implementieren dann eine Funktion zur Berechnung der Binomialkoeffizienten und geben schließlich die Zeile des Pascalschen Dreiecks aus. Am Ende dieses Labors haben Sie ein solides Verständnis von Zahlentheorie- und diskreten Mathematik-Konzepten sowie praktische Erfahrungen in der Anwendung dieser Konzepte mit C-Programmierung.

Die Zeilenzahl einlesen

In diesem Schritt lernen Sie, wie Sie die Zeilenzahl für die Generierung einer Zeile im Pascalschen Dreieck mit C einlesen. Wir erstellen ein Programm, das den Benutzer nach der gewünschten Zeilenzahl fragt.

Erstellen Sie zunächst eine neue C-Datei im Projektverzeichnis:

cd ~/project
nano pascal_triangle.c

Fügen Sie nun den folgenden Code hinzu, um die Zeilenzahl einzulesen:

#include <stdio.h>

int main() {
    int zeilenNummer;

    printf("Geben Sie die Zeilenzahl für das Pascalsche Dreieck ein: ");
    scanf("%d", &zeilenNummer);

    printf("Sie haben die Zeilenzahl %d eingegeben.\n", zeilenNummer);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc pascal_triangle.c -o pascal_triangle
./pascal_triangle

Beispielausgabe:

Geben Sie die Zeilenzahl für das Pascalsche Dreieck ein: 5
Sie haben die Zeilenzahl 5 eingegeben.

Code-Erklärung:

  • #include <stdio.h> inkludiert die Standard-Eingabe/Ausgabe-Bibliothek
  • scanf() liest eine ganzzahlige Eingabe vom Benutzer
  • printf() zeigt die eingegebene Zeilenzahl an
  • Das Programm validiert die grundlegende Benutzereingabe für die Zeilenzahl.

Wichtige Punkte:

  • Wir verwenden scanf(), um eine ganzzahlige Eingabe zu lesen.
  • Die Zeilenzahl wird verwendet, um die spezifische Zeile des Pascalschen Dreiecks zu generieren.
  • Die Eingabevalidierung wird in späteren Schritten hinzugefügt.

Binomialkoeffizienten berechnen

In diesem Schritt lernen Sie, wie Sie Binomialkoeffizienten berechnen, um eine bestimmte Zeile des Pascalschen Dreiecks zu generieren. Wir erweitern das vorherige Programm, um die Koeffizienten mithilfe einer Funktion zu berechnen.

Öffnen Sie die bestehende Datei:

cd ~/project
nano pascal_triangle.c

Ersetzen Sie den vorherigen Code durch die folgende Implementierung:

#include <stdio.h>

// Funktion zur Berechnung des Binomialkoeffizienten
int binomialCoeff(int n, int k) {
    // Basisfälle
    if (k == 0 || k == n)
        return 1;

    // Rekursive Berechnung anhand der Eigenschaft des Pascalschen Dreiecks
    return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
}

int main() {
    int zeilenNummer;

    printf("Geben Sie die Zeilenzahl für das Pascalsche Dreieck ein: ");
    scanf("%d", &zeilenNummer);

    printf("Binomialkoeffizienten für Zeile %d:\n", zeilenNummer);

    // Generieren und Ausgeben der Koeffizienten
    for (int k = 0; k < zeilenNummer; k++) {
        printf("%d ", binomialCoeff(zeilenNummer - 1, k));
    }
    printf("\n");

    return 0;
}

Kompilieren und ausführen:

gcc pascal_triangle.c -o pascal_triangle
./pascal_triangle

Beispielausgabe:

Geben Sie die Zeilenzahl für das Pascalsche Dreieck ein: 5
Binomialkoeffizienten für Zeile 5:
1 4 6 4 1

Code-Erklärung:

  • Die Funktion binomialCoeff() berechnet rekursiv die Binomialkoeffizienten.
  • Basisfälle behandeln die ersten und letzten Elemente jeder Zeile.
  • Die Funktion nutzt die rekursive Eigenschaft des Pascalschen Dreiecks.
  • Die verschachtelte Schleife generiert die Koeffizienten für die angegebene Zeile.

Wichtige Punkte:

  • Binomialkoeffizienten repräsentieren die Zahlen in jeder Zeile des Pascalschen Dreiecks.
  • Die rekursive Berechnung demonstriert die mathematische Beziehung.
  • Die Zeitkomplexität ist aufgrund des rekursiven Ansatzes exponentiell.

Die Zeile ausgeben

In diesem Schritt erweitern Sie das Programm für das Pascalsche Dreieck, um die Zeile mit korrektem Abstand und Ausrichtung zu formatieren und auszugeben, wodurch die Ausgabe optisch ansprechender wird.

Öffnen Sie die bestehende Datei:

cd ~/project
nano pascal_triangle.c

Ersetzen Sie den vorherigen Code durch die folgende Implementierung:

#include <stdio.h>

// Funktion zur Berechnung des Binomialkoeffizienten
int binomialCoeff(int n, int k) {
    if (k == 0 || k == n)
        return 1;
    return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
}

// Funktion zum Ausgeben einer Zeile des Pascalschen Dreiecks
void printPascalRow(int zeilenNummer) {
    // führende Leerzeichen für die Ausrichtung ausgeben
    for (int leerzeichen = 0; leerzeichen < zeilenNummer; leerzeichen++) {
        printf("   ");
    }

    // Generieren und Ausgeben der Koeffizienten
    for (int k = 0; k < zeilenNummer; k++) {
        int koeffizient = binomialCoeff(zeilenNummer - 1, k);
        printf("%4d ", koeffizient);
    }
    printf("\n");
}

int main() {
    int zeilenNummer;

    printf("Geben Sie die Zeilenzahl für das Pascalsche Dreieck (1-10): ");
    scanf("%d", &zeilenNummer);

    if (zeilenNummer < 1 || zeilenNummer > 10) {
        printf("Bitte geben Sie eine Zeilenzahl zwischen 1 und 10 ein.\n");
        return 1;
    }

    printf("Zeile %d des Pascalschen Dreiecks:\n", zeilenNummer);

    // Ausgabe der angegebenen Zeile
    printPascalRow(zeilenNummer);

    return 0;
}

Kompilieren und ausführen:

gcc pascal_triangle.c -o pascal_triangle
./pascal_triangle

Beispielausgabe:

Geben Sie die Zeilenzahl für das Pascalsche Dreieck (1-10): 5
Zeile 5 des Pascalschen Dreiecks:
            1    4    6    4    1

Code-Erklärung:

  • Die Funktion printPascalRow() kümmert sich um die Formatierung der Zeile.
  • Hinzugefügte führende Leerzeichen für die visuelle Ausrichtung.
  • Verwendung von %4d-Formatangabe für konstante Spaltenbreite.
  • Hinzugeführte Eingabevalidierung zur Begrenzung der Zeilenzahlen.
  • Ausgabe der gesamten Zeile mit korrektem Abstand.

Wichtige Punkte:

  • Die Formatierung verbessert die Lesbarkeit des Pascalschen Dreiecks.
  • Die Eingabevalidierung verhindert unerwartetes Verhalten.
  • Es werden grundlegende Formatierungstechniken in C demonstriert.

Zusammenfassung

In diesem Labor lernen Sie, wie Sie die Zeilenzahl für die Generierung einer Zeile im Pascalschen Dreieck mithilfe von C-Programmierung einlesen und die Binomialkoeffizienten berechnen, um die Zeile auszugeben. Zuerst erstellen Sie ein Programm, das den Benutzer auffordert, die gewünschte Zeilenzahl einzugeben. Anschließend implementieren Sie eine Funktion zur Berechnung der Binomialkoeffizienten mithilfe der rekursiven Eigenschaft des Pascalschen Dreiecks. Schließlich geben Sie die Zeile des Pascalschen Dreiecks basierend auf den berechneten Koeffizienten aus. Die in diesem Labor behandelten wichtigen Punkte umfassen die Verwendung von scanf() zum Einlesen der Benutzereingabe, die Implementierung einer rekursiven Funktion zur Berechnung der Binomialkoeffizienten und die Ausgabe der generierten Zeile.