Aidez moi à faire ce programme slvp
Résolu/Fermé
Mamadou
-
5 juin 2018 à 11:57
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 5 juin 2018 à 18:17
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 5 juin 2018 à 18:17
A voir également:
- Aidez moi à faire ce programme slvp
- Programme demarrage windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Mettre en veille un programme - Guide
- Désinstaller programme windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
3 réponses
UnGnU
Messages postés
1158
Date d'inscription
lundi 2 mai 2016
Statut
Contributeur
Dernière intervention
22 décembre 2020
157
5 juin 2018 à 12:01
5 juin 2018 à 12:01
Salut,
Un début de réponse ici ;-))
Un début de réponse ici ;-))
YanisNsrn
Messages postés
95
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
7 juin 2018
156
5 juin 2018 à 12:01
5 juin 2018 à 12:01
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
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 098
Modifié le 5 juin 2018 à 14:12
Modifié le 5 juin 2018 à 14:12
Bonjour Mamadou,
Sur quoi as-tu besoin d'aide ?
Dal
Sur quoi as-tu besoin d'aide ?
Dal
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 098
Modifié le 5 juin 2018 à 18:25
Modifié le 5 juin 2018 à 18:25
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