Showing posts with label java. Show all posts
Showing posts with label java. 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.

Examens de Passage - 2010 - Pratique - V7 - V8 - V9


Examens de Passage - 2010 - Pratique - Variante 7

PARTIE I :  PROGRAMMATION STRUCTURÉE EN C OU C++

1. Ecrire  un programme qui permet d’insérer une valeur X dans un tableau T, supposé trié, de façon à respecter l’ordre des éléments de T. le tableau T contient N éléments et sera dimensionné à N+1 (pour permettre de ranger X). (1 Pt)
     Si N=10 et T =  17 17 21 23 24 26 27 30 30 38
     Si X =25  on doit obtenir : T =  17 17 21 23 24 25 26 27 30 30 38
2. Écrire un programme qui lit un entier X et un tableau A du type int au clavier et élimine toutes les occurrences de X dans A en tassant les éléments restants (décalage). (1 Pt)
3. Écrire un programme permettant de calculer le Poids Idéal (PI) obtenue par la formule de Lorentz (1 Pt)
     Pour les femmes : PI = t - 100 - [ ( t - 150 ) / 2 ]
     Pour les hommes : PI = t - 100 - [ ( t - 150 ) / 4 ]
     t = taille en centimètre
4. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)



Examens de Passage - 2010 - Pratique - V7 - V8 - V9
Examens de Passage - 2010 - Pratique - V7 - V8 - V9

PARTIE II :  LOGICIELS D’APPLICATION

On veut développer une application qui gère les réparations  des  clients. Pour assurer cette gestion, le  modèle relationnel suivant a été établi :
     CLIENT (NumCli, NomCli, PrenomCli, AdresseCli, VilleCli)
     TECHNICIEN (NumTech, NomTech, AdresseTech, DateEmbaucheTech, VilleTech)
     REPARATION (NumRept, MontantRep, DateRépot, DateReprise, NumCli, NumTech)

1. Créez la base de données sous MS Access  (1 Pt)              
     - Définir la clé primaire pour chaque table
     - Définir les clés étrangères
     - Définir les relations entre les tables
     - Saisir un jeu  d’enregistrements significatif pour chaque table.
2. Créer les requêtes suivantes :  (1 Pt)     
     - Afficher la liste de tous les clients
     - Afficher les clients dont la deuxième lettre du nom est la lettre B
     - Afficher des clients ayant demandé plus que 3 réparations
     - Afficher les   techniciens embauchés entre 2001 et 2009
3. Créer un formulaire pour mettre à jour la table REPARATION (1 Pt)

PARTIE III :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

Un centre de formation professionnelle souhaite mettre en place système de gestion de parrainage des stagiaires.
Soit la class Formateur qui comporte les attributs suivants :
     codeIdentifiant int
     nom   String
     prenom  String
     sexe   char (‘M’,’F’)
     age   int
     spacialité  String

1) Codage de la class Formateur : (1.5 Pts)
     - Ecrire la class Formateur.
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Formateur.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Formateur ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Formateur.
     - Ajouter une méthode afficher () qui afficher toutes les informations d’un formateur.
2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un formateur.  (0.5 Pt)
Soit la classe Stagiaire qui modélise un stagiaire et qui comporte les attributs suivants :
     codeStagiaire  int
     nom    String
     prenom  String
     niveau   int

3) Codage de la class Stagiaire : (1 Pt)
     - Ecrire la class Stagiaire
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Stagiaire.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeStagiaire de la class Stagiaire ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Stagiaire.
Soit la classe Parrain qui reprend tous les attributs de la classe Formateur et qui y ajoute une collection d’objets Stagiaire (liste des stagiaires parrainés par le formateur identifiés par leurs codeStatgiaire).
4) Codage de la class Parrain : (1 Pt)
     - Ecrire la classe Parrain.
     - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain.
5) Ajouter une méthode ajouterStagiaire() qui ajoute un Stagiaire à la collection des stagiaires parrainés par le formateur. (1 Pt)
6) Ajouter une méthode supprimerStagiaire() qui supprime un stagiaire de la collection des stagiaires parrainés par le formateur. (1 Pt)

PARTIE IV :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des stagiaires.
1) Créer un formulaire permettant de mettre à jour les informations relatives à un formateur (1 Pt)
2) Créer un formulaire permettant de mettre à jour les informations relatives à un stagiaire (1 Pt)
3) Créer un formulaire qui permet :
     a. Ajouter un stagiaire à la collection des stagiaires parrainés par un formateur. (0.5 Pt)
     b. Supprimer un stagiaire de la collection des stagiaires parrainés par un formateur. (0.5 Pt)
     c. Afficher la collection des stagiaires parrainés par un formateur donné. (0.5 Pt)
     d. Afficher le nombre de stagiaires parrainés par un formateur donné. (0.5 Pt)
4) Nous souhaitons enregistrer l’ensemble des stagiaires parrainés par un formateur dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt)
5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt)
6) Protéger l’accès à cette application par : (0.5 Pt)
     Nom d’utilisateur : ADMIN
     Mot de passe : t-d-info

Examens de Passage - 2010 - Pratique - Variante 8

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Écrire un programme permettant de calculer le Poids Idéal (PI) obtenue par la formule de Lorentz (1 Pt)
     Pour les femmes : PI = t - 100 - [ ( t - 150 ) / 2 ]
     Pour les hommes : PI = t - 100 - [ ( t - 150 ) / 4 ]
     t = taille en centimètre
2. Ecrire  un programme qui permet d’insérer une valeur X dans un tableau T, supposé trié, de façon à respecter l’ordre des éléments de T. le tableau T contient N éléments et sera dimensionné à N+1 (pour permettre de ranger X). (1 Pt)
    Si N=10 et T =  17 17 21 23 24 26 27 30 30 38
    Si X =25  on doit obtenir : 17 17 21 23 24 25 26 27 30 30 38
3. Écrire un programme de recherche de la valeur maximale d'une matrice de réels de taille n x m. (1 Pt)
4. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)



Examens de Passage - 2010 - Pratique - V7 - V8 - V9
Examens de Passage - 2010 - Pratique - V7 - V8 - V9

PARTIE II :  LOGICIELS D’APPLICATION

On vous demande de développer une application sous MS Access  pour gérer  les  réservations des clients :
    Client (numCli, nomCli, AdresseCli, VilleCli)
    Chambre (numChambre, prixChambre, typeChambre)
    Réservation (numRes, dateDébut, dateFin, numCli#, NumChambre #)

NB : numCli# et NumChambre # sont deux clés étrangères
1.  Créez la base de données sous MS Access  (1 Pt) 
     - Définir la clé primaire pour chaque table
     - Définir les clés étrangères 
     - Définir les relations entre les tables
     - Saisir un jeu  d’enregistrements significatif pour chaque table.  
2. Créer les requêtes suivantes :   (1 Pt)
     - Afficher la liste des clients de Rabats 
     - Afficher le prix moyen de toutes les chambres
     - Afficher le prix moyen par type Chambre 
     - Afficher les réservations de l’année 2009   
3. Créer un formulaire pour mettre à jour la table Réservation (1 Pt)

PARTIE III :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

La faculté des sciences et techniques de Settat souhaitent mettre en place système de gestion de parrainage des étudiants.
Soit la class Enseignant qui comporte les attributs suivants :
    codeIdentifiant int
    nom   String
    prenom  String
    sexe   char (‘m’,’f’)
    age   int
    affectation  String

1) Codage de la class Enseignant : (1.5 Pts)
     - Ecrire la class Enseignant.
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Enseignant.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Enseignant ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Enseignant.
     - Ajouter une méthode afficher () qui afficher toutes les informations d’un Enseignant.
2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un Enseignant.  (0.5 Pt)
Soit la classe Etudiantqui modélise un Etudiant et qui comporte les attributs suivants :
    codeÉtudiant  int
    nom    String
    prenom  String
    niveau   int

3) Codage de la class Etudiant: (1 Pt)
     - Ecrire la class Etudiant
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Étudiant.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeEtudiant de la class Etudiant; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Étudiant.
Soit la classe Parrain qui reprend tous les attributs de la classe Enseignant et qui y ajoute une collection d’objets Etudiant(liste des étudiants parrainés par l’Enseignant identifiés par leurs codeEtudiant).
4) Codage de la class Parrain : (1 Pt)
     - Ecrire la classe Parrain.
     - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain.
5) Ajouter une méthode ajouterÉtudiant() qui ajoute un Etudiant à la collection des étudiants parrainés par un enseignant. (1 Pt)
6) Ajouter une méthode supprimerÉtudiant() qui supprime un Etudiant de la collection des Etudiants parrainés par un enseignant. (1 Pt)

PARTIE IV :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des étudiants.
1) Créer un formulaire permettant de mettre à jour les informations relatives à un Enseignant (1 Pt)
2) Créer un formulaire permettant de mettre à jour les informations relatives à un Etudiant (1 Pt)
3) Créer un formulaire qui permet :
    a. Ajouter un Etudiant à la collection des étudiants parrainés par un enseignant. (0.5 Pt)
    b. Supprimer un Etudiant de la collection des étudiants parrainés par un Enseignant. (0.5 Pt)
    c. Afficher la collection des étudiants parrainés par un Enseignant donné. (0.5 Pt)
    d. Afficher le nombre d’ étudiants parrainés par un Enseignant donné. (0.5 Pt)
4) Nous souhaitons enregistrer l’ensemble des étudiants parrainés par un Enseignant dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt)
5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt)
6) Protéger l’accès à cette application par : (0.5 Pt)
    Nom d’utilisateur : ADMIN
    Mot de passe : t-d-info

Examens de Passage - 2010 - Pratique - Variante 9

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Écrire un programme de recherche de la valeur maximale d'une matrice de réels de taille n x m. (1 Pt)
2. Faire un programme pour le calcul et l’affichage suivant : (2 Pts)



Examens de Passage - 2010 - Pratique - V7 - V8 - V9
Examens de Passage - 2010 - Pratique - V7 - V8 - V9


3. Un nombre parfait est un entier positif supérieur a 1, égal à la somme de ses diviseurs
    NB : on compte 1 comme diviseur, mais on ne compte pas comme diviseur le nombre lui-même.
    Exemple :
    6 est un nombre parfait puisque : 6 = 3 + 2 + 1.
1. Ecrire une fonction qui prend pour argument un nombre entier n et retourne Vrai si n est parfait ou Faux sinon. (1 Pt)
2. Ecrire un programme permettant de lister les 500 premiers nombres parfaits (1 Pt)

PARTIE II :  LOGICIELS D’APPLICATION

Soit le modèle relationnel suivant :
    MEDECIN (Matricule, nom)
    PATIENT (NumPat, Nom)
    MEDICAMENTS (Code, Libelle, prix)
    CONSULTATION (NumConsult, date, prix, Matricule, N°_SS)
    PRESCRIT (Code, NumPat)

(Pour simplifier l’analyse la base suppose qu’un patient peut voir un médecin une seule fois pour une date donnée.)
1. Créez la base de données sous MS Access  (1 Pt)              
     - Définir la clé primaire pour chaque table
     - Définir les clés étrangères
     - Définir les relations entre les tables
     - Saisir un jeu  d’enregistrements significatif pour chaque table.
2. Créer les requêtes suivantes :  (1 Pt)
     - Afficher la liste des médecins dont la première lettre est saisie au clavier
     - Déterminer le nombre de consultations pour chaque patient
     - Afficher les caractéristiques de toutes les consultations effectuées entre deux dates saisies au clavier (les champs à afficher sont : N°consultation, date, prix, nom du patient et le nom du médecin
     - Afficher le nombre de consultations effectuées par chaque médecin et trier le résultat par ordre décroissant.
3. Créer un formulaire pour mettre à jour la table CONSULTATION (1 Pt)

PARTIE III :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

Une école privée souhaite mettre en place un système de gestion de parrainage des élèves.
Soit la class Professeur qui comporte les attributs suivants :
    codeIdentifiant int
    nom   String
    prenom  String
    sexe   char (‘M’,’F’)
    age   int
    affectation  String

1) Codage de la class Professeur : (1.5 Pts)
     - Ecrire la class Professeur.
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Professeur.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeIdentifiant de la class Professeur ; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Professeur.
     - Ajouter une méthode afficher () qui afficher toutes les informations d’un Professeur.
2) Créer une exception nommée erreurAge qui se déclenche lors de la saisie d’un âge négatif d’un Professeur.  (0.5 Pt)
Soit la classe Elève qui modélise un Elève et qui comporte les attributs suivants :
    codeEleve  int
    nom    String
    prenom  String
    niveau   int

3) Codage de la class Elève: (1 Pt)
     - Ecrire la class Elève
     - Ajouter un compteur qui permet de compter le nombre des objets créés de la class Elève.
     - Ajouter un constructeur sans argument qui initialise l’attribut codeEleve de la classe Elève; le code doit avoir la valeur du compteur.
     - Ajouter un constructeur qui initialise tous les attributs de la classe Elève.
Soit la classe Parrain qui reprend tous les attributs de la classe Professeur et qui y ajoute une collection d’objets Eleve (liste des Elèves parrainés par le Professeur identifiés par leurs codeEleve).
4) Codage de la class Parrain : (1 Pt)
     - Ecrire la classe Parrain.
     - Ajouter une méthode afficher() qui affiche toutes les informations sur un parrain.
5) Ajouter une méthode ajouterEleve() qui ajoute un Elève à la collection des Elèves parrainés par un Professeur. (1 Pt)
6) Ajouter une méthode supprimerEleve() qui supprime un Elève de la collection des Elèves parrainés par un Professeur. (1 Pt)

PARTIE IV :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, On souhaite développer quelques fonctionnalités de l’application de gestion de parrainage des Elèves.
1) Créer un formulaire permettant de mettre à jour les informations relatives à un Professeur (1 Pt)
2) Créer un formulaire permettant de mettre à jour les informations relatives à un Elève (1 Pt)
3) Créer un formulaire qui permet :
    a. Ajouter un Elève à la collection des Elèves parrainés par un Professeur. (0.5 Pt)
    b. Supprimer un Elève de la collection des Elèves parrainés par un Professeur. (0.5 Pt)
    c. Afficher la collection des Elèves parrainés par un Professeur donné. (0.5 Pt)
    d. Afficher le nombre d’élèves parrainés par un Professeur donné. (0.5 Pt)
4) Nous souhaitons enregistrer l’ensemble des Elèves parrainés par un Professeur dans un ficher texte. Ecrire le programme permettant de réaliser cette fonctionnalité. (1 Pt)
5) Proposer une animation de démarrage de votre application avec votre nom de famille (0.5 Pt)
6) Protéger l’accès à cette application par : (0.5 Pt)
    Nom d’utilisateur : ADMIN
    Mot de passe : t-d-info

Télécharger Les Examens de Passage - 2010 - Pratique - V7 - V8 - V9 :
en format .pdf sur le lien suivant :

Examens de Passage - 2010 - Pratique - V7 - V8 - V9


Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6


Examens de Passage - Pratique 2010 - Jour 2 - Variante n° 4

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Ecrire un programme qui permet de comparer et de calculer la somme de deux nombres. Pour ce faire ce menu doit être affiché. (1 Pt)
Entrez le nombre correspondant à votre choix
     1. Comparer deux entiers
     2. Somme de deux entiers
     3. Quitter
2. On modélise un nombre entier de la base octale par un tableau d’entiers de dimension 10. Chaque élément du tableau contient un chiffre de 0 à 7. Le chiffre du poids faible occupera la case d’indice 9 du tableau. (2 Pts)
     Exemple : 3406
     0        0        0        0        0        0        3        4        0        6
Le nombre est saisi en entrant successivement les chiffres du poids plus faible au poids plus fort, on marque la fin par un chiffre qui n’est pas compris entre 0 et 7.
3. Soit un tableau de 100 valeurs ordonnées de manière croissante. Ecrire un programme permettant  de créer deux nouveaux tableaux ordonnés de manière croissante, contenant l’un les valeurs paires, l’autre les valeurs impaires. (2 Pts)
Exemple :
     Tableau initial
     2        4        10        13        15        21        28        55        44        77
     Tableau des valeurs paires
     2        4        10        28        44
     Tableau des valeurs impaires
     13        15        21        55        77

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

On désire programmer une application de gestion de petit commerce. Pour cela, on va écrire une classe Produit et une classe Magasin.
Dans notre commerce, chaque produit est caractérisé par son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description.
A la création du produit, on fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son fournies en argument au constructeur de la classe. Par défaut, la description du produit est « Pas de description », et la quantité de produits en stock est nulle.
La classe Produit dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du produit, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs.
     Ecrivez la classe Produit (1.5 Pts)
Un magasin se caractérise par son solde et par son stock de produits. Le stock de produit est représenté par un tableau ou un vecteur d'objets « Produit ».
Avant de pouvoir acheter ou vendre un produit, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin doit disposer d'une méthode AjouterProduit
L'indice de la case du tableau (ou du vecteur) dans laquelle on a stocké le produit devient alors la référence de ce produit. Pour acheter ou vendre ce produit, on utilise alors la référence comme argument des méthodes:
     acheterProduit(int referenceProduit,int nombreExemplaires)
     vendreProduit(int referenceProduit,int nombreExemplaires)
La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin.
     Ecrivez la classe Magasin. Testez-la. (1.5 Pts)
- Différents types de produits
Jusque là, les produits disposent d'une description qui est une simple chaine de caractère. Cela Peut être insuffisant dans certains cas.
     Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Produit, mais qui dispose d'un attribut auteur et d'un attribut éditeur.
De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes.
     Ecrivez la classe Livre qui hérite de la classe Produit. Certaines méthodes doivent être surchargées (c'est-à-dire réécrites) (1 Pt)
     Ecrivez la classe Cd qui hérite de la classe Produit. (1 Pt)
Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous classe de Produit, les objets de type Livre sont également de type Produit, donc le tableau (ou le vecteur) de produits peut également contenir des livres ou des cds.
C'est à la création des objets que les choses changent. En plus de la méthode ajouterProduit, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd.
     Modifier la classe Magasin pour tenir compte des nouveaux objets. (1.5 Pts)
Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin, d'une méthode d'interaction permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un produit standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un produit déjà existant, d'afficher un bilan général.
     Ecrivez la méthode interaction de la classe Magasin (1.5 Pts)
- Recherche d’un produit
Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description d'un produit existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas un moyen très pratique d'aller chercher les produits, surtout si il y en a un très grand nombre.
Nous allons écrire les deux méthodes suivantes :
     La méthode public Produit rechercherProduit(String nom) qui renvoie un objet Produit dont le nom est spécifié en argument.
     la méthode public Produit rechercherProduitParMot(String mot) qui renvoie un objet Produit dont la description contient le mot spécifié en argument.
Pour écrire ces méthodes, nous allons avoir besoin d'un outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, String est une classe à part entière qui a ses attributs et ses méthodes.
     Ecrivez la méthode rechercherProduit ( 2Pts)

PARTIE III :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Nous allons maintenant nous intéresser à la création d’interfaces qui vont nous permettre d’interagir et de communiquer avec notre application en mode graphique.
1. Créer une interface permettant la mise à jour d’un produit.
     a. Ajout d’un produit (0.5 Pt)
     b. Suppression d’un produit (0.5 Pt)
     c. Modification d’un produit (0.5 Pt)
     d. Rechercher un produit (0.5 Pt)
     e. Afficher la liste des produits (0.5 Pt)
     f. Afficher le nombre de produits dans le stock (0.5 Pt)
2. Construisez une interface permettant de créer un magasin et de lui affecter un stock de produit. Lors de l’affectation, le système propose à l’utilisateur les différentes possibilités (produit standard, livre, cd) (1 Pt)
3. Créer une interface permettant de rechercher un produit (1 Pt)

Examens de Passage - Pratique 2010 - Jour 2 - Variante n° 5

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Dans un magasin les caissières saisissent pour chaque produit : 
     • Le prix unitaire
     • La quantité achetée
     • La catégorie du produit
Il y a une taxe pour chaque catégorie du produit


Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6
Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6


     Ecrire un programme qui permet d’afficher le prix à payer pour un client  (2 Pts)
2. Ecrire un programme qui permet d’afficher tous les nombres abondants inférieurs à 50. Un nombre abondant est un nombre entier naturel n qui est strictement inférieur à la somme de ses diviseurs stricts. (2 Pts)
     Exemple : 
     12 est abondant car 1+2+3+4+6>12
3. Un palindrome est une chaîne de caractères qui se  lit de gauche a droit ou de droit a gauche et donne la même résultat.
     Exemple : « radar »,  « Laval ».
     Ecrire un programme  qui permet de tester si un mot est un palindrome ou non. (1 Pt)

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

Nous allons développer une application pour gérer les différents types de produits dans un magasin. Pour cela, on va écrire une classe Article et une classe Magasin.
Dans notre commerce, chaque Article est caractérisé par son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description.
A la création d’un article, on fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son fournies en argument au constructeur de la classe. Par défaut, la description de l’article est « Pas de description », et la quantité de Articles en stock est nulle.
La classe Article dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du Article, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs.
     Ecrivez la classe Article (1.5 Pts)
Un magasin se caractérise par son solde et par son stock de Articles. Le stock de Article est représenté par un tableau ou un vecteur d'objets « Article ».
Avant de pouvoir acheter ou vendre un Article, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin doit disposer d'une méthode AjouterArticle
L'indice de la case du tableau (ou du vecteur) dans laquelle on a stocké le Article devient alors la référence de ce Article. Pour acheter ou vendre ce Article, on utilise alors la référence comme argument des méthodes:
     acheterArticle(int referenceArticle,int nombreExemplaires)
     vendreArticle(int referenceArticle,int nombreExemplaires)
La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin.
     Ecrivez la classe Magasin. Testez-la. (1.5 Pts)
- Différents types de Articles
Jusque là, les Articles disposent d'une description qui est une simple chaine de caractère. Cela Peut être insuffisant dans certains cas.
     Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Article, mais qui dispose d'un attribut auteur et d'un attribut éditeur.
De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes.
     Ecrivez la classe Livre qui hérite de la classe Article. Certaines méthodes doivent être surchargées (c'est-à-dire réécrites) (1 Pt)
     Ecrivez la classe Cd qui hérite de la classe Article. (1 Pt)
Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous classe de Article, les objets de type Livre sont également de type Article, donc le tableau (ou le vecteur) de Articles peut également contenir des livres ou des cds.
C'est à la création des objets que les choses changent. En plus de la méthode ajouterArticle, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd.
     Modifier la classe Magasin pour tenir compte des nouveaux objets. (1.5 Pts)
Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin, d'une méthode d'interaction permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un Article standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un Article déjà existant, d'afficher un bilan général.
     Ecrivez la méthode interaction de la classe Magasin (1.5 Pts)
     Recherche d’un Article
Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description d'un Article existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas un moyen très pratique d'aller chercher les Articles, surtout si il y en a un très grand nombre.
Nous allons écrire les deux méthodes suivantes :
     La méthode public Article rechercherArticle(String nom) qui renvoie un objet Article dont le nom est spécifié en argument.
     la méthode public Article rechercherArticleParMot(String mot) qui renvoie un objet Article dont la description contient le mot spécifié en argument.
Pour écrire ces méthodes, nous allons avoir besoin d'un outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, String est une classe à part entière qui a ses attributs et ses méthodes.
     Ecrivez la méthode rechercherArticle ( 2Pts)

PARTIE III :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Nous allons maintenant nous intéresser à la création d’interfaces qui vont nous permettre d’interagir et de communiquer avec notre application en mode graphique.
1. Créer une interface permettant la mise à jour d’un Article.
     a. Ajout d’un Article (0.5 Pt)
     b. Suppression d’un Article (0.5 Pt)
     c. Modification d’un Article (0.5 Pt)
     d. Rechercher un Article (0.5 Pt)
     e. Afficher la liste des Articles (0.5 Pt)
     f. Afficher le nombre de produits dans le stock (0.5 Pt)
2. Construisez une interface permettant de créer un magasin et de lui affecter un stock de Article. Lors de l’affectation, le système propose à l’utilisateur les différentes possibilités (Article standard, livre, cd) (1 Pt)
3. Créer une interface permettant de rechercher un Article (1 Pt)

Examens de Passage - Pratique 2010 - Jour 2 - Variante n° 6

PARTIE I :  PROGRAMMATION STRUCTURÉE EN C OU C++

1. Un palindrome est une chaîne de caractères qui se  lit de gauche a droit ou de droit a gauche et donne la même résultat.
     Exemple : « radar »,  « Laval ».
     Ecrire un programme  qui permet de tester si un mot est un palindrome ou non. (1 Pt)
2. Ecrire un programme permettant de modéliser un nombre entier binaire par un tableau d’entiers de dimension 10. Chaque élément du tableau contient un bit 0 ou 1. Le bit du poids faible occupera la case d’indice 9 du tableau.
     Exemple : 10010
     0      0      0      0      0      1      0      0      1      0
Le nombre est saisi en entrant successivement les bits du poids plus faible au poids plus fort, on marque la fin par un chiffre différent de 0 et 1. (2 Pts)
3. Ecrire un programme qui permet d’afficher tous les nombres abondants inférieurs à 50. Un nombre abondant est un nombre entier naturel n qui est strictement inférieur à la somme de ses diviseurs stricts. (2 Pts)
     Exemple : 
     12 est abondant car 1+2+3+4+6>12

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

Mr. Alami, propriétaire d’un petit commerce souhaite mettre en place un système pour la gestion de son magasin afin de mieux contrôler les entrées/sorties et le stock.
     Pour cela, on va écrire une classe Article et une classe Magasin.
Dans notre commerce, chaque Article est caractérisé par son nom, son prix d'achat, son prix de vente, le nombre d'exemplaires en stock, et sa description.
A la création d’un article, on fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son fournies en argument au constructeur de la classe. Par défaut, la description de l’article est « Pas de description », et la quantité de Articles en stock est nulle.
La classe Article dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la description du Article, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock, ainsi que d'obtenir les valeurs des différents attributs.
     Ecrivez la classe Article (1.5 Pts)
Un magasin se caractérise par son solde et par son stock de Articles. Le stock de Article est représenté par un tableau ou un vecteur d'objets « Article ».
Avant de pouvoir acheter ou vendre un Article, il faut l'avoir ajouté dans le stock. Pour cela, la classe Magasin doit disposer d'une méthode AjouterArticle
L'indice de la case du tableau (ou du vecteur) dans laquelle on a stocké le Article devient alors la référence de ce Article. Pour acheter ou vendre ce Article, on utilise alors la référence comme argument des méthodes:
     acheterArticle(int referenceArticle,int nombreExemplaires)
     vendreArticle(int referenceArticle,int nombreExemplaires)
La classe Magasin dispose également des méthodes habituelles d'accès à ses attributs, et d'une méthode Bilan qui permet d'afficher un bilan du magasin.
     Ecrivez la classe Magasin. Testez-la. (1.5 Pts)
- Différents types de Articles
Jusque là, les Articles disposent d'une description qui est une simple chaine de caractère. Cela Peut être insuffisant dans certains cas.
Par exemple, on aimerait avoir une classe Livre qui ait le même comportement que la classe Article, mais qui dispose d'un attribut auteur et d'un attribut éditeur.
De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de ses pistes.
     Ecrivez la classe Livre qui hérite de la classe Article. Certaines méthodes doivent être surchargées (c'est-à-dire réécrites) (1 Pt)
     Ecrivez la classe Cd qui hérite de la classe Article. (1 Pt)
Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En effet, Livre étant une sous classe de Article, les objets de type Livre sont également de type Article, donc le tableau (ou le vecteur) de Articles peut également contenir des livres ou des cds.
C'est à la création des objets que les choses changent. En plus de la méthode ajouterArticle, la classe Magasin doit également contenir une méthode ajouterLivre et une méthode ajouterCd.
     Modifier la classe Magasin pour tenir compte des nouveaux objets. (1.5 Pts)
Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin, d'une méthode d'interaction permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un Article standard, d'acheter, de vendre, d'obtenir ou d'éditer la description d'un Article déjà existant, d'afficher un bilan général.
     Ecrivez la méthode interaction de la classe Magasin (1.5 Pts)
     Recherche d’un Article
Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description d'un Article existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas un moyen très pratique d'aller chercher les Articles, surtout si il y en a un très grand nombre.
Nous allons écrire les deux méthodes suivantes :
     La méthode public Article rechercherArticle(String nom) qui renvoie un objet Article dont le nom est spécifié en argument.
     la méthode public Article rechercherArticleParMot(String mot) qui renvoie un objet Article dont la description contient le mot spécifié en argument.
Pour écrire ces méthodes, nous allons avoir besoin d'un outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, String est une classe à part entière qui a ses attributs et ses méthodes.
     Ecrivez la méthode rechercherArticle ( 2Pts)

PARTIE III :  PROGRAMMATION ÉVÉNEMENTIELLE EN VB.NET, C# OU JAVA

Nous allons maintenant nous intéresser à la création d’interfaces qui vont nous permettre d’interagir et de communiquer avec notre application en mode graphique.
1. Créer une interface permettant la mise à jour d’un Article.
     a. Ajout d’un Article (0.5 Pt)
     b. Suppression d’un Article (0.5 Pt)
     c. Modification d’un Article (0.5 Pt)    
     d. Rechercher un Article (0.5 Pt)
     e. Afficher la liste des Articles (0.5 Pt)
     f. Afficher le nombre de produits dans le stock (0.5 Pt)
2. Construisez une interface permettant de créer un magasin et de lui affecter un stock de Article. Lors de l’affectation, le système propose à l’utilisateur les différentes possibilités (Article standard, livre, cd) (1 Pt)
3. Créer une interface permettant de rechercher un Article (1 Pt)

Télécharger Les Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6 :
en format .pdf sur le lien suivant :

Examens de Passage - Pratique 2010 - Jour 2 - V4 - V5 - V6


Examens de Passage - Pratique - TDI - 2010 - Jour 1 - V1 - V2 - V3


Examens de Passage - Pratique - TDI - 2010 - Jour 1 - Variante 1


PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++


1. La  Direction d’un supermarché  a décidé d’accorder des réductions à ses clients selon le montant d’achat      
 La réduction est calculée selon les règles suivantes :
      - 20% pour un montant d’achat de plus de 5000 dhs
      - 15% pour un montant d’achat entre  3000 dhs < MonantAchat ≤5000 dhs  
      - 10% pour un montant d’achat entre  1000 dhs  < MonantAchat ≤3000 dhs
      - Aucune réduction pour un montant d’achat inférieur à 1000 dhs
Ecrire un programme qui permet de calculer et d’afficher la réduction et montant à payer. (1 Pt)     
2. La Direction d’une entreprise désire automatiser le calcul de l’indemnité à verser aux cadres en cas de licenciement.
Après un an d’ancienneté dans l’entreprise, il sera alloué aux cadres licenciés une indemnité tenant compte de  leur ancienneté et s’établissant comme suit :
      - la moitié du salaire d’un mois par année d’ancienneté : pour la tranche d’ancienneté entre 1 et 10 ans
      - au delà de 10 ans un mois de salaire par année d’ancienneté
      - une indemnité supplémentaire serait allouée aux cadres âgés de plus de 45 ans de :
      - 2 mois si le cadre est âgé de 46 à 49 ans
      - 5 mois si le cadre est âgé de plus de 50 ans.
Ecrire un programme qui permet de saisir l’âge, l’ancienneté et le dernier salaire et d’afficher l’indemnité du cadre.  (1.5 pts)

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

On souhaite gérer la répartition des modules entre les formateurs d’un institut de formation professionnelle.
Soit la classe module qui modélise un module et qui comportera les attributs suivants :
      reference
      intitule 
      formateur  (matricule du Formateur qui enseigne ce module)
Soit la classe Formateur qui modélise un Formateur et qui comportera les attributs suivants :
       matricule
       nom  
       prenom 
       echelle 
      listeModule  

Travail à faire :
1- Codage de la classe Module
      a. Ecrire la classe Module avec un compteur des objets créés. (1pt)
2- Codage de la classe Formateur
      a. Ecrire la classe Formateur avec un compteur des objets créés. (1pt)
3- Ajouter la méthode compare qui teste l’égalité de 2 objets Formateur (2 objets Formateur sont égaux s’ils ont le même matricule). (1pt)
4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de formateur qui n’est pas comprise entre 1 et 20. (1pt)
5- Ajouter une méthode choixEnseignant qui désigne l’enseignant d’un module. (1pt)
6- Ajouter une méthode supprimerFormateur qui annule le choix de l’enseignant d’un module. (1pt)
7- Ajouter une méthode ajouterFormateur qui ajoute un module à la liste des modules pris en charge un formateur. (1pt)
8- Ajouter une méthode  supprimerModule qui supprime un module de la liste des modules d’un formateur. (1pt)
9- Ecrire un programme de test qui crée 4 formateurs et 5 modules : (1pt)
10-  Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Formateurs.txt et Modules.txt (1pt)

PARTIE III :  PROGRAMMATION ÉVÉNEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique.
1- Créer une interface qui permet la gestion des modules.
      a. Ajouter un module (0.5pt)
      b. Supprimer un module selon sa référence. (0.5pt)
      c. Modifier un module selon sa référence. (0.5pt)
      d. Rechercher un module selon sa référence ou son intitulé. (1pt)
      e. Afficher dans un label le nombre des modules créés (0.5pt)
2- Créer une interface qui permet la gestion des formateurs.
      a. Ajouter un formateur. (0.5pt)
      b. Supprimer un formateur selon son matricule. (0.5pt)
      c. Modifier les informations d’identité d’un formateur. (0.5pt)
      d. Rechercher un formateur selon son matricule. (0.5pt)
      e. Afficher l’ensemble des formateurs dans une grille (0.5pt)
3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)

Examens de Passage - Pratique - TDI - 2010 - Jour 1 - Variante 2

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. La Direction d’une entreprise désire automatiser le calcul de l’indemnité à verser aux cadres en cas de licenciement.
Après un an d’ancienneté dans l’entreprise, il sera alloué aux cadres licenciés une indemnité tenant compte de  leur ancienneté et s’établissant comme suit :
      - la moitié du salaire d’un mois par année d’ancienneté : pour la tranche d’ancienneté entre 1 et 10 ans
      - au delà de 10 ans un mois de salaire par année d’ancienneté
      - une indemnité supplémentaire serait allouée aux cadres âgés de plus de 45 ans de :
      - 2 mois si le cadre est âgé de 46 à 49 ans
      - 5 mois si le cadre est âgé de plus de 50 ans.
Ecrire un programme qui permet de saisir l’âge, l’ancienneté et le dernier salaire et d’afficher l’indemnité du cadre.  (1.5 pts)
2. Ecrire un programme permettant de trier un tableau de n réels dans un ordre croissant en utilisant la méthode de tri bulle (1 pt)
3. Ecrire un algorithme qui effectue la lecture d’une matrice carrée A ainsi que sa taille n et affiche la trace de A. (1 pt)
      (Pour une matrice A(ai,j), Trace(A)=Σai,i la somme des éléments sur la diagonale).
4. Ecrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante sous forme des étoiles. (0.5 pt)
N=3
      ***
      **
      *

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

On souhaite développer une application pour la gestion des modules enseignés par des professeurs dans une Ecole privée.
Soit la classe module qui modélise un module et qui comportera les attributs suivants :
      reference
      intitule 
      professeur   (matricule du Professeur qui enseigne ce module)
Soit la classe Professeur qui modélise un Professeur et qui comportera les attributs suivants :
      matricule
      nom  
      prenom 
      echelle 
      listeModule   

Travail à faire :
1- Codage de la classe Module
      a. Ecrire la classe Module avec un compteur des objets créés. (1pt)
2- Codage de la classe Professeur
      a. Ecrire la classe Professeur avec un compteur des objets créés. (1pt)
3- Ajouter la méthode compare qui teste l’égalité de 2 objets Professeur (2 objets Professeur sont égaux s’ils ont le même matricule). (1pt)
4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de professeur qui n’est pas comprise entre 8 et 11. (1pt)
5- Ajouter une méthode choixProfesseur qui désigne l’enseignant d’un module. (1pt)
6- Ajouter une méthode supprimerProfesseur qui annule le choix de l’enseignant d’un module. (1pt)
7- Ajouter une méthode ajouterModule qui ajoute un module à la liste des modules pris en charge par un professeur. (1pt)
8- Ajouter une méthode  supprimerModule qui supprime un module de la liste des modules d’un professeur. (1pt)
9- Ecrire un programme de test qui crée 4 professeurs et 5 modules : (1pt)
10- Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Professeurs.txt et Modules.txt (1pt)

PARTIE III :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique.
1- Créer une interface qui permet la gestion des modules.
      a. Ajouter un module (0.5pt)
      b. Supprimer un module selon sa référence. (0.5pt)
      c. Modifier un module selon sa référence. (0.5pt)
      d. Rechercher un module selon sa référence ou son intitulé. (1pt)
      e. Afficher dans un label le nombre des modules créés (0.5pt)
2- Créer une interface qui permet la gestion des professeurs.
      a. Ajouter un professeur. (0.5pt)
      b. Supprimer un professeur selon son matricule. (0.5pt)
      c. Modifier les informations d’identité d’un professeur. (0.5pt)
      d. Rechercher un professeur selon son matricule. (0.5pt)
      e. Afficher l’ensemble des professeurs dans une grille (0.5pt)
3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)

Examens de Passage - Pratique - TDI - 2010 - Jour 1 - Variante 3

PARTIE I :  PROGRAMMATION STRUCTUREE EN C OU C++

1. Ecrire un programme permettant de saisir le prix unitaire  et la quantité commandée d’un article. Le programme affichera le prix à payer, le port, et la remise sachant que :
      -Le port est gratuit si le montant hors taxe est supérieur à 1000 dh
      -Le port est 3%  dans le cas contraire
      -la remise est de 5 % si le  montant hors taxe  est compris entre 300 et 1000 et de 10% au      -delà de 1000 (1 pt)
NB : Montant hors Taxe = prix unitaire  x  quantité commandée                  
2. Ecrire un algorithme qui effectue la lecture d’une matrice carrée A ainsi que sa taille n et affiche la trace de A. (1 pt)
      (Pour une matrice A(ai,j), Trace(A)=Σai,i la somme des éléments sur la diagonale).
3. Ecrire un programme qui demande un entier N positif, et deux entiers Bd et Ba (compris entre 2 et 10) et convertit N de la base Bd en base Ba. (2 pts)

PARTIE II :  PROGRAMMATION ORIENTEE OBJET EN VB.NET, C# OU JAVA

On souhaite développer une application pour la gestion des modules enseignés par des enseignants dans une Ecole privée.
Soit la classe module qui modélise un module et qui comportera les attributs suivants :
      reference
      intitule 
      enseignant   (matricule de l’enseignant qui enseigne ce module)
Soit la classe Enseignant qui modélise un Enseignant et qui comportera les attributs suivants :
      matricule
      nom  
      prenom 
      echelle 
      listeModule   

Travail à faire :
1- Codage de la classe Module
      a. Ecrire la classe Module avec un compteur des objets créés. (1pt)
2- Codage de la classe Enseignant
      a. Ecrire la classe Enseignant avec un compteur des objets créés. (1pt)
3- Ajouter la méthode compare qui teste l’égalité de 2 objets Enseignant (2 objets Enseignant sont égaux s’ils ont le même matricule). (1pt)
4- Créer une exception nommée erreurEchelle qui se déclenche lors de la saisie d’une échelle de enseignant qui n’est pas comprise entre 8 et 11. (1pt)
5- Ajouter une méthode choixEnseignant qui désigne l’enseignant d’un module. (1pt)
6- Ajouter une méthode supprimerEnseignant qui annule le choix de l’enseignant d’un module. (1pt)
7- Ajouter une méthode ajouterModule qui ajoute un module à la liste des modules pris en charge par un enseignant. (1pt)
8- Ajouter une méthode  supprimerModule qui supprime un module de la liste des modules d’un enseignant. (1pt)
9- Ecrire un programme de test qui crée 4 enseignants et 5 modules : (1pt)
10-  Ecrire un programme permettant d’enregistrer les objets crées dans deux fichiers texte : Enseignants.txt et Modules.txt (1pt)

PARTIE III :  PROGRAMMATION EVENEMENTIELLE EN VB.NET, C# OU JAVA

Pour plus de convivialité, on souhaite développer quelques fonctionnalités de l’application de gestion de la répartition des modules en mode graphique.
1- Créer une interface qui permet la gestion des modules.
      a. Ajouter un module (0.5pt)
      b. Supprimer un module selon sa référence. (0.5pt)
      c. Modifier un module selon sa référence. (0.5pt)
      d. Rechercher un module selon sa référence ou son intitulé. (1pt)
      e. Afficher dans un label le nombre des modules créés (0.5pt)
2- Créer une interface qui permet la gestion des enseignants.
      a. Ajouter un enseignant. (0.5pt)
      b. Supprimer un enseignant selon son matricule. (0.5pt)
      c. Modifier les informations d’identité d’un enseignant. (0.5pt)
      d. Rechercher un enseignant selon son matricule. (0.5pt)
      e. Afficher l’ensemble des enseignants dans une grille (0.5pt)
3- Créer un menu permettant d’accéder à ces différentes fonctionnalités. (0.5pt)

Télécharger Les Examens de Passage - Pratique - TDI - 2010 - Jour 1 - V1 - V2 - V3 :
en format .pdf sur le lien suivant :

Examens de Passage - Pratique - TDI - 2010 - Jour 1 - V1 - V2 - V3


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