Berechnung des Umfangs eines Polygons 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, wie man den Umfang eines Polygons in C berechnet. Das Labor umfasst die folgenden Schritte: Einlesen der Seitenlängen in einen Array, Summieren aller Seiten und Ausgeben des Umfangs. Sie erstellen ein Programm, das es Benutzern ermöglicht, die Längen der Seiten eines Polygons einzugeben, diese in einem Array zu speichern und anschließend den Umfang zu berechnen, indem alle Seitenlängen addiert werden.

Das Labor bietet eine schrittweise Anleitung, einschließlich Beispielcodes, um Ihnen das Verständnis und die Implementierung der Polygonumfangsberechnung in C zu erleichtern. Am Ende des Labors haben Sie ein funktionierendes Programm, das den Umfang eines Polygons mit bis zu 10 Seiten berechnen kann.

Einlesen der Seitenlängen in einen Array

In diesem Schritt lernen Sie, wie Sie Seitenlängen in einen Array einlesen, um den Umfang eines Polygons in C zu berechnen. Wir erstellen ein Programm, das es Benutzern ermöglicht, die Längen der Seiten eines Polygons einzugeben und diese in einem Array zu speichern.

Erstellen Sie zunächst eine C-Quelldatei im Projektverzeichnis:

cd ~/project
nano polygon_perimeter.c

Geben Sie nun folgenden Code ein:

#include <stdio.h>

#define MAX_SIDES 10

int main() {
    float sides[MAX_SIDES];
    int num_sides;

    // Benutzer nach der Anzahl der Seiten fragen
    printf("Geben Sie die Anzahl der Seiten des Polygons ein (max %d): ", MAX_SIDES);
    scanf("%d", &num_sides);

    // Seitenlängen eingeben
    printf("Geben Sie die Längen der Seiten ein:\n");
    for (int i = 0; i < num_sides; i++) {
        printf("Seitenlänge %d: ", i + 1);
        scanf("%f", &sides[i]);
    }

    // Eingelesene Seitenlängen ausgeben
    printf("\nEingelesene Seitenlängen:\n");
    for (int i = 0; i < num_sides; i++) {
        printf("Seite %d: %.2f\n", i + 1, sides[i]);
    }

    return 0;
}

Kompilieren Sie das Programm:

gcc -o polygon_perimeter polygon_perimeter.c

Führen Sie das Programm aus:

./polygon_perimeter

Beispielausgabe:

Geben Sie die Anzahl der Seiten des Polygons ein (max 10): 4
Geben Sie die Längen der Seiten ein:
Seitenlänge 1: 5.5
Seitenlänge 2: 6.2
Seitenlänge 3: 4.3
Seitenlänge 4: 7.1

Eingelesene Seitenlängen:
Seite 1: 5.50
Seite 2: 6.20
Seite 3: 4.30
Seite 4: 7.10

Lassen Sie uns die wichtigsten Teile des Codes aufschlüsseln:

  • #define MAX_SIDES 10 legt eine maximale Anzahl an Seiten fest
  • float sides[MAX_SIDES] erstellt ein Array zur Speicherung der Seitenlängen
  • scanf() wird verwendet, um die Anzahl der Seiten und die einzelnen Seitenlängen einzulesen
  • Eine for-Schleife wird verwendet, um die Seitenlängen einzugeben und anschließend anzuzeigen

Summieren aller Seiten

In diesem Schritt erweitern Sie das vorherige Programm, um den Umfang zu berechnen, indem Sie alle Seitenlängen des Polygons summieren.

Öffnen Sie die vorhandene Datei:

cd ~/project
nano polygon_perimeter.c

Aktualisieren Sie den Code mit der Umfangsberechnung:

#include <stdio.h>

#define MAX_SIDES 10

int main() {
    float sides[MAX_SIDES];
    int num_sides;
    float perimeter = 0.0;

    // Benutzer nach der Anzahl der Seiten fragen
    printf("Geben Sie die Anzahl der Seiten des Polygons ein (max %d): ", MAX_SIDES);
    scanf("%d", &num_sides);

    // Seitenlängen eingeben
    printf("Geben Sie die Längen der Seiten ein:\n");
    for (int i = 0; i < num_sides; i++) {
        printf("Seitenlänge %d: ", i + 1);
        scanf("%f", &sides[i]);
    }

    // Umfang berechnen, indem alle Seiten summiert werden
    for (int i = 0; i < num_sides; i++) {
        perimeter += sides[i];
    }

    // Eingelesene Seitenlängen und den Umfang ausgeben
    printf("\nEingelesene Seitenlängen:\n");
    for (int i = 0; i < num_sides; i++) {
        printf("Seite %d: %.2f\n", i + 1, sides[i]);
    }

    // Den berechneten Umfang anzeigen
    printf("\nUmfang des Polygons: %.2f\n", perimeter);

    return 0;
}

Kompilieren Sie das aktualisierte Programm:

gcc -o polygon_perimeter polygon_perimeter.c

Führen Sie das Programm aus:

./polygon_perimeter

Beispielausgabe:

Geben Sie die Anzahl der Seiten des Polygons ein (max 10): 4
Geben Sie die Längen der Seiten ein:
Seitenlänge 1: 5.5
Seitenlänge 2: 6.2
Seitenlänge 3: 4.3
Seitenlänge 4: 7.1

Eingelesene Seitenlängen:
Seite 1: 5.50
Seite 2: 6.20
Seite 3: 4.30
Seite 4: 7.10

Umfang des Polygons: 23.10

Wichtige Änderungen in diesem Schritt:

  • Eine Variable perimeter wurde hinzugefügt, um die Summe aller Seitenlängen zu speichern.
  • Eine neue for-Schleife wurde eingeführt, um den Umfang zu berechnen, indem alle Seiten addiert werden.
  • Eine Ausgabe wurde hinzugefügt, um den berechneten Umfang anzuzeigen.

Ausgabe des Umfangs

In diesem letzten Schritt verbessern Sie das Programm zur Berechnung des Polygonumfangs, indem Sie formatierte Ausgaben und Fehlerbehandlung für die Eingabevalidierung hinzufügen.

Öffnen Sie die vorhandene Datei:

cd ~/project
nano polygon_perimeter.c

Aktualisieren Sie den Code mit verbesserter Eingabevalidierung und formatierter Ausgabe:

#include <stdio.h>

#define MAX_SIDES 10
#define MIN_SIDES 3

int main() {
    float sides[MAX_SIDES];
    int num_sides;
    float perimeter = 0.0;

    // Benutzer nach der Anzahl der Seiten fragen mit Eingabevalidierung
    do {
        printf("Geben Sie die Anzahl der Seiten des Polygons ein (zwischen %d und %d): ",
               MIN_SIDES, MAX_SIDES);
        scanf("%d", &num_sides);

        if (num_sides < MIN_SIDES || num_sides > MAX_SIDES) {
            printf("Ungültige Anzahl an Seiten. Bitte versuchen Sie es erneut.\n");
        }
    } while (num_sides < MIN_SIDES || num_sides > MAX_SIDES);

    // Seitenlängen eingeben mit Validierung
    printf("Geben Sie die Längen der Seiten ein:\n");
    for (int i = 0; i < num_sides; i++) {
        float side_length;
        do {
            printf("Seitenlänge %d (muss positiv sein): ", i + 1);
            scanf("%f", &side_length);

            if (side_length <= 0) {
                printf("Ungültige Seitenlänge. Bitte geben Sie einen positiven Wert ein.\n");
            } else {
                sides[i] = side_length;
                break;
            }
        } while (1);
    }

    // Umfang berechnen, indem alle Seiten summiert werden
    for (int i = 0; i < num_sides; i++) {
        perimeter += sides[i];
    }

    // Formatierte Ausgabe der Ergebnisse
    printf("\n--- Berechnung des Polygonumfangs ---\n");
    printf("Anzahl der Seiten: %d\n", num_sides);

    printf("\nSeitenlängen:\n");
    for (int i = 0; i < num_sides; i++) {
        printf("Seite %d: %.2f\n", i + 1, sides[i]);
    }

    printf("\nUmfangsberechnung:\n");
    for (int i = 0; i < num_sides; i++) {
        printf("%s%.2f", (i > 0) ? " + " : "", sides[i]);
    }
    printf(" = %.2f\n", perimeter);

    printf("\nEndergebnis Umfang: %.2f\n", perimeter);

    return 0;
}

Kompilieren Sie das aktualisierte Programm:

gcc -o polygon_perimeter polygon_perimeter.c

Führen Sie das Programm aus:

./polygon_perimeter

Beispielausgabe:

Geben Sie die Anzahl der Seiten des Polygons ein (zwischen 3 und 10): 4
Geben Sie die Längen der Seiten ein:
Seitenlänge 1 (muss positiv sein): 5.5
Seitenlänge 2 (muss positiv sein): 6.2
Seitenlänge 3 (muss positiv sein): 4.3
Seitenlänge 4 (muss positiv sein): 7.1

--- Berechnung des Polygonumfangs ---
Anzahl der Seiten: 4

Seitenlängen:
Seite 1: 5.50
Seite 2: 6.20
Seite 3: 4.30
Seite 4: 7.10

Umfangsberechnung:
5.50 + 6.20 + 4.30 + 7.10 = 23.10

Endergebnis Umfang: 23.10

Wichtige Verbesserungen in diesem Schritt:

  • Hinzugefügte Eingabevalidierung für die Anzahl der Seiten und die Seitenlängen
  • Erstellte detailliertere und formatierte Ausgabe
  • Einschließlich einer schrittweisen Umfangsberechnung
  • Sicherstellung von Minimal- und Maximalbeschränkungen für die Seitenanzahl

Zusammenfassung

In diesem Labor lernen Sie, wie Sie die Seitenlängen eines Polygons in ein Array einlesen, alle Seiten summieren, um den Umfang zu berechnen, und das Ergebnis auszugeben. Zuerst werden Sie den Benutzer auffordern, die Anzahl der Seiten und die Länge jeder Seite einzugeben und die Seitenlängen in einem Array zu speichern. Anschließend werden Sie alle Seitenlängen summieren, um den Umfang des Polygons zu berechnen. Schließlich werden Sie den berechneten Umfang ausgeben.

Die wichtigsten Schritte umfassen die Verwendung von scanf(), um Benutzereingaben zu lesen, die Seitenlängen in einem Array zu speichern, das Array zu durchlaufen, um die Seitenlängen zu summieren, und das Endergebnis auszugeben.