Calculer le périmètre d'un polygone en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à calculer le périmètre d'un polygone en C. Le laboratoire couvre les étapes suivantes : la lecture des longueurs des côtés dans un tableau, la somme de tous les côtés et l'impression du périmètre. Vous créerez un programme qui permettra aux utilisateurs d'entrer les longueurs des côtés d'un polygone, de les stocker dans un tableau, puis de calculer le périmètre en additionnant toutes les longueurs des côtés.

Le laboratoire fournit un guide étape par étape, incluant un exemple de code, pour vous aider à comprendre et à implémenter le calcul du périmètre d'un polygone en C. À la fin du laboratoire, vous aurez un programme fonctionnel capable de calculer le périmètre d'un polygone jusqu'à 10 côtés.

Lecture des longueurs des côtés dans un tableau

Dans cette étape, vous apprendrez à lire les longueurs des côtés dans un tableau pour calculer le périmètre d'un polygone en C. Nous allons créer un programme qui permet aux utilisateurs d'entrer les longueurs des côtés d'un polygone et de les stocker dans un tableau.

Tout d'abord, créons un fichier source C dans le répertoire du projet :

cd ~/project
nano polygon_perimeter.c

Maintenant, entrez le code suivant :

#include <stdio.h>

#define MAX_COTES 10

int main() {
    float cotes[MAX_COTES];
    int nb_cotes;

    // Demander à l'utilisateur le nombre de côtés
    printf("Entrez le nombre de côtés du polygone (max %d) : ", MAX_COTES);
    scanf("%d", &nb_cotes);

    // Saisie des longueurs des côtés
    printf("Entrez les longueurs des côtés :\n");
    for (int i = 0; i < nb_cotes; i++) {
        printf("Longueur du côté %d : ", i + 1);
        scanf("%f", &cotes[i]);
    }

    // Affichage des longueurs des côtés saisies
    printf("\nLongueurs des côtés saisies :\n");
    for (int i = 0; i < nb_cotes; i++) {
        printf("Côtés %d : %.2f\n", i + 1, cotes[i]);
    }

    return 0;
}

Compilez le programme :

gcc -o polygon_perimeter polygon_perimeter.c

Exécutez le programme :

./polygon_perimeter

Exemple de sortie :

Entrez le nombre de côtés du polygone (max 10) : 4
Entrez les longueurs des côtés :
Longueur du côté 1 : 5.5
Longueur du côté 2 : 6.2
Longueur du côté 3 : 4.3
Longueur du côté 4 : 7.1

Longueurs des côtés saisies :
Côtés 1 : 5.50
Côtés 2 : 6.20
Côtés 3 : 4.30
Côtés 4 : 7.10

Décomposons les parties clés du code :

  • #define MAX_COTES 10 définit une limite maximale pour le nombre de côtés
  • float cotes[MAX_COTES] crée un tableau pour stocker les longueurs des côtés
  • scanf() est utilisé pour lire le nombre de côtés et les longueurs des côtés individuels
  • Une boucle for est utilisée pour saisir et afficher les longueurs des côtés

Somme de tous les côtés

Dans cette étape, vous allez modifier le programme précédent pour calculer le périmètre en additionnant toutes les longueurs des côtés du polygone.

Ouvrez le fichier existant :

cd ~/project
nano polygon_perimeter.c

Mettez à jour le code avec le calcul du périmètre :

#include <stdio.h>

#define MAX_COTES 10

int main() {
    float cotes[MAX_COTES];
    int nb_cotes;
    float perimetre = 0.0;

    // Demander à l'utilisateur le nombre de côtés
    printf("Entrez le nombre de côtés du polygone (max %d): ", MAX_COTES);
    scanf("%d", &nb_cotes);

    // Saisie des longueurs des côtés
    printf("Entrez les longueurs des côtés :\n");
    for (int i = 0; i < nb_cotes; i++) {
        printf("Longueur du côté %d : ", i + 1);
        scanf("%f", &cotes[i]);
    }

    // Calcul du périmètre en additionnant tous les côtés
    for (int i = 0; i < nb_cotes; i++) {
        perimetre += cotes[i];
    }

    // Affichage des longueurs des côtés et du périmètre
    printf("\nLongueurs des côtés saisies :\n");
    for (int i = 0; i < nb_cotes; i++) {
        printf("Côtés %d : %.2f\n", i + 1, cotes[i]);
    }

    // Affichage du périmètre calculé
    printf("\nPérimètre du polygone : %.2f\n", perimetre);

    return 0;
}

Compilez le programme mis à jour :

gcc -o polygon_perimeter polygon_perimeter.c

Exécutez le programme :

./polygon_perimeter

Exemple de sortie :

Entrez le nombre de côtés du polygone (max 10): 4
Entrez les longueurs des côtés :
Longueur du côté 1 : 5.5
Longueur du côté 2 : 6.2
Longueur du côté 3 : 4.3
Longueur du côté 4 : 7.1

Longueurs des côtés saisies :
Côtés 1 : 5.50
Côtés 2 : 6.20
Côtés 3 : 4.30
Côtés 4 : 7.10

Périmètre du polygone : 23.10

Modifications clés de cette étape :

  • Ajout d'une variable perimetre pour stocker la somme totale des longueurs des côtés
  • Introduction d'une nouvelle boucle for pour calculer le périmètre en additionnant tous les côtés
  • Ajout d'une instruction d'impression pour afficher le périmètre calculé

Affichage du périmètre

Dans cette dernière étape, vous améliorerez le programme de calcul du périmètre d'un polygone en ajoutant une sortie formatée et une gestion des erreurs pour la validation des entrées.

Ouvrez le fichier existant :

cd ~/project
nano polygon_perimeter.c

Mettez à jour le code avec une validation d'entrée améliorée et une sortie formatée :

#include <stdio.h>

#define MAX_COTES 10
#define MIN_COTES 3

int main() {
    float cotes[MAX_COTES];
    int nb_cotes;
    float perimetre = 0.0;

    // Demander à l'utilisateur le nombre de côtés avec validation d'entrée
    do {
        printf("Entrez le nombre de côtés du polygone (entre %d et %d) : ",
               MIN_COTES, MAX_COTES);
        scanf("%d", &nb_cotes);

        if (nb_cotes < MIN_COTES || nb_cotes > MAX_COTES) {
            printf("Nombre de côtés invalide. Veuillez réessayer.\n");
        }
    } while (nb_cotes < MIN_COTES || nb_cotes > MAX_COTES);

    // Saisie des longueurs des côtés avec validation
    printf("Entrez les longueurs des côtés :\n");
    for (int i = 0; i < nb_cotes; i++) {
        float longueur_cote;
        do {
            printf("Longueur du côté %d (doit être positive) : ", i + 1);
            scanf("%f", &longueur_cote);

            if (longueur_cote <= 0) {
                printf("Longueur de côté invalide. Veuillez saisir une valeur positive.\n");
            } else {
                cotes[i] = longueur_cote;
                break;
            }
        } while (1);
    }

    // Calcul du périmètre en additionnant tous les côtés
    for (int i = 0; i < nb_cotes; i++) {
        perimetre += cotes[i];
    }

    // Sortie formatée des résultats
    printf("\n--- Calcul du périmètre du polygone ---\n");
    printf("Nombre de côtés : %d\n", nb_cotes);

    printf("\nLongueurs des côtés :\n");
    for (int i = 0; i < nb_cotes; i++) {
        printf("Côtés %d : %.2f\n", i + 1, cotes[i]);
    }

    printf("\nCalcul du périmètre :\n");
    for (int i = 0; i < nb_cotes; i++) {
        printf("%s%.2f", (i > 0) ? " + " : "", cotes[i]);
    }
    printf(" = %.2f\n", perimetre);

    printf("\nPérimètre final : %.2f\n", perimetre);

    return 0;
}

Compilez le programme mis à jour :

gcc -o polygon_perimeter polygon_perimeter.c

Exécutez le programme :

./polygon_perimeter

Exemple de sortie :

Entrez le nombre de côtés du polygone (entre 3 et 10) : 4
Entrez les longueurs des côtés :
Longueur du côté 1 (doit être positive) : 5.5
Longueur du côté 2 (doit être positive) : 6.2
Longueur du côté 3 (doit être positive) : 4.3
Longueur du côté 4 (doit être positive) : 7.1

--- Calcul du périmètre du polygone ---
Nombre de côtés : 4

Longueurs des côtés :
Côtés 1 : 5.50
Côtés 2 : 6.20
Côtés 3 : 4.30
Côtés 4 : 7.10

Calcul du périmètre :
5.50 + 6.20 + 4.30 + 7.10 = 23.10

Périmètre final : 23.10

Améliorations clés de cette étape :

  • Ajout de la validation des entrées pour le nombre de côtés et les longueurs des côtés
  • Création d'une sortie plus détaillée et formatée
  • Inclusion d'un affichage pas à pas du calcul du périmètre
  • Respect des contraintes minimales et maximales pour le nombre de côtés

Résumé

Dans ce laboratoire, vous apprendrez à lire les longueurs des côtés d'un polygone dans un tableau, à additionner tous les côtés pour calculer le périmètre et à afficher le résultat. Tout d'abord, vous demanderez à l'utilisateur d'entrer le nombre de côtés et la longueur de chaque côté, en stockant les longueurs des côtés dans un tableau. Ensuite, vous additionnerez toutes les longueurs des côtés pour calculer le périmètre du polygone. Enfin, vous afficherez le périmètre calculé.

Les étapes clés incluent l'utilisation de scanf() pour lire les entrées de l'utilisateur, le stockage des longueurs des côtés dans un tableau, l'itération sur le tableau pour additionner les longueurs des côtés et l'affichage du résultat final.