15 juil. 2010

Examens de Passage - 2010 - Pratique - Variante 9

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 -  - 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

Examens de Passage - 2010 - Pratique - Variante 7

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 

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

14 juil. 2010

Examens de Passage - Pratique 2010 - TDI - Variante n° 6

Examens de Passage - Pratique 2010 - TDI - 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)

Examens de Passage - 2010 - Pratique - Variante 4

Examens de Passage - 2010 - Pratique - Variante 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)

13 juil. 2010

Examens de Passage - Pratique - TDI - 2010 - TDI - 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 - TDI - Variante 1

Examens de Passage - Pratique - TDI - 2010 - TDI - 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)

3 juil. 2010

Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - Variante 8

Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - Variante 8


On souhaite développer une application qui  s'adresse aux agriculteurs pour la gestion de leurs parcelles. L’application doit assurer le suivi de différentes opérations réalisées sur les parcelles de l'exploitation au cours d'une campagne, jusqu'à la récolte.
Les interventions culturales sont : travail du sol, semis, apport des engrais, des produits phytosanitaires …
(Un produit phytosanitaire est un produit utilisé pour soigner ou prévenir les maladies des cultures)
1. Pour cela créer la base de données correspondante au modèle suivant : 2 pts


Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - V7 - V8 - V9
Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - V7 - V8 - V9

Partie Windows : (25 Pts)

2. Gestion des cultures
         a. Ajouter une nouvelle culture, supprimer ou modifier les données d’une culture existante à partir d’une liste.


Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - V7 - V8 - V9
Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - V7 - V8 - V9


La case à cocher pour indiquer l’applicabilité des produits phytosanitaires. 2 pts
         b. Une culture peut avoir plusieurs variétés (exemples de variétés de blé tendre sont : Mehdia, Arrihane, Marchouch…) Saisir dans une autre fenêtre toutes les variétés d’une culture donnée.                                   2 pts

3. Créer une interface pour enregistrer les données d’une nouvelle parcelle. 1 pt
4. Enregistrer une opération d’achat de semence, mettre à jour automatiquement la quantité en stock à l’aide de déclencheur. 2 pts
5. Mettre à jour la table « Travail du sol », Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Quitter et des boutons de déplacement  entre les enregistrements.  2 pts
6. Créer une interface qui permet d’attribuer une culture à une parcelle pour une saison donnée (le 1er juillet 2009 constitue le début de la saison 2010). La culture et la parcelle sont sélectionnées dans des zones de liste. 1 pt
7. Dans la même fenêtre, enregistrer une opération de semis (la variété de semence est  sélectionnée dans une liste), mettre à jour le stock de semence à l’aide d’un déclencheur 2 pts
8. Planifier les travaux du sol (pour chaque travail sélectionné l’utilisateur saisi la date prévue de l’opération). 4 pts


Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - V7 - V8 - V9
Examens de Fin de Formation - Pratique - TDI - 2010 - Jour 3 - V7 - V8 - V9


Après avoir  sélectionné l'intervention, le coût par hectare s'affiche automatiquement. Le coût total est calculé après la sélection de la parcelle (le coût total = coût/ha  multiplié par la superficie de la parcelle concernée).
Calculer et afficher le coût total des interventions.
9. Au démarrage de l’application, afficher un message d’alerte rappelant les opérations à effectuer dans les sept jours qui suivent. (date, travail sol, parcelle) 2 pts
10. Permettre à l’utilisateur de marquer une opération comme réalisée en entrant la date de réalisation et le coût réel ou de l’annuler (supprimer donc l’opération du planning après une demande de confirmation). 3 pts
11. Créer un état pour imprimer l’historique de l’ensemble des opérations enregistrées pour une saison. 2 pts
12. Imprimer la liste des cultures pour les trois dernières saisons pour une parcelle donnée. 2 pts

Partie Web : (13 Pts)

13. Dans une page afficher toutes  les parcelles et leurs cultures correspondantes de la saison en cours 2 pts
(La saison 2010 débute le 1er juillet 2009 et se termine le 30 juin 2010)
14. Au clic sur le nom d’une parcelle, afficher les trois prochaines  opérations à effectuer. 2 pts
15. Permettre à l’utilisateur de reporter une opération en modifiant sa date prévue de réalisation, de la supprimer ou de la marquer réalisée en entrant les données manquantes (date réalisation et coût réel). 3 pts
16. Dans une même page afficher le journal détaillé des travaux réalisés  (date, travail sol, parcelle, prix) dans un premier tableau. Dans un deuxième  tableau, calculer et afficher le coût total par parcelle (Parcelle, Coût total) 3 pts
17. Pour accéder au site, un utilisateur doit être authentifié, créer un système de sécurité du site. 2 pts
18. Créer un menu pour la navigation 1 pt

2 juil. 2010

Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - Variante 6

Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - Variante 6


I - BASE DE DONNEES

« MAROC BENEVOLAT » est une organisation à but non lucratif qui s’est fixé pour mission de favoriser la mise en relation entre les bénévoles en quête d’activités et les associations qui recherchent des personnes motivées et compétentes.
Pour ce faire, une base de données a été mise en place pour enregistrer les actions de bénévolat, les associations partenaires et les candidats bénévoles qui souhaitent s’investir.
Exemple d’action bénévole : « Soigner des personnes sans domicile fixe. Le bénévole médecin ou infirmier assurera une consultation pour apporter les premiers soins, orienter sur d'autres organismes des personnes sans domicile fixe du Centre d'hébergement d'urgence ».
L’équipe en charge du dossier d’analyse de l’application a construit le modèle conceptuel des données suivant :


Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - V4 - V5 - V6
Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - V4 - V5 - V6


1) Créer  la base de données et remplir les tables par un jeu d’essai. (1.5 pts)
2) Ajouter à la table bénévole, une colonne calculée nommée NP qui renvoie le nom et le prénom du bénévole, séparés par un espace. (0.5 pt)
3) Ajouter la procédure stockée qui renvoie la dernière candidature en date pour un bénévole dont le numéro est fourni comme paramètre. (0.5 pt)
4) Créer un index pour la colonne Login de la table BENEVOLE. (0.5 pt)
5) Créer la procédure stockée qui renvoie le nombre de jours pour une action dont le code est fourni comme paramètre. (0.5 pt)
6) Développer la procédure stockée permettant de trouver la ville qui a enregistré le maximum d’actions au cours d’une période donnée en paramètre (deux dates d1 et d2). (0.5 pt)

II - PROGRAMMATION

Pour répondre aux besoins de certains utilisateurs, on vous demande de  développer une application « client/serveur ».
1) Proposer et créer le menu de l’application selon les fonctionnalités qui apparaîtront sur les questions suivantes (1pt)
2) Développer le formulaire de consultation des associations par ville qui comprend une liste déroulante permettant de sélectionner une ville et une grille qui affiche les associations qui y sont implantées. (1pt)
3) Développer le formulaire de mise à jour des compétences. Ajouter un bouton pour chercher les compétences dont le nom commence par une chaîne saisie sur une zone de texte. (1 pt)
4) Développer le formulaire qui permet à un bénévole de modifier son mot de passe. Le formulaire de modification comprend l’ancien mot de passe, le nouveau mot de passe et sa confirmation. Le nouveau mot de passe doit comporter plus de 5 caractères. Ajouter tous les contrôles de validation nécessaires. (1pt)
5) Ajouter sur le formulaire de consultation des associations, les boutons qui permettent:
     a. D’afficher un état des associations par ville. Le nom de la ville sélectionnée doit apparaître sur le titre de l’état. (1pt)
     b. D’afficher un histogramme du nombre d’associations par ville.  (2pts)
6) Ajouter à votre menu une option qui permet d’enregistrer la liste de toutes les informations des bénévoles sur un fichier texte.  L’utilisateur sélectionne le chemin d’enregistrement, spécifie le nom du fichier et lance l’opération de création du fichier. (3 pts)

III - DEVELOPPEMENT WEB

1) Les spécifications de présentation de votre site web doivent être enregistrées sur le fichier « Style.css ». (1 pt)
2) Développer une page HTML d’accueil qui affiche un message de bienvenue et la langue utilisée par l’internaute. La page doit comprendre un bouton pour accéder à l’application et un autre qui ferme la fenêtre. (1 pt)
3) Développer la page de recherche des actions par ville et par compétence. (1 pt)
4) Développer les formulaires de connexion des bénévoles. (1 pt)
5) Créer la page qui permet à un bénévole de rechercher et de modifier une de ses candidatures. (1 pt)
6) Créer la page qui permet à un bénévole de modifier ses coordonnées. (1 pt)

Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - Variante 5

Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - Variante 5


I - BASE DE DONNEES

« MAROC BENEVOLAT » est une organisation à but non lucratif qui s’est fixé pour mission de favoriser la mise en relation entre les bénévoles en quête d’activités et les associations qui recherchent des personnes motivées et compétentes.
Pour ce faire, une base de données a été mise en place pour enregistrer les actions de bénévolat, les associations partenaires et les candidats bénévoles qui souhaitent s’investir.
Exemple d’action bénévole : « Soigner des personnes sans domicile fixe. Le bénévole médecin ou infirmier assurera une consultation pour apporter les premiers soins, orienter sur d'autres organismes des personnes sans domicile fixe du Centre d'hébergement d'urgence ».
L’équipe en charge du dossier d’analyse de l’application a construit le modèle conceptuel des données suivant :


Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - V4 - V5 - V6
Examens de Fin Formation - TDI - 2010 - Pratique - Jour 2 - V4 - V5 - V6


1) Créer  la base de données et remplir les tables par un jeu d’essai. (1.5 pts)
2) La date de candidature à une action n’est pas une information à saisir. Sa valeur doit être automatiquement initialisée par la date du système. (0.5 pt)
3) La date de fin d’une action doit être supérieure à sa date de début. Ajouter un déclencheur qui permet de rejeter toutes les opérations d’ajout ou de modification qui ne respectent pas cette contrainte. (0.5 pt)
4) Créer la vue qui renvoie le nombre de candidatures par titre d’action. (0.5 pt)
5) Créer la procédure stockée qui supprime toute action dont la date de fin est inférieure à la date du jour et qui n’a eu aucune candidature. (0.5 pt)
6) Développer la procédure stockée permettant de trouver l’Action qui a enregistré le maximum de candidatures au cours d’une période donnée en paramètre (deux dates d1 et d2). (0.5 pt)

II - PROGRAMMATION

Pour répondre aux besoins de certains utilisateurs, on vous demande une application « client/serveur ».
1) Proposer et créer le menu de l’application selon les fonctionnalités qui apparaîtront sur les questions suivantes (1 pt)
2) Développer le formulaire de mise à jour des compétences. Ajouter un bouton pour chercher les compétences dont le nom commence par une chaîne saisie sur une zone de texte (1 pt)
3) La colonne « Etat » de la table « Action » peut prendre les valeurs suivantes :
     • 1 : Action créée. Elle n’est pas publiée sur le Web
     • 2 : Action publiée sur le web. Un administrateur publie une Action après l’avoir examinée. L’action peut être modifiée par son créateur, elle passe alors à l’état 1.
     • 3 : Action bloquée. Un administrateur peut bloquer une annonce suite à une réclamation par exemple. L’action ne peut plus être modifiée par son créateur et n’apparaît plus sur le Web.
Développer le formulaire de consultation des actions  nouvellement créées et prévoir un bouton qui permet de publier une annonce. (2 pts)
4) Ajouter sur le formulaire de mise à jour des compétences, les boutons qui permettent:
     a. D’afficher un état des actions correspondantes à la compétence en cours (1 pt)
     b. D’afficher un histogramme du nombre d’actions par compétence (2pts)
5) Ajouter à votre menu une option qui permet d’enregistrer la liste de toutes les informations des bénévoles sur un fichier texte.  L’utilisateur sélectionne le chemin d’enregistrement, spécifie le nom du fichier et lance l’opération de création du fichier. (3 pts)

III - DEVELOPPEMENT WEB

1) Les spécifications de présentation de votre site web doivent être enregistrées sur le fichier « Style.css ». (1 pt)
2) Développer une page HTML d’accueil qui affiche un message de bienvenue, le nom et la version du système d’exploitation du poste client. La page doit comprendre un bouton pour accéder à l’application et un autre qui ferme la fenêtre. (1 pt)
3) Développer la page de recherche des bénévoles par ville et par nom. (1 pt)
4) Développer les formulaires de connexion et d’inscription des bénévoles (1 pt)
Ajouter les contrôles de validation pour les champs de saisie :
     • le mot de passe doit avoir une longueur supérieure à 6 caractères.
     • L’adresse e-mail doit avoir un format correct.
     • Tous les champs sont obligatoires.
5) Créer la page qui permet à un bénévole de modifier ses données. (1 pt)
6) Créer la page qui permet à un bénévole de déposer une candidature. (1 pt)

1 juil. 2010

Examens Fin Formation - TDI - Pratique - 2010 - Jour 1 - Variante 3

Examens Fin Formation - TDI - Pratique - 2010 - Jour 1 - Variante 3


Nous souhaitons développer une application pour la gestion des réservations dans un groupe touristique contenant une chaîne d’hôtel répartis dans les grandes villes au Maroc.
Soit le modèle relationnel suivant :
      Hôtel (numhotel, nom, ville, etoiles)
      Chambre (numchambre, numhotel# , etage, type, prixnuitht)
      Client (numclient, cin, nom, prenom, tel)
      Occupation (numoccup, numclien#t, numchambre#, numhotel#, datearrivee, datedepart)
      Réservation (numresa, numclient#, numchambre#, numhotel, #datearrivee, datedepart)

I – SGBDR : (4 Pts)

1. Créer une base de données relative au schéma relationnel et ajouter un jeu d’enregistrements pour toutes les tables (2Pts)
2. Ajouter des procédures stockées qui permettent de:
      a. Afficher pour un client donné le nombre de réservations effectuées. (0.5 Pt)
      b. afficher la liste des réservations entre deux dates (0.5 Pt)
      c. Afficher le montant total généré par un hôtel (0.5 Pt)
      d. Ecrivez un trigger qui permet d’adapter le même format du téléphone lors de modification ou l’ajout des informations d’un client  (exemple de format souhaité 05 22.20.20.20). . (0.5 Pt)

II – APPLICATION : (11 Pts)

1. Créer un formulaire qui permet de mettre à jour les hôtels. (1Pt)
      - Prévoir les boutons : Ajouter, Modifier, Supprimer, Quitter et des boutons de déplacement  entre les enregistrements.
2. Créer un formulaire qui permet de mettre à jour les chambres. (1.5 Pts)
      - Prévoir les boutons : Ajouter, Modifier, Supprimer, Quitter et des boutons de déplacement  entre les enregistrements.
3. Créer un formulaire qui permet de mettre à jour les clients. (1.5 Pts)
      - Prévoir les boutons : Ajouter, Modifier, Supprimer, Quitter et des boutons de déplacement  entre les enregistrements.
4. Créer un formulaire qui permet de mettre à jour la table Occupation. Prévoir les boutons : Ajouter, Modifier et Enregistrer (0.75 Pt)
5. Créer un formulaire qui permet de mettre à jour la table Réservation. Prévoir les boutons : Ajouter, Modifier et Enregistrer (0.75 Pt)
6. Créer une feuille de recherche qui affiche :
      a. Pour un client donné (combobox), afficher toutes ses réservations (1Pt)
      b. Pour une date donnée, toutes les réservations valides ainsi que le montant total généré pour cette date (1Pt)
7. Créer l’état qui affiche le chiffre d’affaire généré par an (1Pt)
8. Faites un graphe qui représente les chiffres d’affaire dans les cinq dernières années.(2 Pts)
9. Créer le déploiement de votre application (0.5Pt)

IV  - Web : (5 Pts)

1) Développer une page d’authentification permettant à tout utilisateur de l’application de s’identifier avant d’accéder à n’importe quelle page de l’application. Pour s’identifier, l’utilisateur précise son pseudo et son mot de passe. (1Pt)
2) En utilisant les feuilles de style, appliquer le style suivant à votre page d’accueil : (0.5 Pt)
      • Fond de page : Bleu
      • Texte : Blanc, Gras
      • Liens : non soulignés
      • Titre de la page : centré, Gras.
3) Imprimer la liste des hôtels, dont le nombre d’étoiles est déterminé par l’utilisateur. (1Pt)
4) Afficher la liste des occupations en cours pour un hôtel entre deux dates. (1Pt)
5) Afficher les statistiques suivantes entre deux dates : (1.5 Pts)
      • Nombre de réservations par hôtel
      • Nombre d’occupations terminées par hôtel
      • Nombres d’occupations en cours par hôtel

Examens Fin Formation - TDI - Pratique - 2010 - Jour 1 - Variante 1

Examens Fin Formation - TDI - Pratique - 2010 - Jour 1 - Variante 1


Les responsables des hôpitaux souhaitent développer une application pour gérer les consultations, médecins et les hôpitaux pour cela ils ont fait appel

à vous pour développer ce SI en free lance.
Le schéma suivant a été établi par un analyste afin de mettre en place une base de données sous SQL SERVER ou ORACLE :
      Médecin (IdMedecin, Nom, Prénom, DdN, Sexe, #IdSpecialite, # IdService)
      Specialite (IdSpecialite, libelle)
      Service (IdService,  #IdHopital, NbLits) ;
      Séjourne  (IdSejour, #IdService, #IdPatient, DateEntree, DateSortie)
      Patient (IdPatient, Nom, Prénom, DdN, Sexe, Adresse)
      Soigne (IdSoin, #IdMedecin, #IdPatient, nommaladie, Commentaire, Date_soigne)
      Hôpital (IdHopital, Nom, Adresse, Ville)

I – SGBDR : (4 Pts)

1. Créer une base de données relative au schéma relationnel et ajouter un jeu d’enregistrements pour toutes les tables (2Pts)
2. Ajouter des procédures stockées qui permettent de :
      a. Afficher pour un patient donné le nombre de séjour effectué. (0.5 Pt)
      b. Ecrivez une procédure qui affiche la liste des séjours pendant une période imprévue (Affichez les numéros de  consultations, les noms de médecin, les noms de patient). (0.5 Pt)
      c. afficher  le nom,  le prénom et le numéro des patients ayant été suivis  par au moins  deux médecins de spécialité différente au cours de même séjour. (0.5 Pt)
      d. Ecrivez un trigger qui permet d’adapter le même format du téléphone lors de la modification ou l’ajout des informations d’un Médecin  (exemple de format souhaité 05 22.20.20.20). (0.5 Pt)

II – APPLICATION : (11 Pts)

1. Créer un formulaire pour mettre  à jour la table hôpital. (2Pts)
      - Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de navigation  entre les enregistrements.
2. Créer un formulaire pour mettre  à jour la table Médecin. (1.5 Pts)
      - Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de navigation  entre les enregistrements. 
3. Créer un formulaire pour mettre  à jour la table Patient. (1.5 Pts)
      - Prévoir les boutons : Ajouter, Modifier, Enregistrer, Supprimer, Fermer et des boutons de navigation  entre les enregistrements.
4. Mise à jour de la table Séjourne. Prévoir les boutons : Ajouter, Modifier et Enregistrer (1Pt)
5. Créer un formulaire « Soigne» pour saisir les informations concernant la table prescription (1Pt)
6. Créer une feuille de recherche qui affiche :
      a. Pour une hôpital donnée (combobox), tous ses services (nom  et nombre de lits, nombre de médecins de chaque service). (1Pt)
      b. Pour une date donnée, tous les patients  qui  devront quitter les hôpitaux. (1Pt)
7. Créer l’état qui affiche pour une spécialité donnée les hôpitaux où il y a cette spécialité ainsi que nombre de médecins de chaque hôpital trouvée qui ont cette spécialité (1Pt)
8. Créer une feuille MDI avec menu un menu de navigation (0.5Pt)
9. Créer le déploiement de votre application (0.5Pt)

IV  - Web : (6 Pts)

1. Créer un modèle pour votre site afin de permettre aux clients de parcourir tous les services présentés par votre SI. (1Pt)
2. Créer une page Web affichant  pour une ville donnée la liste de ses hôpitaux (1Pt)
3. Au clic sur le nom d’un hôpital l’utilisateur peut recevoir la liste de ses services (id de service, son nombre de lits libres et occupés). (1Pt)
4. Créer une page web permettant l’Ajout d’un séjour : l’utilisateur saisi les informations d’un séjour et clique sur le bouton Enregistrer. (1Pt)
5. Ajouter dans la même page un programme permettant de chercher un séjour et de faire la mise à jour  d'un séjour. (2Pts)

17 juin 2010

Examen de Passage - Théorie 2010 - TDI



Examen de Passage - Théorie 2010 - TDI


I – CONNAISSANCES GÉNÉRALES ET LOGIQUE :

1. Donner une définition aux termes suivants :
        BIOS     (0,25 Pt)
        SDRAM PC133  (0,25 Pt)
        PCI    (0,25 Pt)
        AGP     (0,25 Pt)
2. Votre ordinateur affiche le message suivant : No CPU installed
        - Que signifie le message ?     (0,25 Pt)
        - Comment vous allez remédier à ce problème ? (0,25 Pt)
3. Votre ordinateur affiche le message suivant : System failed memory test
- Que signifie le message et comment vous allez remédier à ce problème ? (0,5 Pt)  
4. Convertir en binaire  le nombre  décimal  37                             (0,25 Pt)
5. Convertir le nombre hexadécimal  B12  en un nombre décimal (0,25 Pt)
6. Effectuer les opérations suivantes :
        a. Multiplication :   (0,25 Pts)
                11111111 * 110001
        b. Division :   (0,25 Pts)
                111101100111  /  111111
7. Soit la fonction F définie par la table de vérité ci-contre :


Examen de Passage - Théorie 2010 - TDI
Examen de Passage - Théorie 2010 - TDI


        a) Proposer une expression de F à partir de la table de vérité. (1 Pt)
        b) Donner l'expression simplifiée de la fonction F en utilisant la méthode de Karnaugh. (1 Pt)

II – ALGORITHMES ET PROGRAMMATION STRUCTURÉE  EN C OU C++

IMPORTANT : Les programmes doivent être écrits en ou C++, aucun autre langage de programmation ne sera accepté pour la programmation structurée
1) On souhaite écrire un algorithme qui permet de convertir un nombre entier naturel entré par l’utilisateur en binaire.
        a) Ecrire une fonction  qui retourne le nombre de bits nécessaires pour représenter un entier naturel n en binaire. (1pt)
        b) Ecrire un algorithme qui permet d’afficher la représentation binaire d’un entier naturel n entré par l’utilisateur. (0.5pt)
2) Ecrire un algorithme qui permet de chercher toutes les occurrences d'une valeur donnée dans un tableau de N éléments. (1pt)
Exemple :


Examen de Passage - Théorie 2010 - TDI
Examen de Passage - Théorie 2010 - TDI


3) On donne en entrée un tableau de N éléments de type entier. Donner le programme qui affiche les éléments du tableau qui possèdent leur carrés (t(i)*t(i)) dans le même tableau. Les éléments sont rangés dans un ordre aléatoire à l’intérieur du tableau. (1pt)
Exemple :


Examen de Passage - Théorie 2010 - TDI
Examen de Passage - Théorie 2010 - TDI


les éléments dont les carrés sont présents : 1,2,4,5

4) Pour un entier n strictement positif on associe n/2 si n est pair et 3n+1 si n est impair. En réappliquant cette transformation à l'entier obtenu, on définit un algorithme dit de Syracuse. On admettra que pour tout entier strictement positif de départ on finisse toujours par arriver à 1.
On demande d'écrire un programme qui, pour une valeur de départ proposée par l'utilisateur, affiche la liste des entiers obtenus jusqu'à 1, ainsi que le nombre de fois qu'il est nécessaire d'appliquer la transformation pour y arriver. (1.5pts)
Voici un exemple de déroulement de cet algorithme :
Valeur de départ (entier strictement positif) ?  12
        6   3   10   5   16   8   4   2   1
On doit appliquer 9 fois la transformation avant d'arriver à 1
5) Quelle est la valeur de s après exécution des instructions suivantes (0.5 Pt)
int i;
int S = 0;
for (i=1; i < 6; i=i+2)
    S = S + i;

        a. 7
        b. 9
        c. 11
        d. Erreur
6) Écrire un programme qui transfère une matrice M à deux dimensions L et C dans un tableau V à une seule dimension. (1.5pts)

III – PROGRAMMATION ORIENTÉE OBJET EN VB.NET, C # OU JAVA

On veut construire un programme capable d’afficher et de déplacer des figures géométriques colorées dans un repère en deux dimensions.
Un graphique est un ensemble de figures affichables et déplaçables par translation. On veut pouvoir afficher des segments, des triangles, et des rectangles. Ces trois éléments graphiques sont définis à l’aide de points.
Après une première analyse, on décide de modéliser l’application de la manière suivante :
        – une classe Point représentera les coordonnées d’un point qui serviront à créer des figures.
        – une classe Segment sera définie par deux points et une couleur, codée par un entier positif.
        – une classe Triangle sera définie par trois points et une couleur, codée par un entier positif.
        – une classe Rectangle sera définie par quatre points et une couleur, codée par un entier positif.
        – la classe Graphique est la classe principale et permettra d’afficher un ensemble d’objets graphiques.
Comme nous pensons devoir ajouter ultérieurement de nouveaux types de figures géométriques, nous décidons d’utiliser des interfaces pour décrire leurs comportements communs.
1. Après avoir étudié les différences et les points communs entre les quatre premières classes que nous avons distinguées, décrivez la ou les interfaces utiles et précisez les classes qui les implémenteront. (1Pt)
2. Décrire la méthode static de la classe Graphique qui permet d’afficher un tableau de figures géométriques. (0.5 Pt)
3. Ecrire la  classe Point en précisant ses constructeurs qui seront utilisés dans le reste du programme et la méthode toString (0.5 Pt)
4. Donnez le constructeur de la classe Segment, et la méthode qui effectuera une translation.
(Attention : le constructeur doit recopier le point en utilisant le constructeur par copie de la classe Point. En effet, un point est modifiable par translation et peut servir à la création d’autres figures elles mêmes translatables.) (1Pt)
5. Ecrire le code de la classe Triangle. (1Pt)
6. Ecrire le code de la classe Rectangle (1Pt)

IV – ANALYSE DE SI :

Le document ci-dessous représente un bon de commande établit par la société NTIC Company pour la fourniture des articles.
Les adresses de livraison et de facturation présentent respectivement  le lieu de livraison des articles et l’adresse de règlement de la facture


Examen de Passage - Théorie 2010 - TDI
Examen de Passage - Théorie 2010 - TDI