Les Examens de Passage - Pratique 2013 - Les Variantes (4, 5, 6)
Les Examens de Passage - Pratique 2013 - Les Variantes (3, 4, 6)
Variante 4
:
Partie 1 : Programmation Structurée : (20pts)
Exercice 1 : (6 points) Ecrivez une fonction qui calcul le nième terme de
la suite suivante : U0 = 1 ; U1 = 1 ; Un +1 = (Un + (n+1)) /
Un-1 Exploiter cette fonction dans un
programme pour placer les dix premiers termes de la suite précédente
dans un tableau. Exercice 2 :
(6 points) Soit T un tableau d’entiers.
Ecrivez un sous-programme qui permet de créer un deuxième tableau S ou
chaque case S[i] est la somme des éléments de T [0] à T[i]. Créer un
programme de test. Exemple : Examen Passage Pratique Session 2013 Variante 4 Exercice 3 : (8 points) a. Ecrire la fonction
int EstFacteurGauche(chat * f, char *s) qui vérifie si le mot f est un
facteur gauche de s. Par exemple « poly » est
un facteur gauche de « polycopie ». Tester cette fonction dans un
programme. (4points) b.
Ecrire la fonction int EstFacteur(char *f, char *s)
qui vérifier si le mot f est un facteur de s. Par
exemple « poly », « cop », « polycop » sont des facteurs de « polycopie ».
Tester cette fonction dans un programme. (4points)
Partie 2 : Programmation Orientée Objet : (30
pts)
L’objet de cette application est la gestion informatisée d’une agence de
location de voiture. L’agence possède un parc de voiture, chaque
voiture est caractérisée par un numéro de châssis, matricule, la marque, le
carburant utilisé, nombre de chevaux, et la puissance fiscale. 1. Créer la classe voiture. Prévoir un
constructeur sans paramètre et un constructeur qui reçoit tous les
paramètres. Créer les méthodes d’accès (les get et les set) pour l’ensemble
des propriétés. (2pts) 2. Le
carburant ne peut prendre pour valeur que « essence » ou « diesel». Créer
une exception ExpIllegalleCarburant qui sera déclenchée si on veut
affecter à la propriété carburant une valeur autre que « essence » ou «
diesel». (1,5pts) 3. Le
numéro de matricule est composé de six chiffres au maximum suivies d’
espace, suivi d’une lettre majuscule suivi d’espace suivi de deux chiffres au
maximum (exp 333333 A 11, 666 B 2). Créer une expression
régulière qui permet de vérifier si le matricule d’une voiture respecte ce
modèle dans ce cas on accepte la valeur sinon une exception
ExpIllegalleMatricule (que vous devez créer) doit être déclenchée. (2pts)
4. Prévoir une méthode
toString() pour afficher l’ensemble des propriétés d’une voiture. (0,5pt)
Un client est identifié
par son téléphone, adresse et adresse mail. Dans le cas d’un client
particulier on ajoute CIN, nom et prénom. Pour le cas d’une entreprise on
ajoute le numéro de registre de commerce. 5. Créer une classe abstraite client. Prévoir un
constructeur sans paramètres, un autre qui reçoit tous les paramètres.
Ajouter la méthode toString(). (2pt) 6. Créer les deux classes ClientParticulier et
ClientEntreprise par héritage de la classe client. Ajouter toString() a ces
deux classes. (1,5pts) 7.
Créer une expression régulière pour vérifier que le champ AdresseMail
vérifier le modèle d’une adresse mail (exemple :
aaaaaaa@bbbbb.ccc ). (1pt)
Une location est effectuée par un client (particulier
ou entreprise) elle concerne une voiture. Chaque location est identifiée par
un numéro (un champ compteur qui s’incrémente automatiquement), le
client ayant effectué la location, la voiture concernée, date début et
date fin de la location, le montant journalier de la location ainsi qu’un
champ retour de type booléen qui prend true lorsque le client retourne la
voiture auprès de l’agence de location, par défaut ce champ est initialisé a
false. 8. Créer la classe
location. Prévoir un constructeur sans paramètre et un autre avec tous les
paramètres. Ajouter toString() (2pts) 9. Créer une exception qui sera déclenchée si la durée
de la location ne dépasse pas une journée. (1,5pts) 10. Créer une méthode qui permet de
calculer le montant d’une location. (2pts) 11. Créer une méthode qui permet de faire passer la
valeur de champ retour à true lorsque la voiture est retournée par le client.
(1pt) Pour gérer les
locations on propose de créer la classe EnsembleLocation qui
contient une liste des locations L. 12. Créer la classe EnsembleLocation. (1pt) 13. Prévoir une méthode pour
ajouter une location a la liste L, vérifié que la voiture est disponible pour la
période demandée, sinon il faut refuser l’ajout. (3pts) 14. Créer une méthode qui permet d’
afficher, pour un client donné, les locations qu’il a effectuées, le montant
de chaque location ainsi que le montant global. (3pts) 15. Créer une méthode qui permet de
sérialiser dans un fichier les clients n’ayant pas encore retourné les
voitures loues malgré que la date fin de location est expire. (3pts) 16. Créer le main de test prévoir
une liste de 5 voitures, une liste de 3 clients, effectuer un ensemble de
location. Vérifier le cas de la question 15. (3pts)
Partie 3 : Programmation Événementielle :
(30pts)
Dans cette partie on va exploiter les classes de la partie II, on va créer une
interface graphique pour l’application. 1. Créer une feuille MDI avec un menu qui contient
un élément pour chacune des questions suivantes. (3pts) 2. Créer une feuille qui permet d’ajouter
une voiture a la liste des voitures. (3pts) 3. Créer une feuille qui permet d’ajouter un client a la
liste des clients. (3pts) 4.
Créer une feuille qui permet d’effectuer une location. L’utilisateur
effectuera les tâches suivantes : (8pts) a. Sélectionner le client dans une liste
déroulante. b. Choisir date début de location et date fin de
location. c. Le programme va remplir une liste des voitures
disponibles pour la période choisie. d. Une fois la voiture est sélectionnée un
bouton « confirmer » s’active sur lequel on peut cliquer pour
valider la location. 5. Créer
une feuille contenant une dataGridView dans laquelle on peut charger le
contenu de fichier de la question 15 de la partie II. (5pts) 6. Créer une interface pour effectuer des
recherches multicritères sur des voitures en respectant le modèle suivant
(8pts) Examen de Passage Pratique Session 2013 Variante 4 - TDI L’utilisateur
peut activer un ou plusieurs critères de recherches dans la zone « critères
de recherche ». Une fois un critère activé sa zone de texte pour saisir la
valeur ou la liste déroulante pour le cas de carburant doit être activé. Le contrôle dataGridView contient le résultat de
recherche, ce résultat change chaque fois qu’on modifie la valeur d’un
critère.
Les Examens de Passage - Pratique 2013 -
Les Variantes (3, 4, 6)
Variante 5 :
Partie 1 : Programmation Structurée : (20pts)
Exercice 1 : (6 points) Ecrivez une fonction qui calcul le nième terme de
la suite suivante : U0 = 1 ; U1 = 1 ; Un +1 = 3*Un - 2*Un-1 Exploiter cette fonction dans un programme pour placer les dix
premiers termes de la suite précédente dans un tableau. Exercice 2 : (8 points) Ecrire une fonction qui reçoit un tableau d’
entiers strictement positifs de taille n et vérifie que chaque élément sauf le
premier est la somme d’un certain nombre d’éléments consécutifs de t qui
le précèdent immédiatement. Exemple : Pour le tableau
suivant :
La fonction retourne 0. La condition n’est pas vérifier pour
28. 28 ≠ 15 ; 28 ≠ 15 + 9 ; 28 ≠ (15 + 9 + 6 = 30)
> 28 on peut arrêter la vérification. Exercice 3 : (6 points) Le javanais était une « langue » parlée, par
certains jeunes qui voulaient utiliser un langage secret entre eux. Pour
parler javanais on rajoute « av » après une consonne
lorsque elle est suivie d’une voyelle. Exemple : Le mot
bonjour devient bavonjavour.
Ecrire la fonction void Javanais(char *m)
qui permet de traduire le mot m en javanais. Tester la fonction.
Partie 2 : Programmation Orientée Objet :
(30pts)
L’objet de cette application est la gestion informatisée d’une bibliothèque
universitaire qui emprunte des documents à des étudiants. Les Documents
sont soit des livres, ou des Revues spécialisés (Médecine, Mathématiques,
Informatiques, ….). Chaque document est identifié par un numéro
d’exemplaire et une date d’achat. En plus pour les livres on mémorise le
numéro d’ISBN le nom de l’auteur, la maison d’édition, et le nombre de
pages. Pour le cas d’une revue on mémorise le nom de la revue la spécialité
et le numéro d’édition. 1.
Créer la classe Abstraite « Document ». Prévoir un constructeur sans
paramètres, un constructeur avec tous les paramètres, les méthodes d’
accès (les get et set ) ainsi que la méthode toString() (2pts) 2. Créer les deux classes Livre
et Revue par héritage de la classe document. Ajouter toString() a ces deux
classes. (1,5pt) 3. Créer une
nouvelle exception ExpIllegalleSpecialite qui sera déclenchée si on veut
affecter à la propriété spécialité une valeur autre que Médecine,
Mathématique ou Informatique. (1pts) 4. L’ISBN est un numéro à 10 chiffres ou 13 chiffres.
Créer une expression régulière qui permet de vérifier si L’ISBN d’un livre
respecte ce modèle dans ce cas on accepte la valeur sinon une exception
ExpIllegalleISBN (que vous devez créer) doit être déclenchée. (2pts) Un emprunteur est
identifié par son CIN, téléphone, adresse, adresse mail. Dans le cas d’un
étudiant on ajoute le niveau d’étude et spécialité étudier. Pour le cas d’un
professeur on ajoute la spécialité enseignée. 5. Créer une classe abstraite emprunteur. Prévoir un
constructeur sans paramètres, un autre qui reçoit tous les paramètres.
Ajouter la méthode toString(). (2pt) 6. Créer les deux classes Etudiant et Professeur par
héritage de la classe emprunteur. Ajouter toString() a ces deux classes.
(1,5pts) 7. Créer une
expression régulière pour vérifier que le champ CIN commence par une ou
deux lettres majuscules suivie de six chiffres au maximum. (1pt) Un Emprunt est effectuée
par un emprunteur (étudiant ou professeur) il concerne un
Document. Chaque emprunt est identifiée par un numéro (un champ
compteur qui s’incrémente automatiquement), l’emprunteur, le document
concerne, date début, date fin, un montant symbolique de 2Dh par jour
pour le cas d’un étudiant et de 5Dh par jour pour le cas d’un professeur et
un champ retour de type booléen qui prend true lorsque l’emprunteur
retourne le document, par défaut ce champ est initialiser a false. 8. Créer la classe Emprunt.
Prévoir un constructeur sans paramètre et un autre avec tous les
paramètres. Ajouter toString(). (2 pts) 9. Créer une exception qui sera déclenchée si la durée
de l’emprunt dépasse cinq jours pour le cas d’un livre. (1pts) 10. Créer une méthode qui permet de
calculer le montant d’un emprunt. (2pts) 11. Créer une méthode qui permet de faire passer la
valeur de champ retour à true lorsque le document est retourné par l’
emprunteur. (1pt)
Pour gérer les emprunts on propose de créer la classe
EnsembleEmprunt qui contient une liste des emprunts L. 12. Créer la classe EnsembleEmprunt.
(1pt) 13. Prévoir une
méthode pour ajouter un emprunt a la liste L, vérifié que le document est
disponible pour la période demandée, sinon il faut refuser l’ajout. (3pts)
14. Créer une méthode qui
permet d’afficher, pour un emprunteur donné, les emprunts qu’il a
effectués le montant de chaque emprunt ainsi que le montant global.
(3pts) 15. Créer une
méthode qui permet de sérialiser dans un fichier les emprunteurs n’ayant
pas encore retourné les documents empruntés malgré que la date fin d’
emprunt est expire. (3pts) 16. Créer un main de test prévoir une liste de 8
documents, une liste de 3 emprunteurs, effectuer un ensemble d’emprunt.
Vérifier le cas de la question 15. (3pts).
Partie 3 : Programmation Événementielle :
(30pts)
Dans cette partie on va exploiter les classes de la partie II, on va créer une
interface graphique pour l’application. 1. Créer une feuille MDI avec un menu qui contient
un élément pour chacune des questions suivantes (3pts) 2. Créer une feuille qui permet d’ajouter
un document a la liste des documents. (3pts) 3. Créer une feuille qui permet d’ajouter un
emprunteur a la liste des emprunteurs. (3pts) 4. Créer une feuille qui permet d’effectuer un
emprunt. L’utilisateur doit effectuer les tâches suivantes : (8pts) a.
Sélectionner l’emprunteur dans une liste déroulante. b.
Choisir date début et date fin de l’emprunt. c. Le programme va remplir une
liste des documents disponible pour la période choisie. d. Une
fois le document est sélectionné un bouton « confirmer » s’active
sur lequel on peut cliquer pour valider l’emprunt. 5. Créer une feuille contenant une
dataGridView dans laquelle on peut charger le contenu de fichier de la
question 15 de la partie II. (5pts) 6. Créer une interface pour effectuer des recherches
multicritères sur des documents en respectant le modèle suivant
(8pts) Pratique 2013 Examen Passage Variante 5 - TDI L’utilisateur
peut activer un ou plusieurs critères de recherches dans la zone « critères
de recherche ». Une fois un critère activé sa zone de texte pour saisir la
valeur ou la liste déroulante pour le cas de Spécialité doit être activé. Le contrôle dataGridView contient le résultat de
recherche, ce résultat change chaque fois qu’on modifier la valeur d’un
critère.
Les Examens de Passage - Pratique 2013 -
Les Variantes (3, 4, 6)
Variante 6 :
Partie 1 : Programmation Structurée : (20pts)
Exercice 1 : (6 points) Ecrivez une fonction qui calcul le nième terme de
la suite suivante : U0 = 1 ; U1 = 1 ; Un +1 = Un + (Un-1)/n Exploiter cette fonction dans un programme
pour placer les dix premiers termes de la suite précédente dans un
tableau.
Exercice 2 : (6
points) Ecrire une
fonction qui remplace dans un tableau chaque entier par la plus
grande valeur qui le précède dans le tableau, si cette valeur existe. Si ce n’
est pas le cas, la nouvelle valeur sera la même que l’ancienne. Par exemple
si la fonction reçoit le tableau suivant : Pratique 2013 Examen Passage Variante 6 - TDI Exercice 3 :(8
points) Rot13 est une technique de cryptage
dont le principe consiste à exercer une rotation de l’alphabet de 13
positions vers l’avant. Cette transformation ne concerne que les
majuscules et minuscules non accentuées. Les lettres accentuées, les
nombres et tous les autres signes demeurent inchangés. Par exemple
‘a’ est transformé en ‘n’, ‘g’ en ‘t’, ‘z’ en ‘m’ etc … Une transformation similaire s’applique aux majuscules : ‘A’ en ‘N’
etc… 1. Ecrire la fonction char *
Crypter(char *s) qui permet de retourner le résultat de
cryptage de la chaine s selon le principe de Rot13. Tester cette
fonction. 2. Ecrire la fonction char *
Decrypter(char *s) qui permet de décrypter un message s. Tester
cette fonction.
Partie 2 : Programmation Orientée Objet :
(30pts)
L’objet de cette application est la gestion informatisée d’une entreprise de
location de matériels informatiques. La location concerne soit des
Ordinateurs ou des imprimantes. Chaque matériel est identifié par
une référence, marque et une date d’achat. En plus pour les Ordinateurs
on mémorise type de microprocesseur, capacité de disque dur, et la
capacité de la RAM. Pour le cas d’une imprimante on mémorise la vitesse
d’impression, technique d’impression utilise (jet d’encre, laser, …) 1. Créer la classe Abstraite «
Materiel ». Prévoir un constructeur sans paramètres, un constructeur avec
tous les paramètres, les méthodes d’accès (les get et set ) ainsi que la
méthode toString(). (2pts) 2.
Créer les deux classes Ordinateur et Imprimante par héritage de la classe
Materiel . Ajouter toString() a ces deux classes. (1,5pt) 3. Créer une nouvelle exception
ExpIllegalleMicroPro qui sera déclenchée si on veut affecter à la propriété
microprocesseur une valeur autre que i3, i5 ou i7. (1pts) 4. La référence d’un matériel
contient deux lettres (PC : pour ordinateur et PR pour imprimante) suivi
de huit chiffres. Créer une expression régulière qui permet de vérifier si la
référence respecte ce modèle dans ce cas on accepte la valeur sinon une
exception ExpIllegalleReference (que vous devez créer) doit être
déclenchée. (2pts) Un
organisme qui loue le matériel informatique est identifié par son
téléphone, adresse, adresse mail.
Dans le cas d’un organisme à but non lucratif
comme des écoles ou des associations on ajoute une propriété qui indique
l’activité de l’organisme. Pour le cas d’une entreprise on ajoute le numéro
de registre de commerce. 5.
Créer une classe abstraite Organisme. Prévoir un constructeur sans
paramètres, un autre qui reçoit tous les paramètres. Ajouter la méthode
toString(). (2pt) 6. Créer les
deux classes OrganismeNonLucratif et OrganismeEntreprise par héritage
de la classe Organisme. Ajouter toString() a ces deux classes. (1,5pts) 7. Créer une expression
régulière pour vérifier que le champ numero de regitre de commerce
commence par une lettre majuscule suivie d’exactement neuf chiffres.
(1pt) Une location est
effectuée par un organisme elle concerne un matériel. Chaque location est
identifiée par un numéro (un champ compteur qui s’incrémente
automatiquement), l’organisme ayant effectué la location, le matériel
concerne, date début, date fin, le montant de location par jour, et un
champ retour de type booléen qui prend true lorsque l’organisme retourne
la matériel, par défaut ce champ est initialiser a false. 8. Créer la classe location. Prévoir un
constructeur sans paramètre et un autre avec tous les paramètres. Ajouter
toString(). (2pts) 9. Créer
une exception qui sera déclenchée si la durée de la location ne dépasse pas
sept jours. (1pts) 10. Créer
une méthode qui permet de calculer le montant d’une location. (2pts) 11. Créer une méthode qui
permet de faire passer la valeur de champ retour à true lorsque le materiel
est retournée par l’organisme. (1pt)
Pour gérer les locations on propose de créer
la classe EnsembleLocation qui contient une liste des locations L. 12. Créer la classe
EnsembleLocation. (1pt) 13.
Prévoir une méthode pour ajouter une location a la liste L, vérifié
que le matériel objet de la location est disponible pour la période
demandée, sinon il faut refuser l’ajout. (3pts) 14. Créer une méthode qui permet d’afficher, pour un
organisme donné, les locations qu’il a effectuées, le montant de chaque
location ainsi que le montant global. (3pts) 15. Créer une méthode qui permet de sérialiser dans
un fichier les organismes n’ayant pas encore retourné le matériel loues
malgré que la date fin de location est expire. (3pts) 16. Créer un main de test prévoir une
liste de 6 ordinateurs, 3 imprimantes une liste de 3 organismes, effectuer
un ensemble de location. Vérifier le cas de la question 15. (3pts).
Partie 3 : Programmation Événementielle :
(30pts)
Dans cette partie on va exploiter les classes de la partie II, on va créer une
interface graphique pour l’application. 1. Créer une feuille MDI avec un menu qui contient
un élément pour chacune des questions suivantes.(3pts) 2. Créer une feuille qui permet d’ajouter
un matériel à la liste du matériel. (3pts) 3. Créer une feuille qui permet d’ajouter un
organisme à la liste des organismes. (3 pts) 4. Créer une feuille qui permet d’effectuer une
location. L’utilisateur effectuer les tâches suivantes : (8pts) a.
Sélectionner l’organisme dans une liste déroulante. b.
Choisir date début et date fin de la location. c. Le programme va remplir une
liste du matériel disponible pour la période choisie. d. Une
fois le matériel est sélectionné un bouton « confirmer » s’active sur
lequel on peut cliquer pour valider la location. 5. Créer une feuille contenant une dataGridView dans
laquelle on peut charger le contenu de fichier de la question 15 de la partie
II. (5pts) 6. Créer une
interface pour effectuer des recherches multicritères sur du matériel en
respectant le modèle suivant. (8pts) Pratique 2013 Examen Passage Variante 6 - TDI Categories peut prendre soit ordinateur ou imprimante. L’utilisateur peut activer un ou plusieurs critères
de recherches dans la zone « critères de recherche ». Une fois un critère
activé sa zone de texte pour saisir la valeur ou la liste déroulante pour le
cas de Categories doit être activé. Le contrôle
dataGridView contient le résultat de recherche, ce résultat change chaque
fois qu’on modifier la valeur d’un critère.
Télécharger Les Examens de Passage - Pratique 2013 - Les Variantes (4, 5, 6) :