Sie sind auf Seite 1von 7

{r OFPPT

--3,Jr
jl t3o1r'ri-*Jt,i t 5;5,
office de la Formation Professionnelle et de la Promotion du Travail

Examen de passage la 2"'anne

Session Juillet 2014

Filire : Techniques de Dveloppement Informatique Epreuve; Synfhse


Niveau: TS Variante: Vl
Dure : 5 heures Barme : / 120Pts

{. Parlie I : Thorie (a0 pts)


F Dossier 1: Notions de mathmatiques appliques I'informatique (12 pts)
. Exercice 1: (6 pts)

NB : la calculatrce est strictement interdite.

Complter le tableau suivant:

1010n00

. Exercice 2: (6 pts)

Soit la fonction logique suivante:

Q(k, I,m,n) = mln + m-Fi * Imn


l- Simplifier analyriquement la fonction logique e. e pts)
2- Consrruire la table de vrit. (2 pts)
3- Simplifier avec la mthode de Karnaugh ra fonction logique
e. (2 pts)

F Dossier 2: Techniques de programmation structure (16 pts)

' Exercice 1: Vrilication d'un tableau tri (g pts)

Ecrire une fonction "est tri|" permettant de vrifier si un tableau de relles T de taille N
(passs en argument de cette fonction) est trie ou non. La fonction
doit renvoyer I'un des trois
messages: <<tr croissant>>, <<tr dcroissant )) ou ( non tri >. Faites upp"i
a cette fonction
dans un algorithme donnant le droit l'utilisateur de rempli un tableau
avec N valeurs.

Filire Epreuve
TDI Svnthse VI
Sesson
l/7
Juillet 2011
Exemple:

Donner le nombre des lments du tableau:


4
Donner les lments du tableau:
-15.33
-8.54
-3.68
19.75
Votre tableau est tri croissant.

Exercice 2: Le cerf-volant (8 pts)

Ecrire une procdure "cerf volantQ" permefiant de dessiner un cerf-volant dont la taille N est
passe en paramtre de la procdure. Faites appel cette procdure dans un algorithme donnant
le droit I'utilisatew de saisir la taille du dessin qui doit tre paire.

Exemple:

Donner la taille paire:


J
La taille doit tre paire!
Donner la taille paire:
8

/l\
/t\
/ | \
ft\
I
\I/
\t/
\t/

Dossier 3: Conception et modlisation d'un systme d'information (12 pts)

Conception d'un systme d'information pour une socit informatique

Une grande socit de fabrication de produits informatiques souhaite raliser un site web, permettant
de
prsenter ses produits la clientle. La socit a plusieurs filiales installes dans plus
d'une cinquantaine
de pays travers le monde, rparties sur 8 zones gographiques: Amrique du nord, Amriqe
latine,
E*9,p:' Afrique, Moyen-Orient, Asie, Extrme-Orient et Auitralie. Dans sa politique commrciale, la
socit propose pour chaque pays un ensemble de produits s'adaptant au pouvoir d'ahat des
citoyens du
pays.

L'interface du site web permet de rediriger automatiquement un internaute sw la page de son pays pogr
avoir accs la liste des produits disponibles dans son pays. Les produits quant ux sont rpertries
sous plusieurs catgories (par exemple: Ordinateurs, 1mprimanies,...). On choisissant la atgorie
"Ordinateurs" par exemple, l'intress sera appel choisir entre "Postes de travail", "Ordinateurs
portables",.... Par contre, il y a des catgories comme "scanners" o I'utilisateur
se voit d1ectement
devant la liste de produits sans avoir passer par un deuxime choix.

La socit donne aux clients de certains pays le droit d'effectuer des achats directement partir du site.
Pour effectuer un achat, le client doit s'enregistrer dans le site en fournissant son nom et prnom,
son
adresse, sa ville ( partir d'une liste droulante), son code postal (gnr automatiquement
aprs slection
Filire Epreuve Session
TDI 2t7
Svnthse Vl Juillet 2014
de la ville), son numro de tlphone et son e-mail. L'enregistrement ne se valide sauf si le client achte
au moins un produit, en spcifiant la quantit achete du produit.

l- Etablir le dictionnaire de donnes. (3 pts)


2- Etablir le modle conceptuel de donnes. (6 pts)
3- Etablir le modle logique de donnes. (3 pts)

{. Partie II: Pratique (80 pts)

D Dossier 1: Langage de programmation structure (20 pts)


. Exercice 1: (10 pts)

Soit le programme C suivant :

#incl-ude <stdio. h>


#include <ctype. h>
int main ( )
t
FLE *fpi:fopen ( "c: \\ofppt\\test. txt", "r") ;
FILE *fpo:fopen("c:\\ofppt\\res.txt", "w"),.
r ni-
^.
for(; (c:fgetc(fpi) ) !: EOF;) {
if (c :: ' ') //test sur J.e earactre esp)ac,e
fputc ( '\n' , fpo) ;
el- se
fputc(((toupper(c) + 5 - 'A' ) Z 26 ) + 'A' , fpo);
)
getchar ( );
I

NB:

i' toupper c'est unefonction de la bibliothque ctype.h qui corwertit un caractre en


majuscule.
ii. Les codes ASCil des caractres de 'A' 'Z' sont ordonns. si le code de ,A' est une
valeur a alors celui de 'B' est a +1,... celui de ,2, est a + 25.

Le fichier ( test.txt > contient le texte suivant:

onjour JE vous souhaite B0NNE chance

a. Quefournitl'expression:( ((toupper(c) + 5 - 'A,)226) +'A'>rpour


les valeurs suivantes de C : 'B', ,L', ,y, et,Z,. C,estquoi donc le rle de cette
expression. (4 pts)
b. Quel est le contenu de fichier ( res.txt > aprs excution du programrne. (6 pts)

Filire Eoreuve Session


TDI 3t7
Svnthse Vl Jallet 2014
' Exercice 2 : (10 pts) : Quel est le rsultat d'affichage du programme suivant

#incl-ude <stdio. h>


int d.f i/in]- *lz\
{
int x:6;
printf("Debut gct : x=%d, *k=?d\n", X,*k); //2 p1gs
x=* k+1;
printf("fin gct: x=?d, *k:?d\n",x, *k); // 2 p1-;s
rtrlrhlw * *lr\ '

)
void fct(int n, int *m)
{
printf("Debut fct n:%d, *m=?d\n", n, *m); //L pE
n:*m+?.
*m:gql (&n) ;
printf("Fin fct n=?d, *m:*d\n", n, *m); //2 pis
)
int main ( )
i
int a=5, b:3;
printf("Debut main a=?d, b:?d\n", a, b); //L pt
fct (a, &b) ;
printf("Fin main a:?d, b=?d\n", a, b); //2 pts
getchar ( ) ;
]

) Dossier 2: Programmation oriente objet (35 pts)

Dveloppement d'une application oriente objet pour la socit informatique

on souhaite dvelopper une application oriente objet I'instar du systme conu pour la socit de
fabrication des produits informatiques. L'applicatiorcontiendra plusieurs classes dont tous les
attributs
doivent te privs, ce qui implique le bsoin de coder des accesseurs dans toutes les classes.
Les
accesseurs des attributs affectes automatiquement doivent te en lecture seule.
Chaque classe doit avoir
un constructeur d'initialisation, et une mthode "ToStringe".

On suppose que les classes suivantes sont dj cres :

Cl4qge '.'Zpner' : Ayant comme attributs un identifiant pow la zone gographique (entier
positif qui s'incrmente automatiquement), et le nom de la zone gosaohioue
public class Zone
{
private uint fdZone;
priwate strlng NomZone;
private static uint auto,.

. Classe ttPaystt : Ayant comme attributs un identifiant pour le pays (entier positif qui
s'incrmente automatiquement), Ie nom du et sa zone
public class pays
{
priwate uint Idpays;
private string Nompays;
private Zone zone,.
private stati-c uint auto;l

Filire Epreuve Session


TDI 4/7
Svnthse VI Juiilet 2014
' Classe "Villett : Ayant comme atfibuts un identifiant pour la ville (entier positif qui
s'incrmente automatiquement), le nom de la ville, son code postal (entier positif) et le pays o
se situe la ville.
pubJ.ic class Ville
{
priwate uint IdVil_l_e;
private string NomVill_e,.
private uint Codepostal_ ;
private Pays pays;
private static uint auto;)

Classe "Catgoriert : Ayant comme attributs un identifiant pour la catgorie (entier positif
qui s'incrmente automatiquement), le nom de la catgorie, et la catgorie parente, et un 2tt"
constructeur avec un seul paramte (nom de la catgorie).

public class Catgorie


{
priwate uint IdCatgorie;
private strlng NomCatgorie;
priwate Catgorie catgorle;
private static uint auto;)

Cjasqe t'Produit" :
Ayant comme attributs un identifiant du produit (entier positif qui
s'incrmente automatiquement), le nom du produit, son prix et sa catgorie.

pubJ-ic class produit


{
private rr i nf TDrar'.i + .
priwate string NomProdui_t;
private f I nrf Dri vD'^^" i + ,
private Catgorie catgorie;
private static uint auto;l

Vous devez rpondre aux questions suivantes :

l- Dans la classe "Pays", ajouter un nouvel athribut "Produits_disponibles" qui sera une liste
gnrique des produits disponibles dans le pays. (2,5 pts)
2- Dans la classe "Pays", ajouter une mthode "AjouterProduit(produit)" permettant
d'ajouter un nouveau produit la liste des produits disponibles dans l puyt. nJ.*ception
est leve si le produit est dj existant (produit ayant le mme identifiant). (f,S pts;
3- Dans la classe "Pays", ajouter une mthode "SupprimerProduit(identiilani produit)"
permettant de supprimer un produit en fournissant son identifiant. Une exception est leve
si l'identifiant du produit est inexistant. (3,5 pts)
4' Dans la classe "Pays", ajouter une mthode "string ListerProduitse" permettant de lister
les produits disponibles dans le pays. (2,5 pts)

. Classe "Achat"
5- Crer une classe "Achat" ayant comme attributs le produit achet, la quantit achete, et la
date d'achat (affecte automatiquement par la date systme). (3,5 pts)
6- Ajouter une mthode "MontantAchatQ" permettant de calculer le montant d'un achat. (2,5 pts)

Filire Epreuve Session


TDI 5/7
Svnthse VI Juillet 2014
Classe ttClient"

7- Crer une classe "Client" ayant comme attributs un identifiant du client (entier positif qui
s'incrmente automatiquement), son nom et son prnom, son adresse postale, sa ville (de
type "ville") son numro de tlphone, son adresse e-mail et la liste des achats qu'il a
efflectues. (4 pts)
8- Ajouter une mthode "AcheterProduit(achat)" permettant d'ajouter un achat la liste des
achats du client. (3 pts)
9- Ajouter une mthode "string ListerAchats(date_dbut, date_Iin)" permettant de lister
les achats effectus par le client ente une date de dbut et une date de fin. (4 pts)

Classe "Client Fidle"


Un client fidle "est un client" qui s'adhre au systme de fidlisation de la socit en payant un
montant annuel pour I'abonnement, ce qui lui permet de bnficier d'un numro de fidlit et
avoir une rduction de25Yo sur ses achats.

t0- Crer la classe "Client Fidle" ayant comme atbibuts un numro de fidlit (entier positif
qui s'incrmente automiqu"."nt;. (3 pts)
l1- Redfinir la mthode "AcheterProduit(achat)" permettant d'ajouter un achat la liste des achats
du client aprs avoir appliqu une rduction de 25o sur le prix du produit achet. (3 pts)

F Dossier 3: Programmation vnementielle (25 pts)


NB : Dans ce dossier, on vous demande de donner uniquement le code mettre I'intrieur des
mthodes vnementielles. L'entte de ces mthodes vnementielles n'est pas demand !

Soit le formulaire suivant nomme "Liste des achats":

l- Dans le code du formulaire on a dclar un objet de type "Client":

Ciient cl;

Dans la mthode de chargement du formulaire on a instanci l,objet "client":

cI' s nw {liert("1-A}1l", "hned", "'15" Rue Riad, tu, ounnS.a', rabt, '06g9741J11", "a1.arai{ruall,raa");

Filire Epreuve Sesson


TDI 6t7
Svnthse VI Juihet 2014
Ajouter dans la mthode de chargement du formulaire, le code permettant d'afficher I'en-tte du
formulaire comme ce qui est indiqu dans l,image ci-dessus. (5 ptsj

Ecrire le code du bouton "Afficher" permettant d'afficher la liste des achats du client ,'c1",
effectues entre une date de dbut et une date de fin, slectionnes par I'utilisateur (voir image ci-
dessus). (8 pts)

3- Ecrire le code du bouton "Sauvegarder" qui permet d'enregistrer la liste des achats du client "cl",
effectues entre une date de dbut et une date de fin, slectionnes par l'utilisateur (voir image ci-
dessus) dans un fichier objet (snalisation) qui porte le nom < AchatiAlu-l.dut >. (g pts)

Ecrire Ie code du bouton "Effacer" permettant d'effacer le contenu du composant graphique


reprsentant la liste, et d'initialiser les slectionneurs des dates la date systme. (4 pts)

Filire Epreuve Session


TDI 7t7
Svnthse VI Iuillet 2011

Das könnte Ihnen auch gefallen