Vous êtes sur la page 1sur 8

Ministre de l'Enseignement Suprieur, de la Recherche Scientifique et de la Technologie CONCOURS DE RECRUTEMENT DES TECHNOLOGUES EN INFORMATIQUE SESSION 2008

Admissibilit Epreuve d'application : option Informatique des Systmes de Gestion


Dure : 8 heures Documents non autoriss

.....................................................................IMPORTANT...............................................................................

La prsente preuve est compose de cinq parties. Il est recommand de traiter les trois dernires parties dans l'ordre. Le sujet de l'preuve est sur un total de 7 pages. Il est demand de traiter chaque partie sur une copie distincte et de numroter les feuilles de chaque copie dans l'ordre rgulier 1,2,3, ... en mentionnait, Sous chaque numro, le nombre total des feuilles qui composent la copie (de la forme : nombre de la page/nombre total des pages). Ce mode de numrotation permet au correcteur de s'assurer qu'aucune feuille de copie n'est gare. Aucun dessin, graphique, rdaction..., au crayon n'est accept. Les ratures sont viter. Les candidats sont galement invits remplir de la faon la plus complte et la plus claire possible l'en-tte des feuilles de leurs copies. Le numro du dossier d'inscription ainsi que le numro de la carte d'identit nationale doivent tre ports sur l'en-tte de chacune des feuilles constituant la copie. Il est interdit aux candidats de signer leurs copies (en dehors de l'en-tte) ou d'y mettre un signe particulier pouvant renseigner sur la provenance de la copie. Les candidats doivent marger au moment o ils remettent leurs copies, mme en cas de copie blanche. Les rponses sur des feuilles de brouillon ne sont pas acceptes.
----------------------------------------------------------------------------------------------------------------------------------Bon Travail

CONCOURS DE RECRUTEMENT DES TECHNOLOGUES EN INFORMATIQUE SESSION 2008

Admissibilit Epreuve d'application : option Informatique des Systmes de Gestion


(Dure : 8 heures)

PARTIE 1 (30 points) - ALGORITHMIQUE ET STRUCTURE DE DONNEES -

1. Proposez une fonction qui reoit un nombre N positif exprim dans une base B (2 B 10), retourne sa conversion dans la base 10 et retourne -1 si ce nombre n'est pas correctement exprim dans la base B. (4points) 2. Proposez un algorithme qui lit un nombre binaire positif N et le convertit dans la base 10. (2 points) 3. partir de cette question, le nombre N sera exprim dans la base 10. On cherche dterminer si un entier N saisi (N >9) est divisible par 9 ou non en appliquant la mthode suivante : (i) On fait la somme du premier et du second chiffre de N. (ii) Si la somme obtenue est suprieure eu gale 9, on lui soustrait 9. (iii) On ajoute ensuite cette somme le chiffre suivant et on lui applique la rgle (ii) et ainsi de suite jusqu'au dernier chiffre de N. (iv) Si le rsultat final est nul alors le nombre N est divisible par 9. Exemple : Pour N=65493, l'algorithme effectuera les oprations suivantes : 6 + 5 = 11 (11 > 9, on lui soustrait 9, on obtient 2) 2 + 4 =6 (6 < 9) 6 + 9 = 15 (15 > 9, on lui soustrait 9, on obtient 6) 6 + 3 = 9 (9 = 9, on lui soustrait 9, on obtient 0) Le rsultat est nul et tous les chiffres de N ont t traits; donc le nombre 65493 est divisible par 9. 3.1. Proposez une fonction qui reoit un nombre N et retourne 1 si N est divisible par 9, 0 sinon, en n'utilisant que le type entier pour les diffrentes variables utilises (variables simples ou variables de type tableau). (2 points) 3.2. Proposez une fonction qui reoit un nombre N et retourne 1 si N est divisible par 9, 0 sinon, en utilisant entre autres le type chane de caractres. On pourra utiliser les fonctions et les procdures prdfinies suivantes : (2 points) Fonction Longueur (ch : chane) : entier Fonction Concat (chl: chane, ch2 : chane) : chane Fonction Sous-chane (ch: chane, position : entier, nbcar : entier) : chane Fonction Position (chl: chane, chl : chane) : entier Procdure Effacer (donres ch: chane, don position : entier, don nbcar : entier) Procdure Insrer (don chl: chane, donres chl : chane, don position : entier) Procdure ConvChane (don d : entier, res ch: chane) Procdure Valeur (don ch : chane, res d : entier, res erreur : entier)
1/7

4. Proposez une fonction qui reoit un nombre N et retourne 1 si N est un nombre premier, 0 sinon. Donnez la complexit en temps de calcul de cette fonction. (3 points) 5. Aprs avoir dfinie la structure de donnes d'une liste chane L, proposez une fonction qui reoit un nombre positif (N2), et cre une liste chane L contenant les nombres premiers compris entre 2 et N et retourne un pointeur sur le premier lment de la liste. (3 points) 6. Soient N1 et N2 deux entiers tels que 1 < N1 < N2 N. Proposez une procdure permettant de supprimer de la liste L, les nombres premiers compris entre N1 et N2. (2 points) 7. Proposez une procdure permettant d'insrer avant le plus grand nombre premier Max_prem, infrieur N1 de la liste L, tous les nombres infrieurs (ou gal) N et divisibles par 9. Si un tel nombre Max _prem de la liste L n'existe pas, l'insertion se fera en dbut de liste. (4points) 8. Proposez une procdure itrative permettant d'inverser la liste L, sans avoir recours la cration d'une autre liste (par modification du chanage entre les lments seulement). (3 points) 9. Aprs avoir dfinie la structure de donnes d'un arbre binaire de recherche A, proposez une procdure rcursive permettant d'ajouter un lment X dans A. (3points) 10. Proposez une procdure permettant de stocker les lments de la liste L dans un arbre binaire de recherche A. Cet arbre sera repr par un pointeur racine. (2 points) PARTIE 2 (15 points) - RESEAUX Les rponses cette partie doivent tre concises et ne dpassent pas 5 lignes maximum par question. 1. Comment s'appelle la communication virtuelle entre 2 couches de mme niveau du modle de rfrence OSI (Open Systems Interconnection)? Expliquez comment elle se droule rellement ? (3 points) 2. Le modle de rfrence OSI est construit partir d'une architecture maille o les quipements sont relis par des liaisons point point. Quels sont les principaux concepts devant tre rajouts au modle pour qu'il s'adapte des rseaux locaux o souvent les quipements se partagent le mme support de transmission ? (2,5 points) 3. Pour utiliser la mthode CSMA/CD, nous savons qu'une trame doit avoir une longueur minimale. Expliquez pourquoi? (2 points) 4. Immdiatement aprs le dmarrage d'une machine connecte un rseau local Ethernet et possdant une configuration Internet, un message d'erreur rseau s'affiche. Quelle est la cause la plus probable de ce problme. Justifiez votre rponse. Quelle solution proposez vous pour viter ce genre de problme? (2,5 points) 5. La machine A d'adresse IP 193.95.6.3 doit envoyer un paquet IP la machine B 193.95.6.8 (du mme rseau). Dtaillez les oprations effectues au niveau des couches 3 et 2 de la machine A. (3 points) 6. Quel protocole de transport de l'architecture TCP/IP est utilis par le protocole http. Expliquez pourquoi ? (2 points)
*****************

2/7

ETUDE DE CAS Tech Web


Une socit de services en informatique TechWeb dsire proposer un service de prise de rendezvous. Le premier march vis est celui des mdecins travaillant seuls. Ceux-ci n'ont en gnral pas de secrtariat. Les patients dsirant prendre rendez-vous tlphonent alors directement au mdecin. Ce dernier est donc drang frquemment au cours d'une journe ce qui diminue sa disponibilit ses patients. La socit TechWeb souhaite leur proposer un service de prise de rendez-vous fonctionnant selon le principe suivant : un service secrtariat assure les prises des Rendez-vous (RV) pour un grand nombre de mdecins. Le salaire du service secrtariat est mutualis entre tous les mdecins utilisant ce service. le service secrtariat et tous les mdecins sont relis Internet. les RV sont enregistrs dans une base de donnes centralise, accessible via Internet, par le secrtariat et les mdecins. la prise de RV est normalement faite par le secrtariat selon des crneaux o les RV sont possibles. Chaque crneau est indiqu par un dbut et une fin spcifis en heures et minutes. En outre, la prise de RV peut tre faite galement par les mdecins eux-mmes. C'est le cas notamment lorsqu' la fin dune consultation, le mdecin fixe lui-mme un nouveau RV son patient. Pour chaque patient, on souhaite garder trace de son nom, prnom, adresse, date de naissance, sexe et un numro de tlphone. L'architecture du service de prise de RV est la suivante :

Secrtariat Internet Mdecin 1 Mdecin 2 Base de donnes des RV

Les mdecins, dcrits par un nom, prnom, une spcialit, un ou plusieurs numros de tlphones, un titre (Melle, Mme, Mr) et le cot pay pour une consultation, gagnent en efficacit s'ils n'ont plus grer les RVs. S'ils sont suffisamment nombreux, leur contribution aux frais du fonctionnement du secrtariat sera faible. La socit TechWeb dcide de vous confier l'laboration d'une premire maquette du service.

Travail demand
PARTIE 3: Modlisation UML (15pts)

1. Etablir les cas d'utilisation associs aprs avoir numr les acteurs intervenant dans ce systme. (6pts) 2. Donner le digramme de classes correspondant. (6pts) 3. Traduire le diagramme de classes en un schma relationnel. (3pts) 7/7

PARTIE 4 : Bases de Donnes (20pts)

En se basant sur le schma relationnel obtenu dans la partie 3 question 3 et en se rfrant la table RV dcrite principalement par les cls de mdecin, patient, secrtaire, ainsi que l'horaire du RV, laquelle on ajoute l'tat qui prend P ou R selon que le RV est Planifi ou Ralis 1. Donner la structure de la table RV. (1pt)
2.

Ecrire la commande SQL permettant de crer la table RV en tenant compte des rgles

d'intgrit structurelle et rfrentielle et en supposant que les autres tables ont t dj cres. (2pts) 3. Crer les vues SQL ncessaires pour rpondre aux requtes suivantes : a. Afficher le salaire par secrtaire pour le mois de Juin 2008 sachant que chaque secrtaire touche 10% du cot pay pour une consultation mdicale qui a eu lieu et qu'elle a planifie. (3pts) b. Afficher les caractristiques des mdecins qui ont cumul plus que la moyenne des RV pendant le 1er trimestre de l'anne 2008. (3pts) c. Sachant que les salaires des secrtaires sont mutualiss part gale entre tous les mdecins, afficher la contribution de chaque mdecin pour le mois de juin 2008. (3pts) 4. PL-SQL a. Elaborer une procdure catalogue permettant d'diter la liste ordonne des RV d'un mdecin donn (nom, prnom) pour la date du jour. (4pts) b. Elaborer une procdure catalogue permettant d'affecter un RV partir d'une date et une plage horaire proposes par un patient donn (nom, prnom) pour consulter un mdecin donn (nom, prnom). Le RV affect correspond la premire disponibilit dtecte du mdecin. Remarque : on suppose que la dure de la consultation est de 30 minutes. (4pts)

6/7

PARTIE 5 : Programmation (20pts) 1. Quels sont les avantages de l'architecture 3-tiers compare l'architecture 2-tiers. (1pts) 2. On vous demande de dvelopper la classe suivante, qui vous sera utile par la suite : (3pts) import java.sgl.* ; public class ConnexionBDBean implements java.io.Serializable { Connection con = null; ResultSet rs = null ; Statement stmt = null ; public ConnexionBDBean () public boolean driver() {} public boolean Open_connexion() {} public boolean close_Connection() {} public ResultSet select_exec(String sgl) {} public int update_exec(String sgl) {} public boolean close_ResultSet(){} public boolean close_Statement() {}
>

{} ;

3. En utilisant des pages JSP ainsi que des Servlets, donner le code qui permet de: a. Authentifier un mdecin via un formulaire d'authentification html (Authentif.html). (2pts) b. Invoquer une Servlet (Authentif.java) qui, une fois le formulaire est valid, va vrifier son autorisation d'accs. Cette servlet doit utiliser la classe de connexion une base de donnes (en utilisant le pont ODBC-JDBC). En outre, l'application doit toujours afficher le nom et le prnom du mdecin dans chaque page qu'il visite tout le long de sa connexion. (3pts) c. Dvelopper le code ncessaire qui permet, une fois qu'un mdecin donn s'authentifie, de : i. Afficher la liste des rendez-vous par ordre chronologique partir de la date du jour. (3pts) ii. Affecter un rendez-vous un patient connu par son identifiant. (3pts) d. Authentifier l'administrateur, qui souhaite avoir la main pour pouvoir visualiser la liste des mdecins ainsi que la possibilit d'ajouter un nouveau mdecin dans la base. Donner le code ncessaire lui permettant de le faire. (5pts)

7/7

Annexe
public void static forName(String driver);// charger le driver public static Connection getConnection (String url, String user, String password ); public Statement createStatement(); public Resultset executeQuery(String sql) ;

Les principales mthodes de l'objet ResultSet sont les suivantes : getlnt(int) : rcupre sous forme d'entier le contenu d'une colonne dsigne par son numro getlnt(String) : rcupre sous forme d'entier le contenu d'une colonne dsigne par son nom geiFloat(int) : rcupre sous forme de flottant le contenu d'une colonne dsigne par son numro getFloat(String) : rcupre sous forme de flottant le contenu d'une colonne dsigne par son nom next() : dplace le pointeur de ligne sur la ligne suivante close() : ferme l objet getMetaData() : retourne les mtadonnes de l'objet (l'objet ResultSetMetaData)

6/7

Le package java.sql
Classes Interfaces Exceptions

Date DriverManager DriverPropertylnfo Time Timestamp Types

Array Blob CallableStatement Clob Connection DatabaseMetaData Driver PreparedStatement Ref ResultSet ResuitSetMetaData SQLData SQLInput SQLOutput Statement Struct

BatchUpdateException DataTruncation SQLException SQLWarning

7/7