Modèle d'examen d'aptitude professionnelle — Avancement de grade dans le cadre d'ingénieur d'État — Ministère de l'Agriculture et de la Pêche Maritime 2007 — Informatique — Épreuve pratique (Sujet 1 seulement, pages 1 à 14 sur 15)
⬇️ Télécharger le PDF Adresse permanente : https://www.wadifa-info.com/fr/modele-concours/2744/modele-d-examen-d-aptitude-professionnelle-avancement-de-grade-dans-le-cadre-d-ingenieur
En bref
Ce document est une ancienne épreuve écrite du concours de avancement de grade dans le cadre d'ingénieur d'État organisé par Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes (2007), publiée sur Wadifa Info en consultation et téléchargement PDF gratuits, avec une correction proposée.
- Organisme
- Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes
- Grade
- avancement de grade dans le cadre d'ingénieur d'État
- Spécialité
- Informatique — épreuve pratique
- Année
- 2007
- Pages
- 14
- Langue des questions
- français
- Correction
- correction proposée disponible sur cette page
📝 Texte des questions (extrait automatiquement des pages scannées)
Ce texte est extrait automatiquement des images de l'épreuve et peut contenir des erreurs de lecture — les images ci-dessus font foi.
Royaume du Maroc Examen d’aptitude professionnelle pour l’avancement
=" Ministère de l’Agriculture et de la de grade dans le cadre d’Ingénieur d’Etat.
7 Pêche Maritime
Direction des ressources Humaines Session du 27 et 28 Octobre 2007
Option Informatique
Epreuve pratique
Durée: 4 heures. Coefficient : 5
Traitez, au choix, l’un des deux sujets suivants :
Sujet 1 : Etude de cas.
N.B : Cette étude de cas est présentée ici à titre purement didactique et n’a aucune relation avec
l'organisme cité.
| PRÉSENTATION oo. |
L'activité d’un centre régional ONE est essentiellement axée autour des branchements électriques
dans la région où il se trouve. Le centre sous-traite une partie de son activité en confiant à des
entreprises extérieures la réalisation des branchements chez les clients.
Le traitement d’un branchement se déroule en plusieurs étapes :
e l’enregistrement de la demande de branchement d’un client et la validation des
informations collectées,
e l’élaboration du devis correspondant à la demande,
e la gestion des plannings et la communication des dates et lieux des rendez-vous aux sous-
traitants,
e la réalisation des branchements par les sous-traitants,
e _l’enquête de qualité afin de mesurer le degré de satisfaction des clients ainsi que la qualité
du travail réalisé par les sous-traitants et par le centre ONE régional.
Pour organiser les branchements, la région est découpée en 701 (zones élémentaires
d'intervention). Une ZEI correspond à un secteur autour d’une ville principale.
On planifie chaque opération à réaliser en tenant compte d’une durée théorique appelée poids.
| DOSSIER 1 : GESTION DES BRANCHEMENTS ÉLECTRIQUES
À utiliser : annexes 1,2et3
Le centre ONE régional signe des contrats avec les sous-traitants. On enregistre le code, le nom et
l’adresse de chaque sous-traitant. Un contrat, identifié par un numéro, constitue un engagement
formel du sous-traitant d’intervenir chez le client ONE pour faire les installations.
Un contrat précise dans quelles 71 (annexe 3) un sous-traitant est susceptible d'intervenir. Pour
chacune de ces 751. le contrat précise les jours d'intervention possibles. Par exemple, le sous-
traitant « LUMIERE », au titre du contrat n° 385, peut intervenir tous les mardis et mercredis chez
les clients de la ZET « Attaouia » et tous les mardis, jeudis et vendredis dans la ZEI « Ras AI Ain ».
Un sous-traitant peut signer plusieurs contrats avec le centre ONE.
Il existe trois catégories de demande de branchement électrique : branchement neuf, branchement
provisoire ou modification du branchement actuel.
À chaque demande de branchement. le client doit compléter un dossier (annexe 1). Lorsque le
centre réceptionne ce document, il attribue une référence qui permettra d’identifier le dossier du
chient, puis il enregistre la date de la demande. Cette demande sera obligatoirement rattachée à une
71-1 lors de la création du dossier.
Page 1/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
Une demande de branchement entraîne plusieurs opérations caractérisées par un code, un libellé et
un poids. 11 a été répertorié deux catégories d'opérations : les opérations administratives et les
opérations techniques. Chaque catégorie est elle-même subdivisée en sous-catégories (annexe 2).
Une demande donne lieu à l’établissement d’un devis, daté et identifié par un numéro. Ce devis
informe sur le montant estimé des travaux, le nom, le prénom et le matricule de l’agent qui l’a
rédigé. Le branchement ne sera réalisé que si le client accepte le devis. Dans ce cas, on enregistre la
date d’acceptation. On n'établit jamais plus d'un devis pour une demande.
تب سيت L
| TRAVAIL À FAIRE
1.1 | Proposer un schéma entité-association représentant les informations nécessaires pour gérer les
| contrats des sous-traitants et les dossiers de demande de branchement électrique.
Page 2/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
| DOSSIER 2 : GESTION DES PLANNINGS |
À utiliser : annexe 4
Pour effectuer les installations, le centre régional ONE organise le planning des interventions des
sous-traitants. Chaque contrat de sous-traitant couvre un certain nombre de ZEI et indique les jours
d'intervention possibles.
Le centre régional dépend du centre informatique central de Casablanca qui héberge l’application
de gestion du planning. L’exploitation des données étant trop complexe, le responsable du centre
régional a décidé d’installer une nouvelle application utilisant une base de données locale. Un
extrait du schéma de cette base de données est présenté en annexe 4.
| 5 TRAVAIL À FAIRE
12.1 | Écrire les ordres SQL répondant aux questions suivantes :
| | a) Quelles sont les dates des journées entièrement pleines du contrat numéro 1632 ?
| b) Quels sont les noms des sous-traitants qui travaillent dans la ZEI de code « AT » ?
c) Quel est le (ou les) sous-traitant(s) ayant obtenu le plus grand nombre de rendez-vous (nom
du sous-traitant et nombre total de rendez-vous pris) ?
À la demande du responsable, la secrétaire établit l’état des disponibilités pour une journée et un
sous-traitant donnés. Ce document informe sur la charge restant à attribuer au sous-traitant le matin
et l'après-midi de la journée demandée, pour chacun des contrats intégrant cette journée dans les
disponibilités du sous-traitant.
Par exemple, le récapitulatif des disponibilités du sous-traitant LUMIERE pour le 13 Juillet 2007
prend la forme suivante :
DATE : 13/07/2007
| Nom du sous-traitant : LUMIERE
| Contrat n° :3
| | Charge restante MAT | Charge restante APM |
Contrat n° : 4
Charge restante MAT Charge restante APM
L قكيياة
Page 3/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
Pour automatiser l‘obtention de cet état, le responsable vous demande d’écrire une procédure
d’édition :
PROCÉDURE editEtatSousTraitant (nomSaisi : chaîne, dateSaisie : date)
| TRAVAIL À FAIRE
2.2 |Compléter la procédure editEtatSousTraitant qui permet d’obtenir l’état des disponibilités des
| sous-traitants.
Page 4/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
005511143 : MISE À JOUR DES RENDEZ-VOUS à |
À utiliser : annexe 5
Remarque : Les questions de ce dossier peuvent être traitées de manière indépendante.
Une base de données permet d’exploiter localement les informations concernant les rendez-vous.
Elle comporte entre autres une table RDV mémorisant l’ensemble des rendez-vous pris. Cette table
doit être mise à jour à partir des informations gérées par le centre informatique de Casablanca.
On envisage d’opérer la mise à jour de la table RDV de la manière suivante :
- Le centre informatique de Casablanca génère un fichier XML contenant les ajouts,
modifications et suppressions de rendez-vous à prendre en compte.
- Ce fichier est transmis chaque soir au centre régional de l’'ONE. |
- دنآ programme exploite ce fichier pour mettre à jour la table RDV de la base locale.
La classe GèreRDV (décrite en annexe 5) est dédiée à la réalisation de cette application. Elle est |
destinée à simplifier les opérations de mise à jour de la table RDV dans la base de données locale.
- Le second paramètre des méthodes ajouter et modifier est un objet de la classe Champs |
décrite en annexe 5. Dans la méthode ajouter, cet objet contient l'ensemble des champs à
l'exception du numéro de RDV (ce numéro est le premier paramètre). Dans la méthode
modifier, cet objet contient uniquement les champs dont la valeur doit être modifiée dans la
table.
- La méthode valeurFormatée(nomChamp, valeurChamp) retourne la valeur correctement
formatée en fonction du type du champ : valeurChamp pour les champs numériques,
valeurChamp encadrée par des quotes (apostrophes) pour tous les champs non numériques.
o valeurFormatée("chargeRdv"."45") retourne la chaîne 45 car chargeRdv est un
entier.
o valeurFormatée("nomClient", Hassan") retourne la chaîne "Hassan' car nomClient
est une chaîne.
- La méthode gefType retourne un caractère indiquant le type du champ dont le nom est passé
en paramètre : C pour chaîne, N pour numérique ou D pour date.
TRAVAIL À FAIRE
[3.1 | Écrire 18 méthode ge/NbChamps de la classe Champs.
13.2 | Ecrire la méthode va/eurFormatée de la classe GèreRDY.
[3.3 _| Écrire la méthode ajouter de la classe GèreRDV.
À utiliser : annexes 5,6et7
L'exploitation du fichier XML doit être réalisée par le programme majTableRDV. Ce programme
utilise les classes NoeudYXml et DocXml décrites en annexe 6 pour parcourir le contenu du
document XML et la classe GèreRDV décrite en annexe 5 pour réaliser les modifications dans la
table RDV (ajouts, mises à jour, suppressions).
Le fichier XML à exploiter se nomme modifsRdv.xml. Un exemple de ce fichier XML et le début du
programme "a; TableRdy sont fournis en annexe 7.
TRAVAIL À FAIRE
Compléter sur la copie, le programme majTableRDY.
Page 5
wadifa-info.com ل Au 9 x 50 Ca Ci jlall 7 Slai
DOSSIER 4 : GESTION DES COMMUNICATIONS AVEC LES SOUS-TRAITANTS
La mise en œuvre d’une nouvelle application est envisagée pour permettre aux sous-traitants de
consulter leur planning et d’enregistrer leurs indisponibilités. Cette application sera hébergée sur
un serveur web implanté selon le schéma ci-dessous.
| Es Routeur : NatPat et pare-feu
| 192.168.1.1 193.252.10.1
. لا ا
192.168.2.1
LE 5
مهرما
| Serveur web |) ] لق
éseau ON = mr à
— Sous-traitant
| TRAVAIL A FAIRE
| 4.1 | Indiquer l'adresse de la passerelle à paramétrer sur les différents ordinateurs du réseau ONE
| pour qu'ils communiquent avec le serveur web.
| 4.2 | Expliquer pourquoi le serveur web a été placé dans un réseau IP différent de celui des autres
| postes.
Le souci de l’ONE est d’assurer la sécurité des échanges avec les sous-traitants et notamment la
confidentialité et l'authentification. Le dispositif conseillé à l'ONE base sa sécurité sur une
méthode de chiffrement asymétrique des informations échangées. Le responsable du centre
régional de l’ONE souhaite en maîtriser le principe.
| 4.3 |Expliquer, éventuellement à l’aide d’un schéma, le mode de fonctionnement de cette |
méthode en précisant le type de clé utilisé par chacun des intervenants (émetteur et récepteur
du message) pour assurer confidentialité et authentification dans l’échange.
La mise en œuvre des techniques de chiffrement implique souvent un tiers de confiance,
prestataire de service.
BE TRAVAIL ÀFAIRE
14.4 |Expliquer comment ce tiers de confiance intervient dans la procédure d'échange |
| | d'informations. |
Le recours à un prestataire tiers de confiance est finalement rejeté, l'ONE décide de gérer en
interne le dispositif de sécurisation des échanges.
17777777 7 77 7
14.5 | Indiquer les conséquences de ce choix au regard de la qualité du dispositif.
Page 6/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
Annexe 1 : Extrait du dossier de deide de branchement
LL DEMANDE DE BRANCHEMENT ÉLECTRIQUE
Date de la demande : . /../
Cadre réservé à nos services Æ
| in Dossier : Es عل 71:1 | ل rattachement : الا
156071 7 كيام م 100170 امد ماسم لهااي مم ممم
COORDONNÉES ACTUELLES
ADRESSE een a. tee etes ie Va at none due ee dass Lusissssseaucess
ADRESSE DES TRAVAUX
NOM LOTISSEMENT never ls Maven see
TYPE DE LA DEMANDE
Cent CT Movies
Date emménagement Date début: .. /.. / ....
lee Date fin ES ان
| POUR UN BRANCHEMENT NEUF :
| COORDONNEES DES PROFESSIONNELS QUI VOUS ACCOMPAGNENT
DANS VOTRE PROJET DE CONSTRUCTION
VOTRE ELECTRICIEN
| VOTRE MAÎTRE D'ŒUVRE (éventuellement) _
LAPS وجو ne de اوه امم اموا ساطازاة ال ماما لاما ع اع ta جمدم متعاماء اماج ماما
SIGNATURE
Page 7/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
Annexe 2 : Extrait de la description des différentes opérations |
| NOMENCLATURE DES OPÉRATIONS
AD OPÉRATIONS ADMINISTRATIVES | Poids
AD1 | Front-Office |
| AD11_ | Demande de dossier d'un client 5710
| AD12 | Demande d'informations au client 10
| AD13 | Réclamation d'un client 15
AD14_| Demande RDV du client
Back-Office لل
AD21
AD22 Demande complément d'information 10 La sous-catégorie « Traitement dossier »,
AD23 | Traitement relance client 15 | codifiée AD3 est la troisième sous-
DEAN | اع اج ورا - عا د الا أ NS £ : A + A :
024 | Confirmation d'enregistrement | 10 | catégorie de la catégorie « Opérations
AD3 | Traitement dossier | administratives » codifiée AD.
| AD31_ | Étude branchement 45
32نم Planification des travaux | 5
IN OPERATIONS TECHNIQUES Poids L'opération « Planification des travaux »,
Branchement électrique codifiée AD32 est la deuxième opération
INTT | Récupération ligne "| 45 | de la sous-catégorie « Traitement
NZ موا فةو86 - - - - 0 -- 45 dossier ».
IN13 _| Dépose ligne | 25
| IN 2 | Contrôles techniques |.
LIN21 | Test branchement | 45 |
LIN22 Vérification Des ê 30
Annexe 3 : Liste des différentes ZEI (zones élémentaires d’intervention)
La région est découpée en 7101. Une 711 correspond à un secteur autour d’une ville principale.
اا الها ATtaouia
ER ا RAS Ain |
| SK SKhour
Page 8/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
Annexe 4 : Extrait du schéma relationnel de la base « Gestion des rendez-vous »
Les tables décrites ci-dessous ne permettent pas de répondre à tous les besoins de l'application,
mais elles suffisent pour répondre aux questions posées dans le dossier concerné.
SOUS TRAITANT (code, nom)
code : clé primaire
Représente tous les sous-traitants.
CONTRAT (numero, codeSousTraitant, nbTotRDVPris)
numero : clé primaire
codeSousTraitant : clé étrangère en référence à code de SOUS TRAITANT
Remarque :
e _ nbTotRDVPris : nombre total de rendez-vous pour l’année en cours
Représente tous les contrats passés avec les sous-traitants pour l’année en cours.
PLANNING (dateJournee, numeroContrat, chargeMAT, charge APM)
dateJournée, numeroContrat : clé primaire
numeroContrat : clé étrangère en référence à numero de CONTRAT
Remarques :
e chargeMAT correspond à la charge de travail affectée le matin ; elle est initialisée à zéro au
moment de la création et ne peut dépasser 240 minutes.
e _ chargeAPM correspond à la charge de travail affectée l’après-midi ; elle est initialisée à zéro
au moment de la création et ne peut dépasser 240 minutes.
Représente toutes les journées d’intervention planifiées à l’avance dans le cadre des contrats
passés pour l’année en cours.
Exemple : Si le mardi et le mercredi sont les jours d'intervention possibles dans le cadre du
contrat N, la table PLANNING contient, pour ce contrat, autant de lignes que de mardis et
de mercredis dans l’année en cours.
AFFECTER (codeZEÏT, numeroContrat)
codeZEI, numeroContrat : clé primaire
numeroContrat : clé étrangère en référence à numero de CONTRAT
Représente toutes les affectations de 7-1 à chaque contrat de l’année en cours.
Page 9/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
| Annexe 5 : Classe Champs, structure de la table RDV et classe GèreRDV
> Classe Champs
La classe Champs est destinée à la gestion d'un ensemble de champs d'une ligne de table
relationnelle (nom, valeur). Elle fonctionne globalement comme une collection de champs.
Classe Champs
PEVÉ
nbChamps : entier
Nombre de champs mémorisés
Public
procédure ajouter(unNom : chaîne, uneValeur : chaîne)
// Ajoute un champ de nom unNom et de valeur uneValeur
fonction getNbChamps() : entier
// Renvoie le nombre de champs mémorisés.
fonction getNom(unIndex : entier) : chaîne
// Retourne le nom du champ mémorisé à l'index unindex.
// Le premier champ est à l'index 0.
fonction getValeur(unindex : entier) : chaîne
//Retourne la valeur du champ mémorisé à l'index unindex.
// Le premier champ est à l'index 0.
procédure vider()
// Enlève l'ensemble des champs mémorisés.
Fin Classe
Exemple d'utilisation :
lesChamps : Champs
lesChamps > new Champs()
lesChamps.ajouter("ref","PO1")
lesChamps.ajouter("désignation","souris")
lesChamps.ajouter("prix","12,5")
afficher (lesChamps.getNbChamps()) // affiche 3
nomDuChamp, valeurDuChamp : chaîne
nomDuChamp > lesChamps.getNom(])
valeurDuChamp > lesChamps.getValeur(1)
afficher (nomDuChamp, " : ", valeurDuChamp) // affiche désignation : souris
> Structure de la table RDV
numRdv : entier
nomClient : chaîne
adresseClient : chaîne
telClient : chaîne
codeZei : chaîne
numeroContrat : entier
dateRdv : date
chargeRdv : entier
plageHoraire : chaîne
Page 10/15
wadifa-info.com ل AUD 5 &ô 50 je Ci jliall > ilaï
> Classe GèreRDV
Cette classe permet de mettre à jour la base de données du centre de Douvres. Elle opère les ajouts,
modifications et suppressions sur la table RDV.
Classe GèreRDV
1176ظ
fonction getType(nomChamp : chaîne) : caractère
Retourne un caractère indiquant le type du champ (C.N ou D).
fonction valeurFormatée(nomChamp : chaîne, valeurChamp : chaîne) : chaîne
/ا Retourne la valeur correctement formatée en fonction du type de champ.
procédure execSql(sql : chaîne)
// Exécute l'instruction SOL insert, update ou delete passée en paramètre.
Public
gèreRDV(chaineConnexion : chaîne)
// constructeur, permet entre autres de se connecter au SGDB en utilisant la
// chaîne de connexion passée en paramètre.
procédure supprimer(numéro : chaîne)
ا Supprime dans la table RDV le RDV dont le numéro est passé en paramètre.
procédure ajouter(numéro : chaîne, lesChamps : Champs)
Ajoute une ligne dans la table RDV. Le paramètre lesChamps regroupe, dans l’ordre,
// l’ensemble des champs de la table RDV, à l'exception du numéro passé dans le
// 1° paramètre.
procédure modifier(numéro : chaîne, lesChamps : Champs)
// Modifie une ligne dans la table RDV. Le paramètre lesChamps contient uniquement les
// champs qui doivent être modifiés pour le rendez-vous dont le numéro est passé dans le
// premier paramètre.
Fin Classe
Description de la méthode supprimer de la classe GèreRDV
procédure supprimer(numéro : chaîne)
// Supprime le RDV dont le numéro est passé en paramètre.
Début
requête : chaîne
requête > "delete from RDV where numRdv="
requête < requête + valeurFormatee("numRdv", numéro) // + : concaténation
execSql(requête)
fin
Exemple d'utilisation :
gRdv : GèreRDV
gRdv > new GèreRDV("Provider=interbase; BD=planning")
gRdv.supprimer("1215")
/ Supprime le RDV n° 1215 de la base du centre de Douvres.
lesChamps : Champs
lesChamps > new Champs()
lesChamps.ajouter("dateRdv", "10/04/2007")
lesChamps.ajouter ("chargeRdv", "45")
gRdv.modifier("1230", lesChamps)
// Utilise les informations contenues dans le paramètre lesChamps pour mettre à jour le
// RDV n° 1230. Cette instruction modifie donc les champs dateRdv et chargeRd.
Page 11/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
Annexe 6 : Terminologie XML, classe NoeudXmIl et classe DocXml
> Terminologie XML utilisée
Soit le fichier XML suivant :
| <p roduit ref="P0O1">
<désignation>souris</désignation>
<prix>12.5</prix>
</produit>
</catalogue> 3
- دنا nœud XML est un élément ou un attribut.
| - La racine du document XML ci-dessus est le nœud <catalogue>. Il s'agit d'un élément, son nom
| : 0 112 x 112 .
| est catalogue, Sa Valeur est vide. Cet élément possède un élément fils (le noeud <produit>).
- Le nœud <produit> est un élément. Son nom est produit, sa valeur est vide. 11 possède un
attribut (ref—"P01") et deux éléments fils (<désignation> et <prix>),
- Le noeud ref-"P01"est un attribut qui a pour nom refet pour valeur PO].
- Le nœud <désignation” est un élément de nom désignation et de valeur souris.
- Le nœud <prix> est un élément de nom prix et de valeur 72.5.
> Classe NoeudXml
Cette classe représente un élément ou un attribut XML.
Classe NoeudXml
Privé
nom, valeur : chaîne // nom et valeur du nœud.
Public
fonction getNom() : chaîne // retourne le nom du nœud XML.
fonction getValeur() : chaîne // retourne la valeur du nœud XML.
fonction nbFils() : entier
// Retourne le nombre d'éléments fils du nœud courant s'il s'agit d'un élément XML.
// Retourne -[ s'il s'agit d'un attribut XML.
fonction getFils(unIndex : entier) : NoeudXml
// Retourne l'élément fils d'index unindex si le nœud courant est un élément XML.
| // Le premier élément fils est à l'index 0.
// Retourne null si le nœud courant est un attribut XML.
fonction nbAttributs() : entier
/ Retourne le nombre d'attributs XML du nœud courant s'il s'agit d'un élément XML.
// Retourne -1 s'il s'agit d'un attribut XML.
| fonction getAttribut(unIndex : entier) : NoeudXml
// Retourne l'attribut XML d'index unIndex si le nœud courant est un élément XML.
// Le premier attribut est à l'index 0.
| // Retourne null si le nœud courant est un attribut XML.
Fin Classe
TL ب بلبب+»مجس٠77»7 7ب
Page 12/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
> Classe DocXml
Cette classe permet de parcourir un document XML après l'avoir chargé en mémoire.
Classe DocXml
Privé
Public
DocXml()
// constructeur
procédure charger(nomFichier : chaîne)
// charge l'objet DocXml à partir du fichier nomFichier.
fonction racine() : NoeudXml
// Retourne la racine du document XML.
Fin Classe
Exemple d'utilisation pour le parcours d'un document XML (pdts.xml) :
ل لل NS
| <catalogue>
<produit ref="Pp0l">
| <désignation>souris</désignation>
<prix>12.5</prix>
</produit>
<produit ref="Pp02">
<désignation>clavier</désignation>
: <prix>20</prix>
</produit>
</catalogue>
Le tableau ci-dessous montre la trace de l'exécution d'une série d'instructions.
[Instruction dt.nom | pdt.valeur |att.nom | att.valeur|nd.nom | nd.valeurl
|rac,pdt.att,n : NoeudXml | | تت تت ee |
|doc : DocXml ل ااا
ص06 سم عدا SNS M | ا
Ce ( | ل ا
806 006886360 ا أ NES ا اا اا
att € pdt.getAttribut(0)_| produit met _ 1 SERRE
nd © pdt.getFils(0) ____| produit ref [POI souris
nd € pdt.getFils(1) [produit | fref [POI [prix [125 |
Page 13/15
wadifa-info.com نماذج المباريات من موقع وظيفة إنفو
| Annexe 7 : Exemple de fichier modifsRdv.xml et début du programme majTableRdv
> Fichier modifsRdv.xml
<infoskRdv>
<rdv action="ajout">
<numRdv>1245</numRäv>
| <nomClient>Dubois</nomClient>
| <adresseClient>12 rue des fleurs 14000 Caen</adresseClient>
<telClient>0429784529</telClient>
| <codeZei>CA</codeZei>
| <numeroContrat>287</numeroContrat>
| <dateRdv>12/04/2007</dateRdv>
| <chargeRdv>50</chargeRdv>
<plageHoraire>mat</plageHoraire>
</rdv>
<rdv action="modif">
<numRdv>1230</numRdv>
| <dateRdv>10/04/2007</dateRdv>
| <chargeRdv>45</chargerdv>
| <plageHoraire>apm</plageHoraire>
| <rdv action="supp">
<numRdv>1215</numRdv>
</rav>
</infosRdv>
L'exécution du programme majTableRDV avec ce fichier aura pour effet :
- d'insérer le RDV 1245 (action="ajout"),
- de modifier le RDV 1230 (action="modif"),
- de supprimer le RDV 1215 (action="supp").
Remarques :
- Dans un élément <rdv action="ajout"> où <rdv action="modif">, les éléments fils
apparaissent toujours dans le même ordre que les champs de la table RDV.
- L'élément fils rumRdw est présent dans tous les éléments <rdv>, quelle que soit l'action.
- Le contenu du fichier modifsRdv.xml est automatiquement contrôlé lors de sa création et
peut donc être considéré comme fiable : il contient toujours au moins une action et chaque
action, selon son type, comporte au moins la valeur d'un champ.
> Programme majTableRdv
Programme majTableRdv
début
doc: DocXxml
doc + new Docxml )(
gRdv : GèreRDV
| gRdv € new GèreRDV("Provider=interbase;BD=planning")
racine : NoeudXml
ioc.charger ("modifsRdv.xml")
| racine € doc.racine(})
| fin
| a ص ا لل — —,
Page 14/15
wadifa-info.com ل AUD 5 &i 50 Ca Ci phil > ilaï
✅ Correction proposée
Il s'agit d'une correction proposée, rédigée par l'équipe wadifa-info pour vous aider à comprendre la méthode — ce n'est pas un corrigé officiel de l'administration organisatrice.
Ce modèle est l'épreuve pratique de l'examen d'aptitude professionnelle pour l'avancement de grade dans le cadre d'ingénieur d'État, option Informatique, Ministère de l'Agriculture et de la Pêche Maritime, session des 27 et 28 octobre 2007. Durée : 4 heures, coefficient 5. Le candidat traite au choix l'un de deux sujets ; le document disponible contient le Sujet 1 : étude de cas (gestion des branchements électriques d'un centre régional ONE), pages 1 à 14 sur 15. Voici une correction proposée des quatre dossiers.
💡 Conseil : les quatre dossiers sont indépendants. Commencez par ceux qui rapportent vite (SQL, réseau, chiffrement) et gardez le schéma entité-association et l'algorithme XML pour la suite. Dans les algorithmes, respectez exactement les noms de méthodes donnés en annexe : c'est ce que le correcteur vérifie.
Dossier 1 : gestion des branchements électriques
1.1 Schéma entité-association
Entités (identifiant en italique, en premier) :
- SOUS_TRAITANT (codeST, nomST, adresseST)
- CONTRAT (numContrat)
- ZEI (codeZEI, nomVille)
- JOUR (numJour, libelléJour) — lundi … dimanche
- DEMANDE (refDossier, dateDemande, nomClient, prénomClient, adresseClient, telClient, rueTravaux, lotissementTravaux, communeTravaux)
- TYPE_DEMANDE (codeType, libelléType) — neuf, provisoire, modification. (Variante acceptée : spécialisation de DEMANDE en DEMANDE_NEUF (dateEmménagement) et DEMANDE_PROVISOIRE (dateDébut, dateFin).)
- PROFESSIONNEL (numPro, nomPro, adressePro, telPro) — électricien ou maître d'œuvre
- CATÉGORIE (codeCat, libelléCat) — AD, IN
- SOUS_CATÉGORIE (codeSousCat, libelléSousCat) — AD1, AD2, IN1…
- OPÉRATION (codeOp, libelléOp, poids)
- DEVIS (numDevis, dateDevis, montantEstimé, dateAcceptation)
- AGENT (matricule, nomAgent, prénomAgent)
Associations et cardinalités :
| Association | Entités (cardinalités) | Justification |
|---|---|---|
| SIGNER | CONTRAT (1,1) — SOUS_TRAITANT (1,n) | un contrat engage un seul sous-traitant ; un sous-traitant peut signer plusieurs contrats |
| INTERVENIR (ternaire) | CONTRAT (1,n) — ZEI (0,n) — JOUR (0,n) | pour chaque ZEI du contrat, on précise les jours possibles (ex. contrat 385 : Attaouia mardi et mercredi ; Ras Al Ain mardi, jeudi, vendredi) |
| RATTACHER | DEMANDE (1,1) — ZEI (0,n) | la demande est obligatoirement rattachée à une ZEI |
| ÊTRE_DE_TYPE | DEMANDE (1,1) — TYPE_DEMANDE (0,n) | dates d'emménagement / début / fin portées par la demande (facultatives) ou par les sous-entités |
| ÉLECTRICIEN | DEMANDE (0,1) — PROFESSIONNEL (0,n) | renseigné pour un branchement neuf |
| MAÎTRE_D'ŒUVRE | DEMANDE (0,1) — PROFESSIONNEL (0,n) | « éventuellement » |
| ENTRAÎNER | DEMANDE (0,n) — OPÉRATION (0,n) | une demande entraîne plusieurs opérations |
| APPARTENIR_SC | OPÉRATION (1,1) — SOUS_CATÉGORIE (1,n) | AD32 appartient à AD3 |
| APPARTENIR_C | SOUS_CATÉGORIE (1,1) — CATÉGORIE (1,n) | AD3 appartient à AD |
| DONNER_LIEU | DEMANDE (0,1) — DEVIS (1,1) | jamais plus d'un devis par demande ; dateAcceptation vide tant que le client n'a pas accepté |
| RÉDIGER | DEVIS (1,1) — AGENT (0,n) | le devis mentionne le nom, prénom et matricule de l'agent |
Remarque : les codes d'opération (AD32) sont structurés, mais on modélise explicitement la hiérarchie catégorie / sous-catégorie / opération au lieu de déduire l'appartenance des caractères du code.
Dossier 2 : gestion des plannings
2.1 Requêtes SQL
a) Une journée est « entièrement pleine » quand les deux demi-journées ont atteint le maximum de 240 minutes :
SELECT dateJournee FROM PLANNING WHERE numeroContrat = 1632 AND chargeMAT = 240 AND chargeAPM = 240;
b) Jointure sous-traitant → contrat → affectation :
SELECT DISTINCT S.nom
FROM SOUS_TRAITANT S
JOIN CONTRAT C ON C.codeSousTraitant = S.code
JOIN AFFECTER A ON A.numeroContrat = C.numero
WHERE A.codeZEI = 'AT';
DISTINCT évite de répéter un sous-traitant qui a plusieurs contrats dans la ZEI AT.
c) Le total d'un sous-traitant est la somme de nbTotRDVPris sur tous ses contrats ; on garde le (ou les, en cas d'égalité) plus grand(s) :
SELECT S.nom, SUM(C.nbTotRDVPris) AS totalRDV
FROM SOUS_TRAITANT S
JOIN CONTRAT C ON C.codeSousTraitant = S.code
GROUP BY S.code, S.nom
HAVING SUM(C.nbTotRDVPris) >= ALL (SELECT SUM(nbTotRDVPris)
FROM CONTRAT
GROUP BY codeSousTraitant);
Variante équivalente : HAVING SUM(C.nbTotRDVPris) = (SELECT MAX(t) FROM (SELECT SUM(nbTotRDVPris) AS t FROM CONTRAT GROUP BY codeSousTraitant) X). On groupe aussi par S.code car deux sous-traitants peuvent porter le même nom.
2.2 Procédure editEtatSousTraitant
Charge restante = 240 − charge déjà affectée, pour chaque contrat du sous-traitant qui possède une ligne de PLANNING à la date saisie.
PROCÉDURE editEtatSousTraitant (nomSaisi : chaîne, dateSaisie : date)
Variables
req : chaîne
curseur : Curseur
num, chMat, chApm : entier
Début
req <- "SELECT P.numeroContrat, P.chargeMAT, P.chargeAPM
FROM PLANNING P
JOIN CONTRAT C ON C.numero = P.numeroContrat
JOIN SOUS_TRAITANT S ON S.code = C.codeSousTraitant
WHERE S.nom = '" + nomSaisi + "'
AND P.dateJournee = '" + dateSaisie + "'
ORDER BY P.numeroContrat"
curseur.ouvrir(req)
afficher("DATE : ", dateSaisie)
afficher("Nom du sous-traitant : ", nomSaisi)
Si curseur.finDeCurseur() Alors
afficher("Aucune disponibilité ce jour pour ce sous-traitant")
Sinon
TantQue NON curseur.finDeCurseur() Faire
curseur.lire(num, chMat, chApm)
afficher("Contrat n° : ", num)
afficher("Charge restante MAT : ", 240 - chMat,
" Charge restante APM : ", 240 - chApm)
FinTantQue
FinSi
curseur.fermer()
Fin
Contrôle avec l'exemple : contrat 3 sans aucune charge → 240 / 240 ; contrat 4 avec chargeMAT = 240 et chargeAPM = 120 → 0 / 120.
Dossier 3 : mise à jour des rendez-vous
3.1 getNbChamps (classe Champs)
fonction getNbChamps() : entier Début retourner nbChamps Fin
3.2 valeurFormatée (classe GèreRDV)
fonction valeurFormatée(nomChamp : chaîne, valeurChamp : chaîne) : chaîne
Début
Si getType(nomChamp) = 'N' Alors
retourner valeurChamp
Sinon // 'C' ou 'D' : encadrer d'apostrophes
retourner "'" + valeurChamp + "'"
FinSi
Fin
Vérification : valeurFormatée("chargeRdv","45") donne 45 ; valeurFormatée("nomClient","Hassan") donne 'Hassan'.
3.3 ajouter (classe GèreRDV)
procédure ajouter(numéro : chaîne, lesChamps : Champs)
Variables
requête, listeNoms, listeValeurs : chaîne
i : entier
Début
listeNoms <- "numRdv"
listeValeurs <- valeurFormatée("numRdv", numéro)
Pour i de 0 à lesChamps.getNbChamps() - 1 Faire
listeNoms <- listeNoms + ", " + lesChamps.getNom(i)
listeValeurs <- listeValeurs + ", "
+ valeurFormatée(lesChamps.getNom(i), lesChamps.getValeur(i))
FinPour
requête <- "insert into RDV (" + listeNoms + ") values (" + listeValeurs + ")"
execSql(requête)
Fin
Pour le RDV 1245 de l'annexe 7, la requête produite est : insert into RDV (numRdv, nomClient, …, plageHoraire) values (1245, 'Dubois', '12 rue des fleurs 14000 Caen', '0429784529', 'CA', 287, '12/04/2007', 50, 'mat').
3.4 Programme majTableRDV (suite à compléter)
Programme majTableRdv
début
doc : DocXml
doc <- new DocXml()
gRdv : GèreRDV
gRdv <- new GèreRDV("Provider=interbase;BD=planning")
racine : NoeudXml
doc.charger("modifsRdv.xml")
racine <- doc.racine()
rdv, nd : NoeudXml
action, numero : chaîne
lesChamps : Champs
i, j : entier
Pour i de 0 à racine.nbFils() - 1 Faire
rdv <- racine.getFils(i) // un élément <rdv>
action <- rdv.getAttribut(0).getValeur() // "ajout", "modif" ou "supp"
numero <- rdv.getFils(0).getValeur() // numRdv, toujours présent
Si action = "supp" Alors
gRdv.supprimer(numero)
Sinon
lesChamps <- new Champs()
Pour j de 1 à rdv.nbFils() - 1 Faire // on saute numRdv (index 0)
nd <- rdv.getFils(j)
lesChamps.ajouter(nd.getNom(), nd.getValeur())
FinPour
Si action = "ajout" Alors
gRdv.ajouter(numero, lesChamps)
Sinon
gRdv.modifier(numero, lesChamps)
FinSi
FinSi
FinPour
fin
On s'appuie sur les remarques de l'annexe 7 : le fichier est fiable, numRdv est toujours le premier fils, et les fils apparaissent dans l'ordre des champs de la table, ce qu'attend la méthode ajouter.
Dossier 4 : communications avec les sous-traitants
4.1 Passerelle des postes du réseau ONE
Les postes sont dans le réseau 192.168.1.0 ; leur passerelle est l'interface du routeur située dans ce réseau : 192.168.1.1. Pour joindre le serveur web (réseau 192.168.2.0), ils passent par cette interface.
4.2 Pourquoi un réseau IP distinct pour le serveur web
Le serveur est accessible depuis Internet (sous-traitants) : il est placé dans une zone démilitarisée (DMZ). Le routeur-pare-feu applique des règles différentes à chaque réseau : depuis Internet, seuls les flux web (HTTP/HTTPS) vers le serveur sont autorisés, via la traduction d'adresse et de port (NAT/PAT) sur l'adresse publique 193.252.10.1 ; aucun flux entrant n'est autorisé vers le réseau interne. Si le serveur était piraté, l'attaquant ne se trouverait pas directement sur le réseau des postes de l'ONE.
4.3 Chiffrement asymétrique
Chaque intervenant possède une paire de clés : une clé publique diffusée et une clé privée gardée secrète ; ce qui est chiffré avec l'une ne se déchiffre qu'avec l'autre.
- Confidentialité : l'émetteur chiffre le message avec la clé publique du récepteur ; seul le récepteur, avec sa clé privée, peut le déchiffrer.
- Authentification (signature) : l'émetteur calcule une empreinte (hachage) du message et la chiffre avec sa propre clé privée ; le récepteur la déchiffre avec la clé publique de l'émetteur et la compare à l'empreinte qu'il recalcule : si elles sont égales, l'émetteur est authentifié et le message n'a pas été modifié.
- Les deux à la fois : l'émetteur signe avec sa clé privée puis chiffre avec la clé publique du récepteur ; le récepteur déchiffre avec sa clé privée puis vérifie avec la clé publique de l'émetteur.
Émetteur Récepteur
message --hachage--> empreinte --[clé privée émetteur]--> signature
message + signature --[clé publique récepteur]--> message chiffré ===>
===> --[clé privée récepteur]--> message + signature
signature --[clé publique émetteur]--> empreinte à comparer
En pratique, l'asymétrique (lent) sert surtout à échanger une clé de session symétrique qui chiffre ensuite les données (cas de SSL/TLS).
4.4 Rôle du tiers de confiance
Le tiers de confiance est une autorité de certification (au sein d'une infrastructure à clés publiques). Il vérifie l'identité du demandeur, puis délivre un certificat numérique qui associe la clé publique à son titulaire et qu'il signe avec sa propre clé privée. Lors d'un échange, chaque partie présente son certificat ; l'autre vérifie la signature de l'autorité, la validité (dates) et la non-révocation (liste de révocation). On a ainsi la garantie qu'une clé publique appartient bien au sous-traitant ou à l'ONE, ce qui empêche l'usurpation d'identité ; l'autorité peut aussi horodater et assurer la non-répudiation.
4.5 Conséquences d'une gestion interne
- L'ONE devient sa propre autorité de certification : les certificats ne sont pas reconnus d'office par les navigateurs et systèmes des sous-traitants ; il faut leur faire installer le certificat racine de l'ONE.
- La confiance repose sur l'ONE, partie à l'échange : en cas de litige, la valeur probante et la non-répudiation sont plus faibles qu'avec un tiers indépendant.
- La qualité dépend des moyens internes : protection de la clé privée racine, procédures de vérification d'identité, gestion des révocations et des renouvellements, compétences et disponibilité du personnel.
- En contrepartie : maîtrise totale du dispositif, pas de dépendance à un prestataire, coût de certificats réduit.
Questions fréquentes sur ce sujet
Ce sujet est-il téléchargeable gratuitement ?
Le corrigé est-il inclus ?
Quel organisme et quel grade concerne ce sujet ?
De quelle session s'agit-il et dans quelle langue ?
Où trouver d'autres sujets du même concours ?
Vous préparez ce concours ?
Modèles similaires
Source : archive de modèles de concours — document archivé tel que reçu ; l'avis officiel du concours fait foi.
}📎 Citer cette page
Journaliste, blogueur, enseignant : copiez la référence ci-dessous et mettez un lien vers cette page.
Adresse permanente : https://www.wadifa-info.com/fr/modele-concours/2744/modele-d-examen-d-aptitude-professionnelle-avancement-de-grade-dans-le-cadre-d-ingenieur
