موضوع مباراة مباريات التوظيف بموجب عقود بالنسبة للتعليم الثانوي بسلكيه الإعدادي والتأهيلي – وزارة التربية الوطنية والتكوين المهني – المركز الوطني للتقويم والامتحانات والتوجيه 2016

وزارة التربية الوطنية والتكوين المهني – المركز الوطني للتقويم والامتحانات والتوجيهمباريات التوظيف بموجب عقود بالنسبة للتعليم الثانوي بسلكيه الإعدادي والتأهيلي2016اختبار في مادة التخصص (دراسة حالة: قواعد البيانات، SQL، الشبكات، البرمجة الكائنية)الفرنسية

الموضوع متوفر على شكل ملف PDF : اضغط على « فتح الموضوع » أعلاه لقراءته أو تحميله.

اقتراح تصحيح

حاول حل الموضوع أولًا، ثم اضغط هنا لعرض اقتراح التصحيح

I. Création des dossiers consultations

I.1 – MCD (proposition)

  • Entités : EQUIPE (numEquipe, dateProchaineReunion, heureProchaineReunion) ; INFIRMIER (codeInf, nomInf, prenomInf) ; PATIENT (numPatient, nom, prenom, dateNaissance, adresse, ville, telephone, situationFamille) ; MEDECIN (codeMed, nomMed, prenomMed, adresseCabinet, cpCabinet, villeCabinet, telMed) ; DOSSIER (annee, numDossier, dateDebut, dateCloture, commentaire) ; RENDEZ_VOUS (numRdv, dateRdv, presence, motive) ; PRODUIT (numProduit, libelleProduit) ; PERIODE_CONSO (numPeriode, dateDebut, dateFin, frequence, doseMoyenne) ; TRAITEMENT (numTraitement, datePrescription) ; MEDICAMENT (codeMedicament, nomMedicament).
  • APPARTENIR : INFIRMIER (1,1) – EQUIPE (1,n).
  • AVOIR_MEDECIN_TRAITANT : PATIENT (0,1) – MEDECIN (0,n).
  • CONCERNER : DOSSIER (1,1) – PATIENT (1,n) (un patient peut avoir plusieurs dossiers successifs).
  • ETRE_RESPONSABLE : DOSSIER (1,1) – INFIRMIER (0,n).
  • PREVOIR : RENDEZ_VOUS (1,1) – DOSSIER (1,n) ; ASSURER : RENDEZ_VOUS (1,1) – INFIRMIER (0,n). L'attribut « motive » (O/N) conserve l'historique de la motivation à chaque rendez-vous.
  • CONSOMMATION : PERIODE_CONSO (1,1) – DOSSIER (0,n) et PERIODE_CONSO (1,1) – PRODUIT (0,n) (une même consommation peut reprendre après arrêt : une période par reprise).
  • SUIVRE : TRAITEMENT (1,1) – DOSSIER (0,n) ; PRESCRIRE : TRAITEMENT (1,1) – MEDECIN (0,n).
  • COMPOSER : TRAITEMENT (1,n) – MEDICAMENT (0,n), porteuse de dateDebutPrise, dureePrescrite, posologie.
  • L'identifiant de DOSSIER est le couple (numéro séquentiel, année) ; on peut aussi utiliser un identifiant relatif à une entité ANNEE.

II. Référencement des produits à addiction

II.1

a.
SELECT P.nom
FROM PRODUIT P JOIN Menace M ON P.num = M.numProduit
JOIN RISQUE R ON R.code = M.codeRisque
WHERE R.libelléR = 'Dépendance psychique'
ORDER BY P.nom ;

b.
SELECT N.num, N.libellé, COUNT(DISTINCT M.numProduit) AS nbProduits
FROM NIVEAU N JOIN Menace M ON M.numNiveau = N.num
GROUP BY N.num, N.libellé
HAVING COUNT(DISTINCT M.numProduit) > 10 ;

c.
SELECT num, nom FROM PRODUIT
WHERE num NOT IN (SELECT numProduit FROM Menace) ;

II.2 (la table référencée doit exister avant la contrainte)
CREATE TABLE CATEGORIE (code INTEGER PRIMARY KEY, nom VARCHAR(30)) ;
ALTER TABLE PRODUIT ADD codeCategorie INTEGER ;
ALTER TABLE PRODUIT ADD CONSTRAINT fk_produit_categorie FOREIGN KEY (codeCategorie) REFERENCES CATEGORIE(code) ;

II.3
GRANT SELECT, INSERT, UPDATE, DELETE ON CATEGORIE TO application ;

III. Administration du réseau

III.1 192.168.3.254 est une adresse privée (plage 192.168.0.0/16, RFC 1918) : elle n'est pas routée sur Internet. Depuis l'extérieur, on ne peut joindre que l'adresse publique 82.127.150.98 de R1, qui doit rediriger (NAT/redirection de port) vers le serveur. De plus 192.168.3.254 est l'interface de R1, pas le serveur web (192.168.3.1).

III.2 Aller (192.168.2.10 → 192.168.3.1) : le poste envoie à sa passerelle R2 ; R2 utilise la route par défaut R2-2 (vers 192.168.1.254) ; R1 utilise R1-3 (réseau 192.168.3.0/24 directement connecté). Retour (192.168.3.1 → 192.168.2.10) : le serveur envoie à sa passerelle 192.168.3.254 ; R1 utilise R1-1 (192.168.2.0/25 via 192.168.1.253) ; R2 utilise R2-1 (réseau directement connecté).

III.3 Règle à placer sur l'interface publique de R1 :
Num 2 | Interface 82.127.150.98 | TCP | Adresse destination 82.127.150.98 | port destination 80 | adresse de redirection 192.168.3.1 | port de redirection 80

III.4 Les services médicaux sont dans le sous-réseau 192.168.2.128/25, alors que R2 n'a qu'une interface dans 192.168.2.0/25 (pharmacie) et aucune table de routage ne connaît 192.168.2.128/25. Ces postes n'ont donc aucune passerelle accessible dans leur réseau : ils ne peuvent communiquer qu'entre eux (même sous-réseau), même s'ils sont branchés sur le même commutateur C2 que la pharmacie.

IV. Gestion des médicaments

IV.1 majCump() est déclarée dans la partie privée de la classe Medicament : elle n'est pas visible depuis le formulaire (encapsulation), d'où l'erreur. Il faut appeler la méthode publique ajoutStock(), qui appelle majCump() et met à jour le stock (et cet appel est d'ailleurs déjà fait par Pharmacie.ajouterLivraison()).

IV.2
procédure majCump(qte : entier, condit : entier, cout : réel)
nbComprimes : entier
nbComprimes ← qte * condit
cump ← (stock * cump + cout) / (stock + nbComprimes)
fin
Vérification sur l'exemple : (50 × 0,40 + 400) / (50 + 700) = 420 / 750 = 0,56 DH.

IV.3
procédure ajoutStock(qte : entier, condit : entier, cout : réel)
majCump(qte, condit, cout) // à appeler AVANT de modifier le stock
stock ← stock + qte * condit
fin

IV.4
procédure ajouterLivraison(uneLivraison : Livraison)
leMed : Medicament
lesLivraisons.ajouter(uneLivraison)
leMed ← uneLivraison.getLeMedicament()
leMed.ajoutStock(uneLivraison.getQte(), uneLivraison.getCondit(), uneLivraison.getCout())
fin

IV.5
fonction donneLePlusEconomique(qte : entier) : Medicament
leMoinsCher : Medicament
coutMin : réel
leMoinsCher ← NULL
coutMin ← MAXVALUE
Pour chaque m de LesMedicaments
si m.getStock() >= qte et m.getCump() < coutMin alors
coutMin ← m.getCump()
leMoinsCher ← m
finsi
FinPour
retourner leMoinsCher
fin

IV.6
fonction ajoutTraitementBase(noPatient : entier, nomMolecule : chaîne, nbJour : entier, nbComprime : entier) : booléen
laMolecule : Molecule
leMed : Medicament
qte : entier
laMolecule ← trouverMolecule(nomMolecule)
qte ← nbJour * nbComprime
leMed ← laMolecule.donneLePlusEconomique(qte)
si leMed = NULL alors
retourner faux
sinon
Pharmacie.enregistrerTraitementBase(noPatient, leMed.getNom(), qte)
retourner vrai
finsi
fin

IV.7 Partie à compléter (déclarer aussi leNoPatient : entier, absent des déclarations) :
si scePharma.ajoutTraitementBase(leNoPatient, leNomMolecule, leNbJours, leNbComprimés) alors
afficherMessage("Traitement enregistré")
sinon
afficherMessage("Aucun médicament en stock suffisant pour cette molécule")
finsi

تصحيح مقترح من إعداد مناصب للاستئناس، وليس تصحيحًا رسميًا. قد يتضمن أخطاء : إذا لاحظت خطأ، راسلنا عبر contact@manasseb.com.

استعد للدورة القادمة

توجد حاليًا 1 مباراة مفتوحة لمهنة أستاذ التعليم الابتدائي أو الثانوي. مهنة أستاذ التعليم الابتدائي أو الثانوي : الشروط والمباريات

للتدرب أكثر : تكوينات مجانية

كل التكوينات المجانية

مواضيع أخرى لنفس المهنة

زر الذهاب إلى الأعلى
✈️تابعونا على تيليغرام 📲تابعونا على واتساب