Showing posts with label Réseaux. Show all posts
Showing posts with label Réseaux. Show all posts

Correction Complet d'Examen Théorique De Fin De Formation 2012

 

 Voir l'énoncé d'EFF Théorique 2012 sur le lien suivant : Examen de Fin de Formation - Théorique Session Juillet 2012 - TDI  

 

  Correction Complet d'Examen Théorique De Fin De Formation 2012 - UML - Merise - SQL Server - POO - HTML - JavaScript - Réseaux

Dossier 1 : UML - Merise :

Voir le lien suivant : Correction EFF Théorie 2012 Partie UML et Merise

Dossier 2 : SQL Server :

Q 1 : Écrire une requête qui affiche le nombre de matchs joués dans la journée n°12.
     SELECT count(*)
     from Match
     Where numJournee=12
Q 2 : Écrire une requête qui affiche le nombre de matchs joués par journée.
     SELECT numJournee, Count(numMatch)
     From Match
     Group By numJournee
Q 3 : Écrire une requête qui affiche le match qui a compté le plus grand nombre de spectateurs..
     Select numMatch, dateMatch, numJournee
     From Match
     Where nombreSpectateur = (Select Max(nombreSpectateur) From Match)
Q 4 : Écrire une requête qui affiche le nombre de points de l’équipe de code 112 ; le nombre de
points se calcule de la façon suivante : une victoire donne 3 points, une égalité donne 1 point
et une défaite donne 0 point.

Solution 1 :
     Declare @nbVictoirs int , @nbEgalite int , @totalPoints int
     Select @nbVictoirs = Count(numMatch)
     From Match
     Where (nombreButLocaux > nombreButVisiteurs and codeEquipeLocaux=112) OR (nombreButLocaux < nombreButVisiteurs and codeEquipeVisiteurs=112)
     Select @nbEgalite = Count(numMatch)
     From Match
     Where (nombreButLocaux = nombreButVisiteurs) and (codeEquipeLocaux=112 OR codeEquipeVisiteurs=112)
     Set @totalPoints = @nbVictoirs * 3 + @nbEgalite
     Select @totalPoints
Solution 2 :
     SELECT SUM(MyTable.resultat) FROM
     (SELECT resultat=COUNT(numMatch)*3 FROM Match
     WHERE (nombreButLocaux > nombreButVisiteurs and codeEquipeLocaux=112)
     OR (nombreButLocaux < nombreButVisiteurs and codeEquipeVisiteurs=112)
     UNION
     SELECT Count(numMatch)  FROM Match
     WHERE (nombreButLocaux = nombreButVisiteurs)
     and (codeEquipeLocaux=112 OR codeEquipeVisiteurs=112)) MyTable

Q 5 : Écrire une procédure stockée qui affiche les équipes qui ont gagné leur match dans une
journée dont le numéro est donné comme paramètre.

     CREATE PROC Q5 @nbrjour int
     AS
     BEGIN
          SELECT codeEquipeLocaux AS 'Code Equipe' FROM Match
          WHERE nombreButLocaux > nombreButVisiteurs AND numJournee = @nbrjour
          UNION
          SELECT codeEquipeVisiteurs AS 'Code Equipe' FROM Match
          WHERE nombreButLocaux < nombreButVisiteurs AND numJournee = @nbrjour
     END
     EXEC Q5 1;
Q 6 : Écrire un trigger qui refuse l’ajout d’une ligne à la table Match pour laquelle la colonne
codeEquipeLocaux est égale à la colonne codeEquipeVisiteurs..

     CREATE TRIGGER question6 ON Match2 AFTER INSERT
     AS
     DECLARE @loc int , @vis int
     SELECT @loc= codeEquipeLocaux, @vis= codeEquipeVisiteurs FROM Inserted
     IF (@loc=@vis)
     BEGIN
          RAISERROR ('ATTENTION: codeEquipeLocaux == codeEquipeVisiteurs :p', 16, 1);
          Rollback
     END

Dossier 3 : POO - Programmation Orientée Objet :

Solution 1 : en Java Par : AJDI Yassin:
 Q 1 & Q 2 :
public class Camera {
     protected int code;
     protected String type;
     protected int orientation;
     public Camera() {
     super();
     }
     public Camera(int code, String type) {
     super();
     this.code = code;
     this.type = type;
     }
     public int getCode() {
     return code;
     }
     public void setCode(int code) {
     this.code = code;
     }
     public String getType() {
     return type;
     }
     public void setType(String type) {
     this.type = type;
     }
     public int getOrientation() {
     return orientation;
     }
     public void setOrientation(int orientation) {
     this.orientation = orientation;
     }
     public void tourner(int sens) {
     this.orientation = sens;
     }
     public void afficher() {
     System.out.println("-Code: " + this.code + " Orientation:"
     + this.orientation);
     }
}

Q3 - Q4 - Q5 :
public class CameraMobile extends Camera {
     private int abs;
     private int ord;
     public CameraMobile(String type, int code, int abs, int ord) {
     super(code, type);
     this.abs = abs;
     this.ord = ord;
     }
     public CameraMobile() {
     super();
     }
}
public int getAbs() {
     return abs;
}
public void setAbs(int abs) {
     this.abs = abs;
}
public int getOrd() {
     return ord;
}
public void setOrd(int ord) {
     this.ord = ord;
}
public void avancer(int d) {
     switch (this.orientation) {
     case 1:
     this.ord += d;break;
     case 2:
     this.abs += d;break;
     case 3:
     this.ord -= d;break;
     case 4:
     this.abs -= d;break;
     }
}
public void afficherPosition() {
     System.out.println("-position: abs=" + this.abs + " ord=" + this.ord);
}
public void afficher() {
     super.afficher();
     this.afficherPosition();
     }
}

Q 6 :
public class classTest {
     public static void main(String[] args) {
     // TODO Auto-generated method stub
     CameraMobile cm1 = new CameraMobile("SUMSUNG", 213, 0, 0);
     cm1.afficher();
     // a
     cm1.setOrientation(2);
     cm1.afficher();
     // b
     cm1.setOrientation(4);
     cm1.avancer(10);
     cm1.afficher();
     // c
     cm1.setOrientation(1);
     cm1.avancer(16);
     cm1.afficher();
     // d
     cm1.setOrientation(2);
     cm1.avancer(5);
     cm1.afficher();
     // e
     cm1.setOrientation(3);
     cm1.avancer(12);
     cm1.afficher();
     }
}


Solution 2 : en C# :

Q 1 - Q 2 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Public class Camera
{
     private int code;
     private string type;
     private int orientation;
     public Camera()
     { }
     public Camera(int code, string type, int orientation) {
          this.code = code;
          this.type = type;
           if (orientation >= 1 && orientation <= 4)
               this.orientation = orientation;
          else throw new Exception("valeur incorrecte");
     }
     public int Code {
          get { return code; }
          set { code = value; }
     }
     public string Type {
          get { return type; }
          set { type = value; }
     }
     public int Orientation {
          get { return orientation; }
          set {
          if (value >= 1 && value <= 4)
          orientation = value;
          else throw new Exception("valeur incorrecte");
          }
     }
     public void tourner(int sens){
          if (sens >= 1 && sens <= 4)
          orientation = sens;
          else throw new Exception("valeur incorrecte");
     }
     public virtual void afficher(){
          Console.WriteLine("La caméra {0} a l'orientation {1}",code,orientation);
     }
}

Q 3 - Q 4 - Q 5 :
Public class CameraMobile:Camera
{
     private int abs;
     private int ord;
     public CameraMobile():base()
     { }
     public CameraMobile(int code, string type, int orientation,int abs,int ord) :base(code,type,orientation){
          this.abs = abs;
          this.ord = ord;
     }
     public void afficherPosition(){
          Console.WriteLine("Abscisse={0}-Ordonnée={1}",abs,ord);
     }
     public override void afficher()
     {
          base.afficher();
          afficherPosition();
     }
     public void avancer(int d){
          switch (this.Orientation){
          case 1: ord += d; break;
          case 2: abs += d; break;
          case 3: ord -= d; break;
          case 4: abs -= d; break;
          }
     }
}

Q 6 :
Public class Test
{
     static void Main(string[] args){
          CameraMobile cm = new CameraMobile(125, "Sony FX30", 1, 0, 0);
          cm.afficher();
          cm.tourner(2); cm.afficher();
          cm.tourner(4); cm.avancer(10); cm.afficher();
          cm.tourner(1); cm.avancer(16); cm.afficher();
          cm.tourner(2); cm.avancer(5); cm.afficher();
          cm.tourner(3); cm.avancer(12); cm.afficher();
          Console.ReadLine();
     }
}

Dossier 3 : HTML - JavaScript - Réseaux:


Exercice 1 : HTML - JavaScript :
Q 1 - Q 2 :
    <html >
        <head>
            <script type="text/javascript">
                function ChangeEtat(f) {
                    if(f.accepter.checked == true) {f.validation.disabled = false }
                    if(f.accepter.checked == false) {f.validation.disabled = true }
                }
                function valForm (f) {
                    if(f.nom.value == "" || f.prenom.value == "" || f.jour.value == "" || f.mois.value == "" || f.an.value == "" || f.pass.value == "" || f.confpass.value == "")
                        alert('Remplir tous les champs!!');
                    else
                        if(f.jour.value <=0 || f.jour.value >31|| f.mois.value <=0 || f.mois.value <=0 || f.mois.value>12 || f.an.value<1900)
                            alert('Date incorrecte!!');
                        else
                            if (f.pass.value != f.confpass.value)
                                alert('Le mot de passe et sa confirmation ne coïncident pas !! ');
                            else
                                f.submit();
                }
            </script>
        </head>
        <body >
            Pour s’inscrire, remplir le formulaire :< br >
            <form Action=" inscr.html" Method="Post" name="f1">
            Nom:<br>
            <input name="nom" size="30" ><br /><br />
            Prénom:<br>
            <input name="prenom" size="30" ><br /><br />
            Date de naissance:<br>
            <input name="jour" size="6" > <input name="mois" size="6" > <input name="an" size="6" ><br /><br />
            Mot de passe : <br />
            <input type="password" name="pass" size="30" >
            <br /><br />
            Confirmer mot de passe :<br>
            <input type="password" name="confpass" size="30" /><br /><br />
            <p><input type="checkbox" name="accepter" onClick=" ChangeEtat (this.form)" >J'accepte les conditions</p>
            <p>
            <input type="button" name="validation" value="Valider" disabled onClick="valForm(this.form)" >
            <input type="reset" value="Annuler" ></p>
            </form>
        </body>
    </html>


Q 3 :
On ajoute aux scripts, la fonction :
    function start() {
        setTimeout(window.close, 8000);
    }

La function start s’éxécute au chargement de la page par :
    <body onload="start()">

 Exercice 2 : Réseaux :
 De Q1 à Q4 voir cours.
 Q5 :
   a - Donner les adresses IP et les masques de chaque machine.
        - les adresses autorisées sont (192.168.79.2 jusqu'à 192.168.79.254) sous un masque 255.255.255.0

   b - Donner le type de câble utilisé pour connecter les équipements entre eux.

       
   c - Donner la commande MSDOS pour tester si la machine 1 est connectée à Internet.
        - La commande MSDOS : ping 42.42.6.6
   d - On souhaite que la machine 1 joue le rôle d’un serveur Web (IIS ou Apache), donner les
étapes d’installation et de configuration de ce serveur.

        - Voir cours.

Examen de Fin de Formation Théorie 2010 - TDI


Examen de Fin de Formation Théorie 2010 - TDI 

I – MODELISATION DE SI :

SupTIC est une école supérieure délocalisée au Maroc, spécialisée dans  la formation pointue dans le secteur des IT.
Les inscriptions fonctionnent de la façon suivante. :
Au début de chaque semestre, un catalogue des cours proposés est fourni par la Direction aux étudiants. Chaque cours est décrit par un certain nombre d'informations, en particulier : l'enseignant, le cursus et les prérequis.
Ce catalogue ne peut être créé avant que tous les cours ne soient affectés à des enseignants. Pour cela, chaque enseignant accède au système d'inscription pour indiquer les cours qu'il prévoit d'enseigner.
Les étudiants doivent remplir des fiches d'enregistrement qui indiquent leurs choix de cours. L'étudiant standard doit suivre 4 enseignements choisis dans le catalogue. Il devra indiquer aussi deux cours supplémentaires. En effet, il se peut que, parmi les 4 cours choisis, l'un des cours soit trop plein ou abandonné par manque d'étudiants. Chaque cours doit en effet être dispensé à au moins 5 étudiants et au plus 30 étudiants. Si un cours est choisi par moins de 5 étudiants, il est supprimé.
Ces fiches sont gérées par la scolarité. Une fois la période d’inscription terminée, un programme est exécuté pour affecter les étudiants aux cours. Dans la plupart des cas, les étudiants obtiennent ce qu’ils ont choisi. Après que tous les étudiants aient été correctement affectés aux différents cours, un listing est imprimé pour chaque étudiant pour vérification.
Une fois la sélection de cours d'un étudiant validée, l'information est transmise au système de facturation qui facturera l'étudiant pour son semestre.

1. Donner un diagramme des cas d'utilisation du système. (1.5 Pts)
2. Décrire un scénario principal par un diagramme de séquence. (2 Pts)
3. Donner un diagramme de classes (2 Pts)
4. Déduire un MCD (1.5 Pts)


II – SGBDR :

Une compagnie aérienne désire gérer l’ensemble de ses vols qu’elle met en service ainsi que les pilotes et les avions qui effectuent ces vols.
Le schéma de la base de données vous a été fournit comme suit :
Donner le code SQL permettant de :


Examen de Fin de Formation Théorie 2010 - TDI
Examen de Fin de Formation Théorie 2010 - TDI


1. Ajouter le champs Ville à la table PILOTE.  (0,25 pt)
2. Donner le nom des pilotes planifiés pour des vols sur A320. (0,25 pt)
3. Donner le nom des pilotes planifiés pour des vols sur A320, qui habitent dans la ville de localisation d’un A320. (0,25 pt)
4. Pour chaque ville desservie, donner la moyenne, le minimum et le maximum des capacités des avions qui sont localisés dans un aéroport desservant cette ville. (0,25 pt)
5. Dans la table VOL, créer un trigger en insertion qui vérifie que la ville d’arrivée est différente de la ville de départ et que l’heure d’arrivée est postérieure à l’heure de départ. Dans le cas contraire, on annule l’insertion.  (0.5 pt)
6. Créer une procédure stockée "Planning" qui affiche pour un nom et un prénom de pilote passés en paramètres, les numéros de vol, avec les aéroports de départ et d’arrivée, classés par date et heure de départ. (0.5 pt) 

III – RESEAUX INFORMATIQUES :

1. Qu’est ce qu’une adresse IP ? Quel est son rôle ? (0.5 pt)
2. Donnez la classe IP des adresses suivantes :  (0.75 pt)


Examen de Fin de Formation Théorie 2010 - TDI
Examen de Fin de Formation Théorie 2010 - TDI


3. Définir les éléments d’interconnexions suivants : (0.75 pt)
        a. cartes réseau
        b. concentrateurs
        c. commutateurs

IV – DEVELOPPEMENT WEB

1. Développer une fonction Javascript qui reçoit une matrice carrée de neuf lignes et neuf colonnes et vérifie que la somme des éléments de n’importe quelle ligne n est égale à la somme des éléments de la colonne n. (1 Pt)
2. Donner la DTD correspondante au document XML suivant : (2 Pts)

<liste>
<hotel code="1">
<nom>ADRAR</nom>
<adresse>Avenue Mohamed V</adresse>
<ville>AGADIR</ville>
<tel>028840437</tel>
<tel>028840717</tel>
<fax>028840545</fax>
</hotel>
<hotel code="2">
<nom>CHEMS</nom>
<adresse>1, Rue Houmane Fetouaki</adresse>
<ville>MARRAKECH</ville>
<tel>024444813</tel>
<tel>024444817</tel>
<tel>024444815</tel>
<fax>024440547</fax>
<fax>024 435400</fax>
<mail>chems@fram.fr</mail>
</hotel>
</liste>

V – PROGRAMMATION OBJET


Vous allez devoir participer à la conception et à la programmation d’une application de gestion d’un agenda. Un agenda électronique permet de mémoriser des événements, ponctuels (comme un examen de P.O.O. le mercredi 22 mai de 14h `a 16h) ou chroniques (comme un cours de P.O.O. tous les lundis, mardis, mercredis à partir du 18 janvier et pendant 6 semaines).
Un événement chronique est caractérisé  par les mêmes informations qu’un événement ponctuel, plus la périodicité (le nombre de jours auxquels un événement revient; par exemple, 7 pour un cours hebdomadaire) et le nombre de fois ou la périodicité est renouvelée.
Un agenda électronique appartient à une personne dont on mémorise le nom et le prénom.
Ensuite, il gère essentiellement la structure de données qui lui sert à mémoriser les événements.

1. Créer  les classes Evénement, EvenementChronique et EvenementPonctuel.(1.5 Pts)
        - Ecrivez tous les constructeurs nécessaires pour les événements, ainsi que les méthodes toString. 
2. Créer la classe Agenda.  (0.75 Pt)
3. Ajouter à la classe Agenda les méthodes. 
        - creerEvenementPonctuel (0.75 Pt)
        - creerEvenementChronique (0.75 Pt)
        - afficheEvenementsDuJour (0.75 Pt)
4. Ajouter une méthode de suppression d’un événement d une agenda.  (0.75 Pt)
5. Créer une classe de test   (0.75 Pt)

Télécharger L'Examen de Fin de Formation Théorie 2010 - TSDI :
en format .pdf sur le lien suivant :

Examen de Fin de Formation Théorie 2010 - TSDI


Examen de Fin de Formation Théorique Session Juin 2009

Examen de Fin de Formation Session Juin 2009 Théorique


I – XML

Distinguez les noms XML corrects des noms incorrects et corrigez les erreurs.
1. <Drivers_License_Number>98 NY 32</Drivers_License_Number>
2. <Driver's_License_Number>98 NY 32</Driver's_License_Number>
3. <month-day-year>7/23/2001</month-day-year>
4. <first name>Alan</first name>
5. <àçttûä>øåú</àçttûä>
6. <month/day/year>7/23/2001</month/day/year>
7. <_4-lane>I-610</_4-lane>
8. <4-lane>I-610</4-lane>

II – RESEAUX INFORMATIQUES

Compléter le tableau ci-dessous en opérant les éléments cités par une croix


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


III – ANALYSE & MODELISATION

La société G4 Parc SA désire développer un SI pour gérer son atelier.
Cahier des charges :
a. L’entretien des véhicules :
L’entreprise possède son propre parc de véhicules. L’atelier est donc en charge d’en assurer l’entretien : vidanges, réparations des petites pannes ...
L’atelier comporte 5 individus : le responsable d’atelier et 4 ouvriers.
Deux types de tâches sont définis :
- les réparations suite à une panne
- les contrôles pré-programmés (ex : vidange, nettoyage du véhicule...)
Une tâche est donc déclenchée soit suite à une planification décidée par le chef d’atelier (ex : révision du véhicule le 15/06) soit suite à la demande d’un membre du personnel (employé, ouvrier ou chef d’atelier).
Chaque demande est étudiée par le chef d’atelier qui accepte ou refuse la demande. En cas d’acceptation, il définit un niveau de priorité (de très urgent à non prioritaire). Pour cela, il peut consulter la liste des tâches déjà définies.
C’est également lui qui décide si la tâche peut être traitée en interne (par l’atelier) ou si elle doit être réalisée par une entreprise extérieure.
Chaque matin, les ouvriers consultent la liste des tâches à réaliser dans la journée et les exécutent.
Une fois la tâche terminée, il incombe à l’ouvrier l’ayant traitée de notifier que le travail a été accompli et de saisir éventuellement les pièces ou produits qu’il a utilisé(e)s.
En fin de journée, le chef d’atelier clôture les tâches accomplies après une éventuelle vérification (contrôle de la tâche).
b. La réalisation de travaux spécifiques :
Lorsque l’entreprise a besoin d’un matériel spécifique, l’atelier peut le fabriquer (ex : parc à vélo, meuble de rangement pour les outils ...).
La demande de fabrication peut émaner de n’importe quel employé mais dans tous les cas, elle est visée et acceptée (ou rejetée) par le chef d’atelier.
Lui seul a en effet le pouvoir d’accepter la réalisation d’une fabrication spécifique.
Chaque soir, le chef d’atelier consulte les demandes de fabrication qui ont été faites et décide du sort à leur accorder.
Si la fabrication est acceptée, il affecte un ordre de priorité.
NB : si la fabrication est jugée trop ardue par le chef d’atelier, il peut également décider de sous-traiter la tâche.
De temps en temps, le chef d’atelier consulte la liste des tâches pour éventuellement apporter des modifications aux niveaux de priorité.
En début de matinée, les ouvriers consultent les tâches à réaliser et les traitent.
Pour tout travail effectué (entretien ou fabrication), l’employé (ou les employés dans le cas d’un travail en commun) est tenu de remplir une « fiche travail » qui indique sur quelle tâche il a travaillé et combien de temps il a passé.
La même tâche peut donner lieu à plusieurs « fiches travail » si elle n’est pas traitée en 1 seule fois.
Lorsqu’ils ont fini leur travail, ils notifient la fin des travaux et saisissent les sorties de pièces ou de produits du stock.
En fin de journée, le chef d’atelier consulte la liste des tâches accomplies et décident alors de les clôturer après un éventuel contrôle.
NB : Une fabrication ou un entretien peut donc donner lieu à la saisie de plusieurs fiches travaux (travail réalisé sur plusieurs jours par exemple).
c. Commande de matériel et gestion des stocks
L’atelier dispose d’un stock de pièces nécessaire à l’entretien des véhicules ou à la fabrication d’objets spécifiques (filtres à huile, outils, bois ...).
Lorsqu’une tâche d’entretien ou un ordre de fabrication nécessite l’achat de matériel, l’ouvrier établit un devis en consultant éventuellement le catalogue des fournisseurs.
Il indique alors quelles sont les pièces à commander, leur prix et quel est le fournisseur retenu. Le chef d’atelier vérifie ensuite le devis et s’il l’accepte, le transforme en commande (en y apportant éventuellement des modifications : choix du fournisseur, nombre de pièces à commander ...).
La commande est ensuite envoyée au fournisseur retenu.
Lors de la réception d’une livraison (toujours effectuée par un des ouvriers), un contrôle est réalisé. Par rapprochement avec la commande, on est en effet en mesure de savoir si la livraison est conforme. Dans ce cas, elle est acceptée et l’ouvrier saisit le bon de livraison. Sinon, elle est rejetée.
NB : une commande peut donner lieu à un ou plusieurs livraisons.
Travail à faire :
EN SE BASANT SUR LES EXTRAITS DU CAHIER DES CHARGES DONNEES EN ANNEXES, ETABLIRE :
1. Le Diagramme de cas d’utilisation des du traitement de la commande. (2 pts)
2. Le Diagramme de classes. (4 pts)
3. Le Modèle conceptuel de données. (3 pts)

IV – PROGRAMMATION - VB.Net - C# - JAVA

On désire réaliser un programme (VB.Net, C# ou JAVA) permettant de calculer les caractéristiques d’un cylindre de Rayon R et de Hauteur H.
1. Le programme est constitué d’une classe Cylindre contenant les méthodes suivantes :(1Pt)
     GetRayon() : Retourne le Rayon saisi par l’utilisateur
     GetHauteur() : Retourne la hauteur saisie par l’utilisateur
     CalculSurface() : Calcule la surface du cylindre (3.14*R*R)
     CalculSurfaceLaterale() : Calcule la surface latérale du cylindre (3.14*R*H)
     SurfaceTotale() : Calcule la surface totale du cylindre [3.14*R*(H+R)]
     Volume() : Calcule le volume du cylindre (3.14*R*R*H)
2. Écrire une méthode main, qui crée une instance de la classe cylindre , et qui demande à l’utilisateur de saisir le Rayon et la Hauteur et affiche ces caractéristiques. Prévoir des exceptions pour le contrôle des données saisies par l’utilisateur. (1 Pt)
3. Ecrire un script Javascript permettant de calculer les caractéristiques d’un cylindre (1 Pt).
4. Ecrire le code HTML permettant aux utilisateurs la saisie de R et H. (1 Pt).

V – PROCÉDURES STOCKÉES

Soit le modèle relationnel suivant :


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


1. Créer une procédure stockée qui affiche les clients dont la quantité commande est supérieur à 250 et les factures sont réalisées entre 2006 et 2008 (1 Pt).
2. Créer une procédure stockée qui retourne la somme des prix à payer par tous les clients en utilisant un paramètre de sortie. (1 Pt).
3. Créer la procédure stockée qui compte le nombre de commandes d’un client et affiche le résultat. (1 Pt).

ANNEXES : EXTRAITS DU CAHIER DES CHARGES
Devis


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Commande


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Livraison


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Sortie du stock


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Demande d’entretien


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Demande de fabrication


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Validation d’une demande d’entretien


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Validation d’une demande de fabrication


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Saisie d’une fiche travail / notification de fin de tâche d’entretien ou de fabrication


Examen de Fin de Formation Théorique Session Juin 2009
Examen de Fin de Formation Théorique Session Juin 2009


Télécharger L'Examen de Fin de Formation Théorique Session Juin 2009 :
au format .pdf sur le lien suivant :

Examen de Fin de Formation Théorique Session Juin 2009

Examen Fin Formation - Théorique - 2007 - HTML - Réseaux - ADO.NET - UML - JAVA - Merise

Examen de Fin de Formation - Théorique - Session Juin 2007

Dossier 1 – Connaissance générales HTML - Réseaux - ADO.NET - SQL Server: (8Pts)


1. Soit le code HTML suivant :
<html>
<head>
</head>
<body TEXT="#000000" BGCOLOR="#ffffff" LINK="#000020" VLINK="#666666" ALINK="#660000" TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
     <table align="center" border="0" cellPadding="0" cellSpacing="0" width="75%">
          <tr BGCOLOR="white"  onMouseOver="this.bgColor='red';" onMouseOut="this.bgColor='green';">
          <td align="middle"><font size="3">Ligne 1</FONT></TD></TR>
          <tr><td HEIGHT="2">Ligne 2</TD></TR>
     </TABLE>
</body>
</html>

     a. Interpréter ce code en spécifiant ce que sera affiché dans un navigateur. (0.5Pt)
     b. Que se passe t-il, quand le pointeur survole sur la ligne 1. (1Pt)
     c. Que se passe t-il, quand le pointeur quitte la ligne 1. (1Pt)
     d. Que se passe t-il, quand le pointeur survole sur la ligne 2. (0.5Pt)

2. On veut établir une connexion à une base de données SQL Server sans DSN, alors définir la chaîne de connexion qui permet de faire ce travail. (1Pt)
3. Proposer un schéma qui permet de décrire le fonctionnement du service IIS au moment de la connexion à une page Web ASP qui accède à une base de données SQL Server dans une  Architecture 3-tires. Expliquer le déroulement de ce processus. (1Pt)
4. QCM (0.25Pt/Question) – (3Pts)

Question N° 1
Donnez, parmi les classes d’objets ADO suivantes, celles qui représentent des objets fonctionnant en mode connecté :
a. SQLConnection
b. DataTable
c. SQLCommand
d. DataRow

Question N° 2
Vous souhaitez créer une application en .Net et privilégiez la performance de l’application.
Vous choisissez :
a. Le fournisseur de données géré OLEDB Provider (.NET OLEDB Data Provider)
b. Le fournisseur de données géré SQL Provider (.NET SQL Server Data Provider)
c. De maintenir les connexions à la base de données ouvertes le plus longtemps possible.
d. De minimiser le temps de connexion de l’application à la base de données et de travailler  avec des objets déconnectés.

Question N° 3
Vous souhaitez afficher dans une DataGrid des données filtrées selon un critère exprimé sur la valeur d’une colonne d’un objet DataTable. Quelle solution privilégiez-vous ?
a. Vous modifiez la commande associée à la propriété SelectCommand du DataAdapter et faîtes appel à la méthode Fill de ce dernier.
b. Vous avez recours à la méthode Select de l’objet DataTable
c. Vous créez une DataView en spécifiant le filtre adéquat.
d. Vous parcourez les lignes de la datatable et affectez la propriété false à la propriiété Visible des lignes que vous souhaitez ignorer.

Question N°4
Parmi ces affirmations concernant ADO.Net, une est fausse : Laquelle ?
a. Les objets connectés (Connection, Command, et DataAdapter) sont différenciés en fonction du fournisseur de données qui peut-être un fournisseur OLEDB, un pilote ODBC ou un fournisseur spécialisé pour une base de données particulière (SQL Server, Oracle, …).
b. L’objet DataAdapter est un « pont » qui permet de reporter les mises à jour effectuées sur les objets DataTable dans les tables de la base de données à laquelle il est connecté.
c. Un objet DataTable ne peut être constitué qu’à partir d’une seule table. Il est en effet impossible de créer une DataTable à partir d’une requête portant sur plusieurs tables.
d. La méthode Fill du DataAdapter permet de récupérer la liste des champs de la requête sous-jacente de la commande SelectCommand du DataAdapter et de récupérer les lignes de données renvoyées par cette requête.

Question N° 5
JDBC permet d’accéder aux données présentes dans un SGBDR sans se préoccuper des détails techniques et des spécificités des différents moteurs relationnels
a. VRAI
b. FAUX

Question N°6
Les données d'un ResultSet ne sont pas consultables plusieurs fois
a. VRAI
b. FAUX

Question N° 7
Pour établir une connexion avec un SGBDR, il faut avoir un objet qui réalise l'interface Connexion
a. VRAI
b. FAUX

Question N° 8
Un Serveur IlS 5.0 sur un serveur Windows 2000 comporte comme services:
a. Serveur de vidéo en streaming
b. Serveur Web
c. Serveur de News
d. Serveur Ftp
e. Serveur de fichiers Windows

Question N° 9
IIS signifie
a. Intemet Information Service
b. Information Integral Server
c. Intranet Informatique de Service

Question N°10
Quel est le port par défaut du protocole http:
a. 21
b. 81
c. 80
d. 25

Question N° 11
Quel est le chemin physique du répertoire du site web par défaut
a. C: \Winnt\InetPub\WWWRoot
b. C:\Mes Documents\WWWRoot
c. C :\Program Files\Microsoft IIS\WWWRooot
d. C :\InetPub\WWWRoot
e. C :\Winnt\System32\Web

Question N° 12
Peut-on gérer plusieurs sites Web distinct sur IlS installé sur Windows 2000 pro
a. Qui
b. Non

Dossier 2 – UML (8Pts):

MonAuto est une entreprise qui fait le commerce, l'entretien et les réparations de voitures.
MonAuto désire un logiciel de gestion des réparations; elle dispose déjà d'un logiciel comptable. Les factures de réparations seront imprimées et gérées par le logiciel comptable.
Le logiciel de gestion des réparations devra communiquer avec le logiciel comptable pour lui transmettre les réparations à facturer.
Le logiciel de gestion des réparations est destiné en priorité au Chef d'atelier, il devra lui permettre de saisir les fiches de réparations et le travail effectué par les divers employés de l'atelier.
Pour effectuer leur travail, les mécaniciens et autres employés de l'atelier vont chercher des pièces de rechange au magasin. Lorsque le logiciel sera installé, les magasiniers ne fourniront des pièces que pour les véhicules pour lesquels une fiche de réparation est ouverte; ils saisiront directement les pièces fournies depuis un terminal installé au magasin.
Lorsqu'une réparation est terminée, le Chef d'atelier va essayer la voiture. Si tout est en ordre, il met la voiture sur le parc clientèle et bouclera la fiche de réparation informatisée. Les fiches de réparations bouclées par le Chef d'atelier devront pouvoir être importées par le comptable dans le logiciel comptable.
Une réparation est toujours relative à un véhicule, elle nécessite le travail d'un ou plusieurs employés selon leur qualification et, éventuellement, des pièces de rechange.
La facture est envoyée au propriétaire du véhicule ou à une compagnie d'assurance en cas d'accident; une compagnie d'assurance est un client pour le garage. En cas de réparation en garantie, aucune facture n'est envoyée.
Le modèle doit contenir les renseignements qui permettent de faire la facture, selon les règles suivantes :
     - Un véhicule vendu par MonAuto bénéficie d'une année de garantie à partir de la date de livraison.
     - Le montant de la facture s'obtient en additionnant :
          •    Le nombre d'heure de chacun des employés ayant participé à la réparation * taux horaire de l'employé en fonction de sa qualification (chef, mécanicien, manœuvre...)
          •    Prix unitaire * quantité de chaque pièces utilisées (4 bougies, 1 filtre à air...)
Pour bénéficier d'une réparation sous garantie, le client doit amener son véhicule à l'atelier avant l'expiration du délai de garantie. En fin de période de garantie, l'atelier peut être surchargé et le Chef d'atelier ne pourra pas toujours effectuer la réparation avant la date d'expiration. Pour résoudre ce dilemme et éviter toute réclamation, lorsqu'un client prend un rendez-vous pour effectuer une réparation en garantie le Chef d'atelier prépare une fiche de réparation "garantie" et y indique la date de la demande de rendez-vous du client, en plus des 2 dates de réception et restitution du véhicule pour la réparation; cette date de demande de rendez-vous sera utilisée comme critère de réparation en garantie.
Restrictions
Nous ne gérons pas l'historique des changements de propriétaires des voitures; chaque fois qu'une voiture change de propriétaire, un nouveau véhicule sera créé avec indication de la nouvelle immatriculation, du nouveau propriétaire et de la date de livraison s'il s'agit d'une vente de MonAuto.

Les véhicules qui appartiennent à MonAuto, le parc de voitures neuves et d'occasion, sont traités comme des véhicules sans propriétaire et sans indication d'immatriculation.
Les informations historiques non expressément demandées, comme les prix de pièces de rechanges, les taux horaire, les qualifications des employés, etc. ne doivent pas être traitées.
1. Concevez le diagramme de classe (5Pts).
2. Concevez le modèle de cas d'utilisation de la  gestion des réparations (3Pts)

Dossier 3 - JAVA (6Pts) :

On souhaite traiter des comptes bancaires. Un compte bancaire possède à tout moment une donnée entière, son solde. Il est caractérisé par ailleurs par un code donné sous forme de chaîne de caractères, et un titulaire qui est une personnephysique (nom,prenom). Ce solde peut être positif (compte créditeur) ou négatif (compte débiteur). Au départ, un compte bancaire a un solde nul, un code nul par défaut, et un titulaire inconnu. Il est aussi possible de créer un compte en précisant son solde initial, son titulaire et son code initial.
Utiliser son compte consiste à pouvoir y faire des dépôts et des retraits. Pour ces deux opérations, il faut connaître le montant de l'opération et vérifier que le code proposé est bien le code du compte.
L'utilisateur peut aussi consulter le solde de son compte.
1. Créer une classe PersonnePhysique, avec un constructeur , une méthode d'affichage et une méthode modification. (2Pts)
2. Créer une classe CompteBancaire prenant en compte la description précédente. Cette classe comprendra les méthodes suivantes : (2Pts)
     • Constructeurs
     • Une méthode de modification du code
     • Une méthode de consultation du solde
     • Une méthode de dépôt
     • Une méthode de retrait
3. La banque souhaite autoriser pour certains clients un découvert. Par défaut, ce découvert autorisé est nul. Une méthode decouvertAutorise permettra d'en spécifier la valeur. Un retrait est alors possible tant que le client ne dépasse pas ce découvert autorisé. Le cas échéant, le retrait est refusé. (2Pts)
     • Précisez le(s) attribut(s) à ajouter à la classe comptebancaire et modifiez le(s) constructeur(s).
     • Ecrivez la méthode decouvertautorise.
     • Modifiez la méthode de retrait.

Dossier 4 – Procédures stockées & Triggers ( 10Pts) :

Vous participez à la réalisation d’un logiciel permettant de gérer les comptes bancaires d’un particulier.
Dans un premier temps, l’utilisateur définit les différents comptes à gérer en déclarant pour chacun le numéro de compte, le nom de la banque,  …
L’utilisateur saisit ensuite chacune des opérations réalisées sur l’un de ces comptes. Une opération correspond à un débit (paiement par chèque de la facture de téléphone, retrait d’espèce à l’aide d’une carte bancaire, …) ou à un crédit (dépôt à la banque de chèque reçu par exemple).
Chaque fin de mois, l’utilisateur reçoit un relevé de compte ( un par compte bancaire). Il effectue alors le rapprochement entre les opérations qu’il a saisies et celles constatées par la banque :
     - pointage des opérations saisies apparaissant sur le relevé. Ce pointage consiste à mémoriser le fait qu’une opération a été constatée par la banque. L’opération est dite « pointée » et le numéro du relevé est mémorisé.
     - Ajout des opérations non saisies apparaissent sur le relevé (réception d’un virement correspondant au salaire mensuel par exemple). Ces opérations sont automatiquement pointées puisqu’elles ont été constatées par la banque.
Les opérations permettent de calculer le solde d’un compte, différence entre la somme des opérations de crédit et la somme des opérations de débit. En fait, chaque compte possède deux soldes :
     - le solde réel qui prend en considération toutes les opérations saisies par l’utilisateur, qu’elles aient été constatées ou non par la banque.
     - Le solde en banque qui ne prend en considération que les opérations constatées par la banque, c’est à dire ayant fait l’objet d’un pointage à partir d’un relevé.
Le calcul des soldes des comptes conduit à additionner un grand nombre d’opérations, et ce depuis la mise en service de l’application. Pour éviter ces calculs, il a été décidé de mémoriser les soldes réels et « en banque » dans la table Compte.
Dès lors se pose le problème de la cohérence entre les opérations et le solde des comptes. La solution adoptée est le recours à un ensemble de procédures stockées et de déclancheurs destinés à maintenir à jour les soldes dans la table COMPTE.

Schéma de la base de données :
     Banque (Bid, Bnom)
     Compte ( Cid, Cnuméro, Clibelle, CsoldeReel, CsoldeBanque, #Cbanque)
     Operation (Oid, Odate, Omantant, Osens, #Oreleve, #Ocompte)
     Releve (Rid, Rdate, #Rcompte)

Le MCD correspondant au schéma de la base de données est :
Examen Fin Formation - Théorique - 2007 - HTML - Réseaux - ADO.NET - UML - JAVA - Merise
Examen Fin Formation - Théorique - 2007

Remarques :
- CsoldeReel et CsoldeBanque représentent respectivement le solde réel et le sole en banque du compte.
- Osens est un caractère mémorisant la nature de l’opération (D : Débit, C : Crédit)
- Oreleve contient le numéro de relevé Rid ayant permis de pointer l’opération. Cet attribut contient la valeur NULL si l’opération n’a pas encore été pointée.

Rédiger l’ensemble des procédures stockées et des déclencheurs nécessaires à la gestion des informations calculées CsoldeReel et CsoldeBanque :
- PROCEDURE MAJSOLDEBANQUE (2Pts)
- PROCEDURE MAJSOLDEREEL (2Pts)
- TRIGGER INSERTION OPERATION (2Pts)
- TRIGGER MISE A JOUR OPERATION (2Pts)
- TRIGGER SUPPRESSION OPERATION (2Pts)


Dossier 5 – MERISE ( 8Pts) :

Le service de formation d'une entreprise souhaite gérer ses actions de formation. Afin d'adresser des convocations aux employés,  on enregistre les agents avec leur numéro,  leur nom,  prénom ainsi que l'établissement auquel ils appartiennent (l'entreprise est implantée dans différents lieux géographiques). De cet établissement on connaît le code,  le nom et l'adresse.
Un certain nombre de cours sont offerts aux employés qui peuvent s'y inscrire. Ces cours sont connus dans un catalogue,  où ils figurent avec un code et un intitulé. Tous les cours sont animés par des employés internes à
l'entreprise. On s’assurera des cours que les personnes affectées à l'animation ne sont pas sujettes à une inscription à ce même cours. Personne dans cette entreprise n'ayant le don d'ubiquité.
On désire établir des convocations aussi bien pour le personnel inscrit que pour le personnel enseignant. A ce sujet,  il faut savoir que tout cours ( initiation informatique,  anglais débutant,  espagnol perfectionnement, ...) est planifié plusieurs fois par an et que l'on parle plus volontiers de session. Une session est repérée par un numéro et a un intitulé (printemps, été, ...). La planification consistera à décider quels cours seront offerts dans une session, et pour chacun d’entre eux quelle en sera la date et la durée, puis de les inscrire au catalogue. Les inscriptions ou animations ou convocations se font par référence aux cours et aux sessions.
Lors de la convocations on fait savoir la liste des ouvrages (dont on donne le numéro, la référence et l'intitulé) qu’il est conseillé de consulter pour un cours donné.

1- Construire le modèle conceptuel de données. (4Pts)
2- En déduire :
     a- Le modèle logique de données (2Pts)
     b- Le modèle physique de données (2Pts)

Examen de passage - Théorique - 2006 - Réseaux - Algorithme - Merise - UML - SQL


Examen de passage - 2006 - Épreuve Théorique - TDI - TSDI

Questions de cours Algorithme - Réseaux (9pts)

a. Une citation est fausse : (1pt)
    · Un algorithme est une suite d’étapes ordonnées.
    · Un algorithme est une solution d’un problème donnée.
    · Un algorithme doit être écrit sous langage de programmation
b. Une fonction : (1pt)
    · Retourne une seule valeur.
    · Ne retourne aucune valeur.
    · Retourne plusieurs valeurs de même type.
    · Retourne plusieurs valeurs de types différents.
c. Présenter adéquatement la structure des supports physiques du câblage suivant :
    · Le câble coaxial (0.5pt)
    · La paire torsadée (0.5pt)
    · La fibre optique (0.5pt)
d. Quelles sont les caractéristiques d’un réseau local (1pt)
e. Donner la différence entre les composantes réseaux suivantes : Répéteurs, Routeur, Firewall (1.5pt) / (0.5pt par question)
f. Quel est l’intérêt d’un sous adressage ? (0.5pt)
g. On veut créer 6 sous réseaux pour une organisation qui dispose d’une adresse NIC Internet 130.001.000.000.
    a) À quelle classe appartient cette adresse ? (0.5pt)
    b) Donnez le sous adressage ainsi que le masque pour chaque sous réseau (1pt).
    c) Donnez la plage d’adressage des postes pour chaque sous réseau (1pt)

Dossier 1 : Merise (9pts)

Pour les besoins de la gestion d'un aéroport on souhaite mémoriser dans une base de données les informations nécessaires à la description des faits suivants:
· chaque avion géré est identifié par un numéro d'immatriculation. Il est la propriété soit d'une société, soit d'un particulier: dans les deux cas on doit connaître le nom, l'adresse et le numéro de téléphone du propriétaire, ainsi que la date d'achat de l'avion;
· chaque avion est d'un certain type, celui-ci étant caractérisé par son nom, le nom du constructeur, la puissance du moteur, la capacité en nombre de places;
· la maintenance des avions est assurée par les mécaniciens de l'aéroport. Par sécurité, les interventions sont toujours effectuées par deux mécaniciens (l'un répare, l'autre vérifie). Pour toute intervention effectuée, on conserve le numéro de l’intervention, l'objet de l'intervention, la date et la durée;
· pour chaque mécanicien on connaît son nom, son adresse, son numéro de téléphone et les types d'avion sur lesquels il est habilité à intervenir;
· un certain nombre de pilotes sont enregistrés auprès de l'aéroport. Pour chacun d’eux on connaît son nom, son adresse, son numéro de téléphone, son numéro de brevet de pilote et les types d'avion qu'il est habilité à piloter avec le nombre total de vols qu'il a effectué sur chacun de ces types.
Travail à faire :
1. Etablir le dictionnaire de données (1.5pt)
2. Donner le Modèle Conceptuel des Données (5pts)
3. Traduire le MCD trouvé en Modèle relationnel des données (2.5pts)

Dossier 3 : UML (13pts)

L’université ESU désire automatiser son système d’inscription. Le chef du service des inscriptions établit le programme des cours pour un semestre.
Un cours peut être offert plusieurs fois. Les étudiants doivent sélectionner 4 cours primaires et 2 cours secondaires. Dès qu’un étudiant s’est inscrit pour un semestre, le système de facturation est notifié.
Les étudiants peuvent utiliser le système pour modifier leurs choix pendant une certaine période de temps après leur inscription. Les enseignants utilisent le système pour consulter leur emploi du temps ( tableau d’activités en fonction des cours qui tournent).
Les utilisateurs du système d’inscription reçoivent des mots de passe qui sont nécessaire à la procédure d’identification.

Travail à faire :
1 - Définir les acteurs et Identifier leurs besoins. (1 pt )
2 - Donner le diagramme des cas d'utilisation de ce système. (2pts)
3 - Etablir les relations entre les différents cas d’utilisation. (1 pt )
4 - Décrire par un diagramme de séquence le besoin de l’étudiant. (2pts)
5 - Décrire par un diagramme de collaboration le besoin du chef de service des inscriptions. (2pts)
6- Donner le diagramme de classe d’analyse. (3pts)
7 - Décrire par un diagramme d’état le comportement de l’objet Cours dans ce système. (2pts)

Dossier 4 : SQL (5pts)

Pour gérer des rencontres des tournois de tennis d’une saison donnée, on dispose de la base de données suivantes :
    JOUEUR (NoJoueur, NomJ, NoEq#, CodePays#)
    EQUIPE (NoEq, NomE)
    TOURNOI (NoTour, NomT, Date, Coef, Dotation, CodePays#)
    PAYS (CodePays, NomP, Monnaie)
    JOUE_J (NoJoueur#, NoTour#, Score_J)
    JOUE_E (NoEq#, NoTour#, Score_E)

NB : Un joueur peut jouer individuellement ou en équipe.

Travail à faire :
1) Ecrire une requête qui permet d’afficher la liste de tous les joueurs.(1pt)
2) Ecrire une requête qui permet d’afficher la liste de tournois qui vont se dérouler entre la date du 01/06/2006 et 31/07/2006. (1pts)
3) Ecrire une requête qui permet de renvoyer le nombre des équipes qui ont participé au tournoi numéro 6. (1pts)
4) Ecrire une requête qui permet de donner les noms des tournois qui se sont déroulés au Maroc. (1pts)
5) Écrire une requête qui permet d’afficher les noms des joueurs qui ont participé individuellement aux différents tournois du Maroc. (1pts)

Dossier 5 : Algorithme (4pts)

Ecrire un Algorithme qui demande à l’utilisateur de saisir sa Date de Naissance (jour, mois et année); puis l’Algorithme affiche le jour de sa naissance.

Remarque :
- Le nombre de jours des mois de l’année (avec simplification) sont indiqués dans le tableau suivant:

Examen de passage - Théorique - 2006 - Réseaux - Algorithme - Merise - UML - SQL
Examen de passage - Théorique - 2006 - Réseaux - Algorithme - Merise - UML - SQL


            Le 31/12/2006 est un Dimanche

Retrouvez-nous sur Facebook
×Facebook Les Filières Informatiques