Post

TD01 Listes Chainee

Télécharger le TD01 Listes Chainee en pdf

Pages : 1 2

Page 1 : Pré-ING2Informatique 3Semestre 1 - 2023/2024TD 01 : Listes chaînéesOn rappelle que les commandes à taper dans le terminal pour compiler puis éxécuter votre programme C :— Pour compiler : gcc -o nomexecutable nomprogramme.c— Pour exécuter : ./nomexecutableExercice 1 Listes des puissances de deux1. Déclarer une structure Chainon permettant de construire une liste chaînée comportant des entiers.2. Écrire une fonction Chainon creationChainonint a qui retourne un pointeur vers un nouveau Chainon contenantl’entier a.3. Écrire une fonction Chainon insertDebutChainon pliste, int a permettant d’insérer un nouvel entier a endébut de la liste chaînée pointée par pliste. Cette fonction retourne la tête de la liste chaînée.4. Écrire une fonction insertFinChainon pliste, int a permettant d’insérer un nouvel entier a en fin de la listechaînée pointée par pliste.5. Écrire une procédure afficheListeChainon pliste permettant d’afficher les différents éléments de la liste chaînéepointée par pliste. Les entier seront séparés par le symbole "-".Ex : 1 - 10 - 3 - 156. Dans le programme principal, initialiser un pointeur sur une liste vide.7. On souhaite que ce programme affiche une liste des puissances de deux dans l’ordre. La taille de cette liste sera décidéepar l’utilisateur ; on affiche la liste chaînée et on demande à l’utilisateur s’il souhaite voir la puissance de deux suivante,si c’est le cas, on rajoute un Chainon supplémentaire à la liste et on l’affiche à nouveau, sinon on arrête le programme.Exercice 2 Liste croissanteÉcrire un programme qui ajoute un élément dans une liste simplement chaînée et triée par ordre croissant.Exercice 3 Suppression de Chaînon1. Définir une liste chaînée d’entiers composée de 10 Chainons dont les valeurs seront aléatoires entre 0 et 5 compris.2. Écrire des fonctions prenant en paramètre un pointeur sur liste et un entier qui permettent de supprimer dans uneliste :— Le premier Chainon dont la valeur est égale au paramètre.— Tous les Chainon dont la valeur est égale au paramètre.3. Tester ces fonctions avec la liste de la question 1.Exercice 4 Inversion d’une liste— Écrire un programme qui permet de créer une liste chaînée inverse d’une autre liste premier élément en dernier,deuxième en avant dernier etc..— Écrire un programme qui permet d’inverser une liste chaînée sans passer par une liste intermédaire.Exercice 5 Gestion des étudiants extrait du devoir de 2021/2022 On souhaite gérer les notes et les informations del’ensemble des étudiants de CY–Tech.1. Un étudiant de deuxième année est défini par son nom, son prénom, son groupe et ses notes. Plus précisément, chaqueétudiant reçoit toujours 10 constante notes. Pour plus de facilité, le groupe de l’étudiant sera défini par un entiercorrespondant au numéro de son groupe exemple : groupe 1, groupe 6 etc. . .. Définir la structure Etudiant permettantde stocker ces informations.2. Comme on peut avoir des retards à l’inscription ou des étudiants qui partent en cours d’année, les étudiants vont être ran-gés dans une liste dynamique. Définir la ou les structures nécessaires pour construire la liste dynamique LstEtudiantsdes étudiants.3. Écrire une fonction saisirEtudiantLstEtudiants lst qui permet de saisir les données d’un nouvel étudiant et del’ajouter à la fin de la liste. Les notes seront aléatoires.4. Proposer une procédure listeParGroupeLstEtudiants lst, int groupe permettant d’afficher le nom de tous lesétudiants du groupe passé en paramètre.1 Consignes générales : N’oubliez pas pour ce TD comme pour les suivants de vous créer un répertoire consacré au TD et d’enregistrer vos codes dedans.

page 1

Page 2 : 5. Écrire une fonctionmoyTab int tab qui prend en argument un tableau statique de taille N et qui renvoie lamoyenne de ses éléments.6. Écrire une fonction trouveEtudiant char nom, char prenom, LstEtudiants lst qui recherche un étudiantpar son nom et son prénom et renvoie un pointeur sur l’étudiant ou NULL s’il n’existe pas.7. Proposer un algorithme permettant de calculer la moyenne de l’élève dont le nom est «Spiruline Barnabus». Affichezun message d’erreur si aucun élève de ce nom n’existe.8. Calculer la moyenne de toute la promotion.9. Afficher le nom de l’Etudiant ayant la plus mauvaise moyenne de la promotion.2

page 2

Pages : 1 2

Le contenu de cet article est la propriété exclusive de son auteur.