From 4fbc8703598e93ccb605ae01890b3b748080dd25 Mon Sep 17 00:00:00 2001 From: Pradheep Unnikrishnan <pradheep.unnikrishnan@etu.unistra.fr> Date: Tue, 19 Mar 2024 07:17:00 +0100 Subject: [PATCH] Ajout de commentaire pour la documentation --- .../code_modifie/sans_organisation/main.c | 81 ++++++++++++++----- 1 file changed, 60 insertions(+), 21 deletions(-) diff --git a/TP3_SUITE_TP2_CLONE/code_modifie/sans_organisation/main.c b/TP3_SUITE_TP2_CLONE/code_modifie/sans_organisation/main.c index 3a00517..7d36695 100755 --- a/TP3_SUITE_TP2_CLONE/code_modifie/sans_organisation/main.c +++ b/TP3_SUITE_TP2_CLONE/code_modifie/sans_organisation/main.c @@ -1,52 +1,79 @@ /** -*@file main.c -*@brief Programme principale -*@author Pradheep U. -*@date 19/03/2024 -*@version 1.0 -*@copyright copyright 2024 Pradheep U. -*/ + *@file main.c + *@brief Programme principale pour trier un tableau dynamique 1D (une dimension) + *@details Ce programme créer un tableau, le remplit avec des valeurs aléatoires, le trie, puis affiche le tableau trié + *@author Pradheep U. + *@date 19/03/2024 + *@version 1.0 + *@copyright Copyright 2024 Pradheep U. +*/ #include <stdio.h> #include <stdlib.h> +/** + * @struct tableau + * @brief Structure représentant un tableau dynamique d'entier. + * @details Contient un pointeur vers un tableau d'entiers et sa taille +*/ typedef struct { - int *tab; //valeur est un pointeur vers un entier - int taille; + int *valeur; ///< Pointeur vers le tableau d'entier + int taille; ///< Taille du tableau } tableau; -tableau t; +tableau t; ///< Instance globale de la structure tableau +/** + *@fn int alea(int m) + *@brief Génère une valeur aléatoire entre 0 et m + *@param m Limite supérieur pour la création d'un nombre aléatoire + *@return Un entier aléatoire entre 0 et m +*/ int alea(int m) { return rand() % (m + 1); } +/** + *@fn void remplir(int m) + *@brief Remllit le tableau t avec des valeurs aléatoires + *@param m Limite supérieur pour la création d'un nombre aléatoire +*/ void remplir(int m) { int i = 0; while (i < t.taille) { - t.tab[i++] = alea(m); + t.valeur[i++] = alea(m); } } +/** + *@fn void bulle(int k) + *@brief Trie une portion du tableau t en utilisant l'algortithme du tri à bulle + *@param k Limite supérieur pour le tri + *@details Pour éviter l'accès en dehors du tableau, 'i + 1' ne doit pas dépasser 'k'; cette condition est validé par i < k +*/ void bulle(int k) { int i = 0; for (i = 0; i < k; i++) //Pour éviter d'accéder hors du tableau, la boucle dans bulle ne doit pas permettre que 'i + 1' dépasse k. Donc i < k dans la condition du boucle for. { - // Condition pour un tri décroissant, pour un tri croissant inversé la condition t.tab[i] > t.tab[i + 1]) - if (t.tab[i + 1] > t.tab[i]) + // Condition pour un tri décroissant, pour un tri croissant inversé la condition t.valeur[i] > t.valeur[i + 1]) + if (t.valeur[i + 1] > t.valeur[i]) { - int tmp = t.tab[i + 1]; - t.tab[i + 1] = t.tab[i]; - t.tab[i] = tmp; + int tmp = t.valeur[i + 1]; + t.valeur[i + 1] = t.valeur[i]; + t.valeur[i] = tmp; } } } +/** + *@fn void trier() + *@brief Trie le tableau en tableau t en utilisant l'algorithme du tri à bulle +*/ void trier() { int i = 0; @@ -56,18 +83,30 @@ void trier() } } +/** + * @fn void affiche() + * @brief Affiche les élements du tableau t +*/ void affiche() { int i; for (i = 0; i < t.taille; i++) { - printf("%d\t", t.tab[i]); + printf("%d\t", t.valeur[i]); } printf("\n"); } // LIGNE REBONDANTES : tableau t; // tableau d'entiers avec sa taille +/** + * @fn int main(argc, char **argv) + * @brief Fonction principale + * @param argc Nombre d'arguments de ligne de commande + * @param argv Tableau des arguements de ligne de commande + * @return 0 en cas de csuccès, 1 en cas d'échec + * @details Verifie le nombre d'arguments et procéde au remplissage, au tri et à l'affichage du tableau +*/ int main(int argc, char **argv) { @@ -82,9 +121,9 @@ int main(int argc, char **argv) int m = atoi(argv[2]); // lecture du 2eme argument - t.tab = NULL; // initialisation du pointeur - t.tab = (int *)malloc(t.taille * sizeof(int)); // allocation du tableau - if(t.tab == NULL) { + t.valeur = NULL; // initialisation du pointeur + t.valeur = (int *)malloc(t.taille * sizeof(int)); // allocation du tableau + if(t.valeur == NULL) { fprintf(stderr, "Erreur d'allocation de la mémoire\n"); exit(EXIT_FAILURE); } @@ -99,7 +138,7 @@ int main(int argc, char **argv) printf("tableau trié :\n"); affiche(); - free(t.tab); //libération de la mémoire + free(t.valeur); //libération de la mémoire return 0; } \ No newline at end of file -- GitLab