jeudi 26 juin 2014

Exercice corrigé du modèle du livre d'exercices MERISE

          Modèle Conceptuel de données –Etude de cas

Modèle du livre d'exercices MERISE

ENONCE :
Méta modèle : modèle du livre d’exercices MERISE
Liste des données :
1.      N° exercice
2.      type d’exercice (MCT, MCD, PB).
3.      libellé du type d’exercice (modèle conceptuel des traitements,…)
4.      niveau de difficulté
5.      nom de l’auteur. Un exercice peut être réalisé par plusieurs auteurs.
6.      durée de résolution estimée : l’estimation est faite par type d’exercice et par niveau de difficulté
7.      énoncé résumé de l’exercice
8.      nombre de page de l’exercice

Solution:


Exercice corrigé MCD Gestion des ordinateurs

            Modèle Conceptuel de données –Etude de cas

Gestion des ordinateurs

Au service de l'intendance :
ü   Chaque ordinateur est identifié par un N° d'inventaire crée par l'intendant.
ü   Sa date d'achat doit être conservée, ainsi que son nom générique et sa marque.
ü   Les informations courantes sur le fournisseur de l'ordinateur sont notées.
ü   Certains sont couverts par un contrat de maintenance. Le type de garantie (pièces, pièces & MO, sur site etc.), la date de signature, sa durée sont indispensables. Un contrat peut couvrir plusieurs ordinateurs et a un coût forfaitaire.
ü   Un contrat est toujours signé auprès d'une société dont on désire garder toutes les coordonnées. Celle-ci est bien souvent le fournisseur.
Présentez le MCD?

Solution:


Exercice corrigé MCD Gestion d’une vidéothèque

          Modèle Conceptuel de données –Etude de cas


Gestion dune vidéothèque

On souhaite pouvoir gérer les films, les acteurs ainsi que leur rôle dans chacun des films.

Modèle et explications

Nous considérons donc 3 entités : FILM, PERSONNALITE, FONCTION. Naturellement, une PERSONNALITE est liée à un FILM par une relation TRAVAILLE_DANS. 
Dans ce cas, TRAVAILLE_DANS devra être une relation ternaire puisqu'il faut lier la FONCTION à la PERSONNALITE et au FILM. Le MCD correspondant :






Exercice corrigé MCD Gestion des résultats au parcours du combattant

        Modèle Conceptuel de données –Etude de cas

Gestion des résultats au parcours du combattant

Une caserne militaire désire gérer les résultats des soldats lors du passage des obstacles du parcours du combattant. Dans sa carrière, un soldat va passer plusieurs fois le parcours du combattant.
A chaque fois qu’un soldat passe un obstacle, un instructeur lui attribue une note (note instructeur). Si le parcours comporte 20 obstacles, l’élève recevra donc 20 notes (si l’élève ne passe pas l’obstacle, la note 0 lui est attribuée).
A chaque obstacle est attribué un niveau de difficulté. (facile, moyen, difficile …). Un bonus de points est ensuite attribué à chaque niveau (ex : bonus de 2 points pour les obstacles difficiles).
La note finale pour le passage d’un obstacle est donc égale à : note attribuée par l’instructeur + bonus relatif à la difficulté de l’obstacle.
Enfin, une note minimale à obtenir est définie pour chaque obstacle. Elle définit un niveau minimum à atteindre qui permet de dire à un soldat sur quels obstacles il doit axer en priorité son entraînement.
Exemple : soit l’obstacle « Fosse » de niveau « difficile » (le bonus attribué pour ce niveau est de 2 points). La note minimale à atteindre pour cet obstacle est de 10.
Si un élève est noté 6 sur cet obstacle par l’instructeur, sa note finale sera égale à 6 + 2 = 8. On juge donc que son niveau sur cet obstacle est insuffisant et qu’il lui faut parfaire son entraînement.
Les responsables de la caserne souhaitent obtenir la liste de tous les obstacles ainsi que leur niveau de difficulté.
Ils souhaitent également obtenir la liste de toutes les notes attribuées sur chacun des obstacles.
Enfin, ils désirent avoir le récapitulatif des notes obtenues par un soldat donné pour retracer sa progression, ainsi que le temps total qu’il a mis pour effectuer un parcours complet (ainsi que les temps intermédiaires).
Établir le modèle conceptuel des données?

Solution:




Exercice corrigé MCD Gestion de l'exploitation agricole

         Modèle Conceptuel de données –Etude de cas

Gestion des droits à produire d'une exploitation

On souhaite gérer, pour chaque exploitation agricole, le montant des divers droits à produire. Un droit est valable pour une période donnée et on désire conserver l’historique des divers droits de chacune des exploitations.
A ce jour, la liste des droits à produire que l’on désire gérer est la suivante :
- Quota laitiers (en litres)
- Droits de plantation (en ha)
Les informations retenues sont :
- Le nom de l’exploitation
- La commune où se situe l’exploitation
- Sa SAU
- Les droits et les valeurs des droits accordés à chaque exploitation.
Établir le modèle conceptuel des données?

Solution:





Exercice corrigé MCD Gestion de classement des cassettes magnétophones

          Modèle Conceptuel de données –Etude de cas

Gestion de classement des cassettes magnétophones


A) Énoncé :
Dans le domaine classement des cassettes magnétophones, on dispose des informations suivantes :
·         Numéro de la cassette
·         Nom de l’œuvre enregistrée sur la cassette : il peut y avoir plusieurs œuvre sur une cassette
·         Nom de l’artiste interprétant l’œuvre
·         Style de l’œuvre (jazz, classique,…)
·         Numéro de l’emplacement de l’oeuvre sur la cassette
Les informations ci-après sont à prendre en compte :
·         Une cassette peut être vierge
·         Une même œuvre peut être interprétée par des artistes différents.
·         Une même œuvre peut être disponible sur plusieurs cassettes différentes.
·         Une œuvre peut être un mélange de style
T.A.F : Établir le MCD correspondant

B) Corrigé:



Exercice corrigé MCD Gestion d'habillement

         Modèle Conceptuel de données –Etude de cas

Gestion d'habillement

Faire le modèle conceptuel des données correspondant aux données définies ci-après.
On s’intéresse aux informations suivantes :
1-référence du modèle de la jupe
2-référence du modèle de chemisier
3-référence du motif du tissu
4-nombre de jupes d’un modèle donné dans un motif donné
5-nombre de chemisiers d’un modèle donné dans un motif donné
6-nombre d’assortiments disponibles.
                                             
Un assortiment est un ensemble composé d’une jupe et d’un chemisier dans le même motif, sachant qu’un modèle de jupe ne s’associe qu’à un certain nombre de modèles de chemisiers et réciproquement.
  
Solution:


Exercice corrigé MCD Gestion des tarifs des taxis

              Modèle Conceptuel de données –Etude de cas

Gestion des tarifs des taxis 

Dans le domaine de TARIF DES TAXIS ,on s’intéresse à la modélisation des données suivantes :
1-zone urbaine (suburbaine, autres)
2-plage horaire (jour, nuit)
3-mode de retour du taxi (retour à vide, ou avec le client)
4-code tarif utilisé (A, B, C)
5-prix au kilomètre pour un code tarif donné

En zone suburbaine, le tarif dépend de la plage horaire ; dans les autres zones, le tarif dépend du code horaire et du mode de retour du taxi.  

Solution :


Exercice corrigé MCD Gestion de scolarité

          Modèle Conceptuel de données –Etude de cas



Gestion de scolarité

Chez le proviseur adjoint :
Ä  Les informations courantes sur un élève sont recueillies.
Ä  Un élève est toujours inscrit dans une classe identifiée par un code (1 STT1, Term S2 etc.)
Ä  Chaque classe a un professeur principal.
Ä  Un professeur enseigne une, voire plusieurs matières y compris dans la même classe (c'est
Ä  Le cas de nombreux professeurs d'Economie & Gestion.
Ä  Les coordonnées d'un professeur doivent être connues.

Présentez le MCD?

Solution :


lundi 23 juin 2014

GESTION DE LA MEMOIRE EN FILE

1. Le cadre général :

Une file est une structure de données dynamique dans laquelle on insère des nouveaux éléments à la fin (queue) et où on enlève des éléments au début (tête de file).
On parle d’un mode d’accès : FIFO (First In First Out).


           L'objectif de ce TP est d'écrire un programme qui permet la gestion d’une file de valeurs entières et de longueur 8.

2. Les différentes fonctions :

                     a. la fonction CREFILE() :

Cette fonction permet de créer une file vide dans un tableau nommé file[ ] et de dimension DMAX déclaré au niveau de la fonction principale. CREFILE() quant à elle, initialise  AR et AE deux variables, respectivement, pour la réception et l’émission des nombres au sein de la file.




          Puisque les variables locales perdent leurs valeurs une fois la fonction termine son exécution;  on a vu utile de mettre les variables AR et AE dans 2 tableaux de dimension 1, afin qu’on puisse conserver leurs valeurs.

b. la fonction FILEVIDE() :

            Cette fonction retourne une valeur logique vraie ou fausse selon que la file est vide ou non.  Tout en se référant à un compteur (cpt) qui compte le nombre d’éléments constituants la file en fonction de l’ajout et la suppression.



c. la fonction FILEPLEINE() :

                    Cette fonction fournit une valeur logique vraie ou fausse selon que la file est pleine ou non (en vérifiant la valeur de cpt).




d. la fonction AJOUTER() :

                    La fonction AJOUTER() permet, après vérification de la file si elle est pleine, d’ajouter une valeur entière dans la file. Cet ajout est toujours accompagné par une incrémentation de la valeur de AR.


e. la fonction SUPPRIMER() :

                   Cette  fonction permet, en se référant à la valeur de cpt et en vérifiant ainsi si la file est vide,  de supprimer l’élément en tête de la file et d’afficher sa valeur.


f. la fonction AFFICHER() :

                  Cette fonction permet d’afficher tous les éléments de la file implantée au niveau du tableau file[ ].





GESTION DE LA MEMOIRE EN FILE (suite)

g. la fonction principale :


Cette fonction fait appel au menu suivant :



Afin d’alléger davantage la fonction principale, une fonction est créée  générant le menu général du programme.





















N.B : Si l’opération demandée est impossible à réaliser, la fonction principale affiche un message d’avertissement.



























Mini projet en recherche opérationnelle

Réalisation d’une application modélisant l’algorithme 

 DIJKSTRA, sous la plateforme C# .net

Introduction:

Présentant de grands avantages de rapidité, cet algorithme ne permet que la recherche des chemins de longueur minimale et pour des graphes pondérés par des poids positifs.

Cet algorithme, autorisant la recherche d’un chemin minimal entre deux sommets I (initial) et F (final). se décompose en quatre phases, comme suit :
























           



Le principe est le suivant : on affecte provisoirement le poids maximal (+ ∞) à tous les sommets, sauf pour le sommet initial de poids 0 et ses successeurs (recevant le poids de l’arc les reliant à I) ; tant que c’est possible, on diminue les poids provisoires qui deviennent définitifs (un sommet affecté d’un poids définitif est dit marqué) lorsque leur diminution devient impossible.

Remarque :
Il se peut que l’algorithme se termine avant que tous les sommets ne soient marqués (cf. l’alternative du début de la phase 3) ; cela voudra dire qu’aucun des chemins passant par ces sommets non marqués ne sera un chemin de longueur minimale.

            Exemple :            
            Cherchons dans le graphe G ci-dessous, un chemin minimal de I à F, en utilisant l’algorithme de DIJKSTRA-MOORE, ce qui est possible les poids étant tous positifs.

































                 Dans la dernière colonne ( Σ ), on a indiqué successivement l’entrée des sommets. Pour retrouver un chemin minimal, on lit le tableau de droite à gauche. Le dernier sommet entré est le sommet final F : dans la colonne F, est indiqué (toujours en dernière position) le poids définitif attribué à F, qui est aussi la longueur minimale du chemin et qui vaut ici 23. De plus, le prédécesseur de F qui a contribué à donner son poids à F, est P : on lit dans la colonne P que le prédécesseur (ayant contribué à donner son poids définitif à P) est L. Puis la colonne L va nous donner le prédécesseur qui est E ; la colonne E nous donne ensuite D, la colonne D nous donne B, celle de B nous donne A et celle de A nous donne I. Le chemin de longueur minimale reliant I à F est donc : [I, A, B, D, E, L, P, F] et sa longueur est 23.

                Remarque : 
                La présence de circuits dans le graphe G interdit son partage en niveau et donc l’utilisation de la version présentée de l’algorithme de FORD. De même, la recherche d’un chemin de longueur maximale, n’a aucun sens.


Interfaces de l'application:

               L'application permet de dessiner différents points via des coordonnées (x,y), et permet de les relier tout en donnant une valeur équivalente à chaque arc. Ainsi, On obtient un graphe sur la carte de la forme principale.  Ceci sera bien illustré dans les captures d'écran suivantes représentant les différentes étapes de la mise en œuvre de l’application :















Après l’insertion de tous les points et arcs, on obtient un graphe :



























Ensuite l’utilisateur sélectionne le point de départ et celui de l’arrivée, l’application applique alors l’algorithme du Dijkstra et visualise le chemin de coût minimal en rouge, tout en mentionnant le coût minimal au niveau de chaque point de passage :





















                N.B :
                L’application permet d’enregistrer les graphes sous format <xml> et de les réouvrir, afin d’éviter les efforts inutiles.