Aidez moi à faire ce programme slvp
Résolu
Mamadou
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Aidez moi à faire ce programme slvp
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
Salut,
ce n'est pas une solution de faire l'exercice à ta place.
montre ce que tu as fait et peut être tu trouveras un coup de main.
merci
ce n'est pas une solution de faire l'exercice à ta place.
montre ce que tu as fait et peut être tu trouveras un coup de main.
merci
Oui vous avez parfaitement raison mais cet exercice n'est pas donné par un professeur c'est juste que je m'entraîne avec les exercices d'une autre université. Et il y avait 5 exos j'ai réussi à faire 2 et c'est le 3ème mais ici je me retrouve pas. Guidez moi de tel sorte que j'ai une idée meilleur
1.
En ce qui concerne le tri, la façon de faire dépend en partie aussi de la façon dont tu stockes les données.
Puisqu'on te demande seulement de pouvoir les afficher dans l'ordre alphabétique, et pas dans l'ordre d'enregistrement, tu pourrais construire ta base de données de façon à ce qu'elle soit toujours par ordre alphabétique, en insérant une nouvelle personne au bon endroit. Tu peux faire cela en choisissant une liste chaînée comme structure de données pour y stocker les données, car cette structuration permet facilement l'insertion de nouveaux éléments. Ensuite, pour afficher la base par ordre alphabétique, tu n'as qu'à afficher les personnes dans l'ordre de parcours de ta liste car tout est déjà ordonné au fur et à mesure.
Autrement, par exemple si tu stockes les données dans un tableau dynamique, ou statique, de struct (ce qui est moins compliqué à programmer qu'une liste chaînée), il te faudra effectivement effectuer ensuite un tri. Tu peux le faire en implémentant un algorithme de tri (le plus simple à implémenter, et le moins optimisé, étant le tri à bulles : https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles) ou, en C, tu peux utiliser la fonction qsort() de la bibliothèque standard :
http://www.cplusplus.com/reference/cstdlib/qsort/
https://emmanuel-delahaye.developpez.com/tutoriels/c/notes-langage-c/?page=Page8
2.
Concernant ta 2ème question "Ensuite comment afficher l'information du citoyen en tapant uniquement son numéro d'enregistrement ?"... j'avoue que je ne comprends pas ce qui te pose problème.
Quelle que soit l'implémentation que tu choisiras, tu vas stocker les données de chaque "citoyen" dans la structure en les regroupant avec des struct (pour reprendre les 3 exemples cités ci-dessus : une liste chaînée de struct, un tableau de struct dynamique ou statique, ou autre chose).
Ta structure de données, quelque soit le choix de structuration que tu feras, te permettra de lister les données, du début à la fin, en recherchant si le numéro correspond, et si c'est le cas, d'accéder au nom qui est stocké dans la même struct où tu as trouvé la correspondance. C'est une recherche facile à mettre en place : tu parcours tes données à partir du début à la recherche du numéro.
Bien sûr, ce n'est pas très optimisé. Alors, en moins facile, si tu dois concevoir des bases de données performantes, et éviter de parcourir toute la liste des données, tu pourrais décider de gérer des index sur certains champs plus souvent recherchés que les autres. C'est ce que font les systèmes de gestion de bases de données.
Dal
En ce qui concerne le tri, la façon de faire dépend en partie aussi de la façon dont tu stockes les données.
Puisqu'on te demande seulement de pouvoir les afficher dans l'ordre alphabétique, et pas dans l'ordre d'enregistrement, tu pourrais construire ta base de données de façon à ce qu'elle soit toujours par ordre alphabétique, en insérant une nouvelle personne au bon endroit. Tu peux faire cela en choisissant une liste chaînée comme structure de données pour y stocker les données, car cette structuration permet facilement l'insertion de nouveaux éléments. Ensuite, pour afficher la base par ordre alphabétique, tu n'as qu'à afficher les personnes dans l'ordre de parcours de ta liste car tout est déjà ordonné au fur et à mesure.
Autrement, par exemple si tu stockes les données dans un tableau dynamique, ou statique, de struct (ce qui est moins compliqué à programmer qu'une liste chaînée), il te faudra effectivement effectuer ensuite un tri. Tu peux le faire en implémentant un algorithme de tri (le plus simple à implémenter, et le moins optimisé, étant le tri à bulles : https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles) ou, en C, tu peux utiliser la fonction qsort() de la bibliothèque standard :
http://www.cplusplus.com/reference/cstdlib/qsort/
https://emmanuel-delahaye.developpez.com/tutoriels/c/notes-langage-c/?page=Page8
2.
Concernant ta 2ème question "Ensuite comment afficher l'information du citoyen en tapant uniquement son numéro d'enregistrement ?"... j'avoue que je ne comprends pas ce qui te pose problème.
Quelle que soit l'implémentation que tu choisiras, tu vas stocker les données de chaque "citoyen" dans la structure en les regroupant avec des struct (pour reprendre les 3 exemples cités ci-dessus : une liste chaînée de struct, un tableau de struct dynamique ou statique, ou autre chose).
Ta structure de données, quelque soit le choix de structuration que tu feras, te permettra de lister les données, du début à la fin, en recherchant si le numéro correspond, et si c'est le cas, d'accéder au nom qui est stocké dans la même struct où tu as trouvé la correspondance. C'est une recherche facile à mettre en place : tu parcours tes données à partir du début à la recherche du numéro.
Bien sûr, ce n'est pas très optimisé. Alors, en moins facile, si tu dois concevoir des bases de données performantes, et éviter de parcourir toute la liste des données, tu pourrais décider de gérer des index sur certains champs plus souvent recherchés que les autres. C'est ce que font les systèmes de gestion de bases de données.
Dal