Wadifa InfoEmploi public au Maroc ع

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)

🏢 Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes 👤 avancement de grade dans le cadre d'ingénieur d'État 🎯 Informatique — épreuve pratique 📅 session des 27 et 28 octobre 2007 👁️ 17 vues

⬇️ 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
Sujet (épreuve pratique) de l'examen d'aptitude professionnelle pour l'avancement de grade dans le cadre d'ingénieur d'État, option Informatique, session des 27 et 28 octobre 2007. Document officiel publié par la Direction des ressources humaines du ministère sur madrpm.gov.ma (copie archivée), 14 page(s). Sans corrigé.
📝 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 :

AssociationEntités (cardinalités)Justification
SIGNERCONTRAT (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)
RATTACHERDEMANDE (1,1) — ZEI (0,n)la demande est obligatoirement rattachée à une ZEI
ÊTRE_DE_TYPEDEMANDE (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
ÉLECTRICIENDEMANDE (0,1) — PROFESSIONNEL (0,n)renseigné pour un branchement neuf
MAÎTRE_D'ŒUVREDEMANDE (0,1) — PROFESSIONNEL (0,n)« éventuellement »
ENTRAÎNERDEMANDE (0,n) — OPÉRATION (0,n)une demande entraîne plusieurs opérations
APPARTENIR_SCOPÉRATION (1,1) — SOUS_CATÉGORIE (1,n)AD32 appartient à AD3
APPARTENIR_CSOUS_CATÉGORIE (1,1) — CATÉGORIE (1,n)AD3 appartient à AD
DONNER_LIEUDEMANDE (0,1) — DEVIS (1,1)jamais plus d'un devis par demande ; dateAcceptation vide tant que le client n'a pas accepté
RÉDIGERDEVIS (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.
Un nouveau sujet de concours chaque jour sur WhatsApp

Questions fréquentes sur ce sujet

Ce sujet est-il téléchargeable gratuitement ?
Oui. La totalité du sujet (14 pages) est consultable et téléchargeable gratuitement, sans inscription ni compte.
Le corrigé est-il inclus ?
Oui. Un corrigé proposé figure sur cette page, sous les pages du sujet : méthode de réponse et éléments attendus, rédigés par l'équipe Wadifa Info.
Quel organisme et quel grade concerne ce sujet ?
Ce sujet provient d'un concours organisé par Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes. Il concerne le grade : avancement de grade dans le cadre d'ingénieur d'État.
De quelle session s'agit-il et dans quelle langue ?
Session : session des 27 et 28 octobre 2007. Les questions sont en français.
Où trouver d'autres sujets du même concours ?
Tous nos sujets de la même famille sont regroupés sur la page Ingénieurs d'État : /fr/modeles-concours/ingenieurs-etat. Les sujets y sont classés par session, du plus récent au plus ancien.

Modèles similaires

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 écrite (5 questions + 2 sujets au choix sur pages sans en-tête) 📅 session des 27 et 28 octobre 2007 Modèle d'examen d'aptitude professionnelle — Avancement de grade dans le cadre d'ingénieur d'État — Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes 2007 — Vulgarisation agricole — Épreuve écrite 📅 session des 27 et 28 octobre 2007 Modèle d'examen d'aptitude professionnelle — Avancement de grade dans le cadre d'ingénieur d'État — Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes 2007 — Vulgarisation agricole — Épreuve pratique 📅 session des 27 et 28 octobre 2007 Modèle d'examen d'aptitude professionnelle — Avancement de grade dans le cadre d'ingénieur d'État — Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes 2005 — Espaces verts — Épreuve écrite 📅 session des 11 et 12 décembre 2005 Modèle d'examen d'aptitude professionnelle — Avancement de grade dans le cadre d'ingénieur d'État — Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes 2005 — Génie rural — Épreuve écrite 📅 session des 11 et 12 décembre 2005 Modèle d'examen d'aptitude professionnelle — Avancement de grade dans le cadre d'ingénieur d'État — Ministère de l'Agriculture, du Développement Rural et des Pêches Maritimes 2005 — Horticulture — Épreuve écrite 📅 session des 11 et 12 décembre 2005
Voir tous les modèles →

Source : archive de modèles de concours — document archivé tel que reçu ; l'avis officiel du concours fait foi.

}
Utile ? Envoyez-le à quelqu'un qui cherche
WhatsApp Facebook Telegram

📎 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

📲
Installez Wadifa Info sur votre iPhone : appuyez sur le bouton Partager en bas de Safari, puis sur Sur l'écran d'accueil. Les nouveaux concours, sans passer par le navigateur.