Académique Documents
Professionnel Documents
Culture Documents
Organisation non gouvernementale dote du statut participatif auprs du Conseil de lEurope NGO enjoying participatory status with the Council of Europe
UE D - TECHNIQUES PROFESSIONNELLES
Corrig
Type dpreuve : QCM et Exercice pratique Dure : 3 heures Session : Juin 2012
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
1/ QCM : 45 minutes
3. Pour avoir un commentaire sur une ligne dun code Java, on place en dbut de ligne :
a. b. c. d. /**/ // # %
6. En langage Java, pour dclarer une variable de type boolen de valeur Vrai on crit :
a. b. c. d. boolean bool = new bolean(true) ; enum boolean = {true, false} ; boolean bool = true ; int bool = 1 ; boolean bool = true;
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
2/16
9. Quel mot cl utilise-t-on dans la dclaration dune mthode pour lempcher dtre redfinie ?
a. b. c. d. finally const private final
12. Une volution de la notion de module, permettant de runir au sein dun classifieur la structure et le comportement dun type donne, serait :
a. b. c. d. hritage interface polymorphisme encapsulation
13. Le mot rserv native utilis dans une dclaration dune mthode en java permet de :
a. b. c. d. spcifier que le corps de la mthode se trouve dans un autre fichier java indiquer que laccs la mthode nest permis qu la classe dans laquelle elle est dfinie indiquer que cette mthode n'est pas code en Java spcifier que la mthode est lorigine code en Java
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
3/16
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
4/16
24. Soit @s = (10,1,2,"age",20), que rsulte de cette affectation : ($a, @t, @u, $b) = @s; ?
a. b. c. d. a = 10, @t = (1,2,"age",20), @u = (), $b = undef. $a = undef, @t = (10,1,2,"age"), @u = (), $b = 20. $a = undef, @t = (10,1,2), @u = ("age",20), $b = undef. $a = 10, @t = (1), @u = (2,"age"), $b = 20.
25. Soit @t=(1,7,8,4,3,0) quelle est la valeur de @t aprs lexcution de linstruction : unshift(@t,5,6); ?
a. b. c. d. @t=(1,7,8,5,6). @t=(1,7,8,4,6,3,0). @t=(1,7,8,4). @t=(5,6,1,7,8,4,3,0).
28. Sachant que : attributs== 130 et vrai == 0, que vaut nombre aprs ces deux itrations : nombre = (vrai || attributs >= 100) ? 20 : 30; nombre = (nombre == 20 && (vrai && attributs >= 100)) ? 40 : 50;
a. b. c. d. 20 30 40 50
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
5/16
30. Combien de fois le message "Bonjour" sera-t-il affich ? int compteur = 15; do { printf("Bonjour\n"); compteur++; } while (compteur < 15);
a. b. c. d. 0 14 1 15
31. En UML, le diagramme qui prsente les instances de classes utilises dans le systme est le diagramme :
a. b. c. d. de classes de composants dobjets de dploiement
33. Quel est lintrus ne rentrant pas dans la modlisation dun diagramme UML ?
a. b. c. d. objet entit nud paquetage
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
6/16
40. Quel est le souci avec les outils logiciels de modlisation UML ?
a. b. c. d. aucun d'entre eux ne respecte strictement aucune des versions dUML il ny a aucun outil logiciel de modlisation UML il ny a aucun souci, plusieurs outils existent et sont conformes la version UML 2 leurs pictogrammes ne sont pas normaliss
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
7/16
48. Quelle tape ne fait partie du processus de conception dune base de donnes ?
a. b. c. d. le passage du schma logique vers le schma physique analyse des donnes et construction du dictionnaire mise en relation des entits et dduction du schma structuration des donnes et dtermination des entits et associations
49. Quel mot cl doit-on utiliser pour rcuprer des enregistrements sur plusieurs tables ?
a. b. c. d. multiset union join ALL
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
8/16
Question 2 Ecrivez en Perl le programme correspondant, qui affiche la fin la liste des noms des fichiers qui contiennent le mot recherch ainsi que le nombre doccurrences de ce mot et les numros de lignes o il apparait.
32 points use strict vars; unless (@ARGV) { print ("Question 2 : recherche de mot, ses occurrences et numros de lignes \n"); exit(); } my $mot = $ARGV[0]; my %GrepResult=(); my %Sorted=(); # Constitution du tableau associatif # (la clef est le nom des fichiers qui contiennent le mot recherch). Grep(.); # Constitution dun hash dont la clef est le nombre doccurrences # et la valeur est une liste des fichiers qui contiennent ce mot nb_occurrences fois. foreach (keys(%GrepResult)) { my @liste = @{$GrepResult{$_}}; my $nb = $liste[0]; push(@{$Sorted{$nb}}, $_); } # Prsentation du rsultat dans lordre dcroissant. my $occur; foreach $occur (sort {$b <=> $a} (keys(%Sorted))) { foreach (@{$Sorted{$occur}}) { # $_ contient un nom de fichier qui contient le mot recherch $occur fois. my @liste = @{$GrepResult{$_}}; print ("$_ $liste[0] @{$liste[1]} \n"); } } sub Grep () { my ($Dir) = @_; my (@fichiers,$fic); opendir(DIR,$Dir) || return(0); @fichiers=readdir(DIR);
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
9/16
closedir(DIR); foreach $fic (@fichiers) { if (($fic ne ".") && ($fic ne "..")) { if (-d "${Dir}/$fic") { Grep("${Dir}/$fic"); } else { unless (open(FIC,$fic)) { print ("Impossible douvrir $fic : $! \n"); next; } my $lig = 0;; while (<FIC>) { my $count = 0; $lig++; my $chaine = $_; if (/$mot/) { while ($chaine =~ $mot) { $count++; $chaine = $; } ${$GrepResult{$fic}}[0] += $count; push(@{${$GrepResult{$fic}}[1]},$lig); } } close(FIC); } } } }
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
10/16
4) Le pre tente de crer un fils. Sil ne parvient pas il se termine. Sinon, il affiche i =8, j=24. Le fils affiche i=12, j=36 5) Le pre tente de crer 5 fils. Sil parvient, il se transforme en prog. Sinon il se termine. Les fils crs se transforment en prog.
Question 4 Que donne lexcution du code PHP suivant ? Ecrivez un code PHP qui affiche les Types de familles existant dans le fichier XML famille_atome.xml . Ecrivez un code PHP qui apporte certaines modifications sur le fichier famille_atome.xml : - supprimer lattribut type de llment famille , - modifier le contenu de llment atome de faon ce que la valeur de llment Nom contienne : la valeur de llmnet nom + la valeur de llment symbole entre parenthse : <nom> Nom_atome (symbole_atome) </nom>, - supprimer les lments symbole , numero et masse et leurs contenus.
31 points : 13 points pour lexcution du code PHP 8 points pour le code PHP affichant les types de famille 10 points pour la modification du fichier famille_atome.xml (2 points pour chaque instruction en rouge) Lexcution du code PHP donne : symbole : He, nom : hlium symbole : Ne, nom : non symbole : Ar, nom : argon symbole : Li, nom : lithium symbole : Na, nom : sodium symbole : Be, nom : brillium symbole : Mg, nom : magnsium symbole : B, nom : bore symbole : C, nom : carbone symbole : N, nom : azote symbole : O, nom : oxygne symbole : F, nom : fluor symbole : Si, nom : silicium Le code PHP affichant les types de famille est <?php $document = simplexml_load_file('famille_atome.xml'); foreach ($document->famille as $famille) echo "type : {$famille['type']}<br>"; ?>
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
11/16
Modification du fichier famille_atome.xml. <?php $document = simplexml_load_file('famille_atome.xml'); foreach ($document->famille as $famille) { unset($famille['type']); foreach ($famille->atome as $atome) { $atome->nom = "{$atome->nom} ({$atome->symbole})"; unset($atome->symbole); unset($atome->numero); unset($atome->masse); } } ?>
Question 1 Dduisez le schma relationnel de la base de donnes correspondante. Vous prciserez les cls primaires des relations en les soulignant ainsi que les cls trangres en les signalant par un # et en prcisant quoi elles font rfrence. Vous donnerez des explications claires et concises du passage au relationnel. Vous prciserez notamment pourquoi et comment vous crez ou modifiez certaines relations (1 ligne maximum par relation).
100 points : 36 points pour les relations (4 points par relation : 9 relations) 28 points pour les attributs souligns de la cl primaire (2 points par attribut) 18 points pour les attributs prcds de # indiquant la cl trangre (2 points par attribut) 18 points pour les explications concernant la cration de chaque relation (2 points par explication) Le modle relationnel dduit de la modlisation ci-dessus est le suivant. Les cls primaires sont soulignes. Les cls trangres sont prcdes d'un '#'. Client(ClientID, Nom, Prnom, Adresse, DateNaissance) Cette relation est dduite du passage au relationnel de l'ensemble d'entits (ou classe) CLIENT. CD-ROM(CdRomID, Editeur) Cette relation est dduite du passage au relationnel de l'ensemble d'entits (ou classe) CD-ROM. Question(QuestionID, Intitul, Rponse, NiveauDifficult, Thme) Cette relation est dduite du passage au relationnel de l'ensemble d'entits (ou classe) QUESTION. Serie(SerieID, #CdRomID) Cette relation est issue du passage au relationnel de l'ensemble d'entits (classes) SERIE. En modlisation E/A, l'ensemble d'entits Serie tant un ensemble d'entits faibles de CD-ROM, la cl primaire de la relation Serie est compose de l'identificateur de la srie et de l'identificateur du CD-ROM auquel la srie appartient.
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
12/16
ContenuSerie(#QuestionID, #SerieID, #CdRomID, Numro) Cette relation est dduite du passage au relationnel de l'association CONTIENT. Le couple d'attributs #CdRomID,#SerieID fait rfrence la cl primaire de la relation Serie. L'attribut #QuestionID fait rfrence la cl primaire de la relation Question. Il ne faut pas oublier l'attribut Numro qui caractrise l'association CONTIENT. Seance_Code(SeanceID, Date, Heure, #CdRomID,#SerieID) Cette relation est issue du passage au relationnel de l'ensemble d'entits (classes) SEANCE-CODE. Le couple d'attributs #CdRomID est une cl trangre qui fait rfrence la cl primaire de la relation Serie. Ce couple d'attributs a t ajout lors du passage au relationnel de l'association EST_DIFFUSEE_PENDANT, une seule srie (d'un CR-ROM donn) tant diffuse pendant une sance de code (cardinalit 1:1). Participation(#ClientID, #SeanceID, NombreFautes) Cette relation est issue du passage au relationnel de l'association ASSISTE_A. Les attributs #ClientID et #SeanceID sont des cls trangres qui font respectivement rfrences aux cls primaires des relations Client et Seance. En effet, un client peut assister plusieurs sances et, lors d'une sance, il y a plusieurs clients. Il ne faut pas oublier l'attribut NombreFautes qui caractrise l'association ASSISTE_A.
Examen_Code(PassageCodeID, Date, Heure, LieuExamen) Cette relation est dduite du passage au relationnel de l'ensemble d'entits (ou classe) EXAMEN_CODE. PassageCode(#PassageCodeID, #ClientID, NombreFautes) Cette relation est dduite du passage au relationnel de l'association EST_AUTORISE_A_PASSER. Les attributs #PassageCodeID et #ClientID font rfrence aux cls primaires des relations Examen-Code et Client.
Question 2 Ecrivez les requtes suivantes en SQL : 1) Clients ayant un compte et un emprunt La Rochelle 2) Clients ayant un compte lagence Paris-Etoile et nom de la ville o ils habitent 3) Emprunteurs de l'agence Paris-Rambuteau classs par ordre alphabtique 4) Nombre de clients de l'agence Paris-Bastille n'ayant pas leur adresse dans la relation CLIENT 5) Supprimez de la relation AGENCE toutes les agences sans client 6) Clients ayant un compte dans une agence o Claude a un compte 7) Clients ayant un compte dans au-moins une agence d'Orsay
100 points : 15 points pour la premire requte 10 points pour la seconde requte 10 points pour la troisime requte 10 points pour la quatrime requte 15 points pour la cinquime requte 20 points pour la sixime requte 20 points pour la septime requte Premire requte select CLIENT.Nom from CLIENT, AGENCE, COMPTE where CLIENT.Num_Client = COMPTE.Num_Client and AGENCE.Num_Agence = COMPTE.Num_Agence and AGENCE.Ville = La Rochelle intersect select CLIENT.Nom from CLIENT, AGENCE, EMPRUNT where CLIENT.Num_Client = EMPRUNT.Num_Client
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
13/16
and AGENCE.Num_Agence = EMPRUNT.Num_Agence and AGENCE.Ville = La Rochelle Deuxime requte Premire solution : select CLIENT.Nom, CLIENT.Ville from CLIENT, AGENCE, COMPTE where CLIENT.Num_Client = COMPTE. Num_Client and AGENCE.Num_Agence = COMPTE.Num_Agence and AGENCE.Nom = Paris-Etoile Deuxime solution : select Nom, Ville from CLIENT where Num_Client in ( select Num_Client from COMPTE where Num_Agence in ( select Num_Agence from AGENCE where Nom = Paris-Etoile)) Troisime requte select Nom from CLIENT where Num_Client in ( select Num_Client from EMPRUNT where Num_Agence in ( select Num_Agence from AGENCE where Nom = Paris-Rambuteau)) order by Nom Quatrime requte Premire solution : select count(*) from CLIENT where Ville = NULL and Num_Client in ( select Num_Client from COMPTE where Num_Agence in ( select Num_Agence from AGENCE where Nom = Paris-Bastille)) Deuxime solution : select count(*) from CLIENT, COMPTE, AGENCE where Ville = NULL and CLIENT.Num_Client = COMPTE.Num_Client and COMPTE.Num_Agence = AGENCE.Num_Agence and AGENCE.Nom = Paris-Bastille Cinquime requte delete from AGENCE where Num_Client not in ( select Num_Client from COMPTE where COMPTE.Num_Agence = AGENCE.Num_Agence) and Num_Client not in ( select Num_Client from EMPRUNT where EMPRUNT.Num_Agence = AGENCE.Num_Agence) Sixime requte Premire solution : select Nom from CLIENT, COMPTE where CLIENT.Num_Client = COMPTE.Num_Client and Num_Agence in ( select Num_Agence from CLIENT, COMPTE where CLIENT.Num_Client = COMPTE.Num_Client and Nom = Claude) Deuxime solution : select Nom from CLIENT where Num_Client in ( select Num_Client from COMPTE where Num_Agence in ( select Num_Agence from CLIENT, COMPTE where CLIENT.Num_Client = COMPTE.Num_Client and Nom = Claude))
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
14/16
Septime requte Premire solution : select Nom from CLIENT where Num_Client in ( select Num_Client from COMPTE where Num_Agence in ( select Num_Agence from AGENCE where Ville = Orsay)) Deuxime solution : select CLIENT.Nom from CLIENT, COMPTE, AGENCE where CLIENT.Num_Client = COMPTE.Num_Client and COMPTE.Num_Agence = AGENCE.Num_Agence and AGENCE.Ville = Orsay
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
15/16
GRILLE DE NOTATION - D41.2 Dveloppement : Exercice pratique NOM DU CORRECTEUR__________________________________ Prnom du correcteur___________________________________ N de candidat____________ Dossier Note attribue Observations obligatoires
/100
Dossier 2 - Modlisation, Conceptualisation & Bases de donnes relationnelles TOTAL Apprciation gnrale :
/200
/300
Je soussign,____________________, certifie avoir corrig la copie dexamens en suivant le corrig dexamens en ma possession et en respectant la procdure de correction des examens.
Signature :
Fdration Europenne Des Ecoles - European Federation of Schools - Juin 2012 UC D41.2 Dveloppement - Corrig
16/16