Trier les cours avec le tri à bulles

CBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à organiser une liste de cours de programmation à l'aide de l'algorithme de tri à bulles. Les cours seront triés dans l'ordre alphabétique, vous permettant de voir facilement et de résumer les langages de programmation que vous avez appris.

👀 Aperçu

$ gcc courses.c -o courses
$./courses
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment calculer correctement la longueur d'un tableau
  • Comment modifier le type de paramètre d'une fonction de tri
  • Comment corriger la logique de comparaison et d'échange dans l'algorithme de tri

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Organiser une liste de cours de programmation à l'aide de l'algorithme de tri à bulles
  • Comprendre l'importance du calcul correct de la longueur du tableau et des types de paramètres de fonction
  • Appliquer la logique de comparaison et d'échange correcte dans un algorithme de tri
  • Montrer votre capacité à suivre des instructions étape par étape et à modifier le code existant pour obtenir le résultat souhaité

Corrigez le calcul de la longueur du tableau

Dans cette étape, vous allez apprendre à calculer correctement la longueur du tableau courses.

  1. Ouvrez le fichier courses.c situé dans le répertoire /home/labex/project/.

  2. Trouvez la ligne de code suivante :

    int n = strlen(courses);
    

    Cette ligne utilise la fonction strlen pour calculer la longueur du tableau courses, ce qui est incorrect. La fonction strlen est utilisée pour calculer la longueur d'une chaîne de caractères, pas d'un tableau.

  3. Remplacez la ligne ci-dessus par la suivante :

    int n = sizeof(courses) / sizeof(courses[0]);
    

    Cette ligne utilise l'opérateur sizeof pour calculer la taille totale du tableau courses, puis la divise par la taille d'un seul élément pour obtenir le nombre d'éléments dans le tableau.

Changez le type de paramètre de la fonction de tri

Dans cette étape, vous allez apprendre à changer le type de paramètre de la fonction sort.

  1. Dans le fichier courses.c, trouvez la définition de la fonction sort :

    void sort(char p[], int n)
    
  2. Changez le type de paramètre de char p[] à char *p[]. La définition de la fonction mise à jour devrait ressembler à ceci :

    void sort(char *p[], int n)
    

    Ce changement est nécessaire car nous traitons un tableau de chaînes de caractères (un tableau de pointeurs), pas une seule chaîne.

Corrigez la logique de comparaison et d'échange

Dans cette étape, vous allez apprendre à corriger la logique de comparaison et d'échange dans la fonction sort.

  1. Dans la fonction sort, trouvez le code suivant :

    if (k!= j)
    {
        tmp = p[k];
        p[k] = p[i];
        p[i] = tmp;
    }
    
  2. Remplacez la condition if (k!= j) par if (k!= i). Le code mis à jour devrait ressembler à ceci :

    if (k!= i)
    {
        tmp = p[k];
        p[k] = p[i];
        p[i] = tmp;
    }
    

    Ce changement est nécessaire pour vérifier si l'élément le plus petit a été trouvé dans l'itération actuelle (indexé par i).

Après avoir effectué ces trois étapes, votre fichier courses.c devrait être prêt pour la compilation et l'exécution. Vous pouvez maintenant passer à l'étape suivante.

  1. Dans la fonction sort, complétez la section // TODO: comme suit :

    {
         if (strcmp(p[j], p[k]) < 0)
         {
             k = j;
         }
    }
    
  2. Exécutez la commande suivante :

gcc courses.c -o courses
./courses
  1. Vérifiez que le programme produit la sortie attendue.
ASP
ASP.NET
BASIC
C
C#
C++
COBOL
JAVA
PASCAL
PHP

Résumé

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer