SlideShare une entreprise Scribd logo
1  sur  99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Frédéric Sagez 
D.U.T. Informatique 
Institut Universitaire Technologique de Vélizy 
Années 1995-1997 
RAPPORT DE STAGE 
Page 1 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
J'ai effectué du 5 mai au 30 juin 1997 un stage au Service Informatique de Gestion de l'Institut 
Universitaire de Formation des Maîtres de l'académie de Versailles. 
La tâche qui m'a été confiée pendant cette période a été de faire un programme écrit en PL/SQL s ur un 
serveur de base de données Oracle. Ce programme consiste à effectuer les admissions des candidats qui 
s'inscrivent en première année pour devenir professeur d'écoles (inscription au C.A.P.E.). 
La première étape du stage a été de faire un cahier des charges afin de définir les besoins des différents 
utilisateurs. A partir de celui-ci, j'ai conçu, réalisé et testé un programme qui répond à tous les critères 
demandés. 
Mais pour comprendre à quoi va servir le programme, le chapitre I présente l'I.U.F.M. de Versailles ainsi 
que la structure ou j'ai effectué mon stage. Le chapitre II défini très clairement tous les objectifs qui m'ont été 
demandés. Les autres chapitres comme le chapitre IV est la plus grosse partie de ce rapport, il explique la 
méthodologie employée pour concevoir le programme en PL/SQL ainsi que toutes les données et informations 
supplémentaires qui m'ont été apportés. 
Page 2 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Sommaire 
1 I.U.F.M. : Institut universitaire de formation des maîtres..............................................................................5 
1.1 Origine des I.U.F.M. ......................................................................................................................................................................... 5 
1.2 La structure des I.U.F.M. ................................................................................................................................................................ 5 
1.3 Les fonctions de l'I.U.F.M. .............................................................................................................................................................. 6 
1.4 Les différents services ..................................................................................................................................................................... 6 
2 Les objectifs............................................................................................................................................. 10 
3 Le Cahier des charges............................................................................................................................... 13 
3.1 Introduction ....................................................................................................................................................................................13 
3.2 Analyse de l’existant......................................................................................................................................................................13 
3.2.1 Le matériel ..........................................................................................................................................................................14 
3.3 Etude du système ..........................................................................................................................................................................14 
3.3.1 Analyse des besoins non-fonctionnels ..........................................................................................................................14 
3.3.2 Analyse des besoins fonctionnels...................................................................................................................................15 
3.4 Evolution du programme..............................................................................................................................................................17 
4 Le programme ......................................................................................................................................... 19 
4.1 Principe de fonctionnement ........................................................................................................................................................19 
4.2 Les structures..................................................................................................................................................................................20 
4.2.1 La table des candidats triés .............................................................................................................................................20 
4.2.2 La table des capacités des centres .................................................................................................................................20 
4.2.3 La table des erreurs sur les candidats ...........................................................................................................................21 
4.2.4 La table des admissions dans les centres......................................................................................................................22 
4.3 Le programme principal................................................................................................................................................................23 
4.4 Description de la procédure de tri des candidats ....................................................................................................................24 
4.4.1 Description de la procédure Initialise_T_CANDIDAT_DESC ......................................................................................25 
4.4.2 Description de la sous procédure Inscrit_Erreur .........................................................................................................27 
4.4.3 Description de la procédure Tri_par_note_de_bareme ............................................................................................28 
4.4.4 Description de la fonction Nombre_de_candidat_par_note_de_bareme .............................................................28 
4.4.5 Description de la procédure Selectionne_Candidat_pour_table_temporaire.......................................................28 
4.4.6 Description de la procédure Tri_par_note_de_prepo ................................................................................................29 
4.4.7 Description de la sous procédure Tri_par_critere_de_selection .............................................................................30 
4.4.8 Description de la procédure Classement_table_trie ..................................................................................................31 
4.5 Description de la procédure d'attribution des centres ...........................................................................................................31 
4.5.1 Description de la procédure Test_place_Centre .........................................................................................................32 
4.5.2 Description de la procédure Selection_Information_Centre ....................................................................................33 
4.5.3 Description de la fonction Traite_le_Centre ................................................................................................................33 
4.5.4 Description de la procédure Donne_nom_du_centre................................................................................................34 
4.5.5 Description de la procédure Inserer_Candidat_dans_Centre...................................................................................34 
4.5.6 Description de la procédure Mise_a_jour_des_Centres ............................................................................................35 
4.6 Description des procédures de mise à jour des atypiques et des dérogataires .................................................................36 
4.6.1 Description de la procédure Met_le_nombre_de_derogataire ...............................................................................36 
4.6.2 Description de la procédure Met_le_nombre_d_atypique.......................................................................................37 
5 Fonctionnement ...................................................................................................................................... 39 
6 Utilisation du programme......................................................................................................................... 45 
6.1 Lancement du script ......................................................................................................................................................................45 
6.2 Erreurs..............................................................................................................................................................................................46 
6.3 Vérifications ....................................................................................................................................................................................46 
6.4 Optimisation ...................................................................................................................................................................................48 
7 Jeux de tests ............................................................................................................................................ 50 
7.1 Constations et vérifications du tri des candidats .....................................................................................................................50 
7.2 Constations et vérifications sur l’admission des candidats....................................................................................................52 
8 Conclusion............................................................................................................................................... 56 
Page 3 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
9 Annexe.................................................................................................................................................... 57 
9.1 Le programme SQL (affect97.sql) ...............................................................................................................................................57 
9.2 Création des tables sous Oracle (creat1_0.sql) ........................................................................................................................93 
9.3 Gestion de la mémoire (space2.sql) ...........................................................................................................................................98 
Page 4 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
1 I.U.F.M. : INSTITUT UNIVERSITAIRE DE FORMATION DES MAITRES 
1.1 Origine des I.U.F.M. 
Les Instituts Universitaire de Formation des Maitres ont été créées par la loi d'orientation sur l'éducation n° 89- 
486 du 10 Juillet 1989. 
Les I.U.F.M. sont des établissements d'enseignement supérieur et, à ce titre, bénéficient de l'autonomie 
pédagogique et administrative : ce sont des établissements publics administratifs. 
Les I.U.F.M. sont rattachées aux universités des différentes académies. Des conventions sont signées ent re le 
président de l'établissement de rattachement et le directeur de l'institut après avis des conseils d'administration 
des deux établissements. 
De part ce changement de statut des établissements de formation des enseignants, la profession a été 
revalorisée et le recrutement ne s'effectue plus au même niveau. 
Au mois de Septembre 1991, les I.U.F.M. ont ouverts leurs portes, en remplacement des Ecoles Normales qui 
existaient par le passé car elles étaient gérées au niveau départemental (il en existait une pour chaque 
département). Désormais il n'existe plus qu'un I.U.F.M. par académie, ainsi leur création a entraîné le 
regroupement d'entités distinctes au sein d'un même établissement. 
1.2 La structure des I.U.F.M. 
Chaque I.U.F.M. a hérité au moment de sa création des locaux et du matériel des Ecoles Normales dont il est le 
successeur. 
Page 5 sur 99 
Présentation de l'organisation d'un I.U.F.M. : 
Il y a un siège qui est le centre de direction et de gestion de l'ensemble de l'établissement dont le rôle 
est de répartir les ressources entre les différents centres éparpillés à l'intérieur de l'académie selon leurs 
besoins. Au siège il y a un directeur qui a la charge de l'ensemble de l'institut, il est assisté par un secrétaire 
général et d'un agent comptable qui ont pour mission la gestion et la répartition du budget de l'I.U.F.M. 
Il y a des centres de formation dont le rôle est d'assurer la préparation des étudiants au concours de 
l'Education Nationale, la formation des professeurs stagiaires pendant leur deuxième année. Ces centres de 
formation sont répartis à travers l'académie administrée par l'I.U.F.M. 
Chaque centre a un directeur qui est responsable avec son équipe des orientations pédagogiques suivis par 
l'établissement ainsi que de son administration. 
Dans l'académie de Versailles, il y a 6 centres de formations : 
 Versailles (au même endroit que le siège), 
 Antony Jouhaux,
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 6 sur 99 
 Antony Val de Bièvre, 
 Cergy, 
 Etiolles, 
 Saint Germain en Laye. 
1.3 Les fonctions de l'I.U.F.M. 
La fonction essentielle de l'I.U.F.M. est la sélection et la formation des futurs enseignants de l'éducation 
nationale. Cette fonction s'exerce dans les centres de formation qui ont chacun leurs spécificités : 
 Le centre d'Antony Jouhaux forme les futurs enseignants technologiques dans les lycées et collèges, on y 
prépare le Certificat d'Aptitude au Professorat Technologique (CAPET) ainsi que des enseignants pour les 
Lycées Professionnels (LP) en y préparant le Certificat d'Aptitude au Professorat des Lycées 
Professionnels. 
 Les centres d'Antony Val de Bièvre, Cergy et Etiolles accueillent les candidats pour la préparation du 
Certificat d'Aptitude au Professorat des Ecoles (CAPE ou PE), de l'Enseignement Secondaire (CAPES) ainsi 
que l'Education Physique et Sportive (CAPEPS). 
 Les centres de Saint Germain en Laye et Versailles quant à eux sont chargés de préparer les CAPE ou le 
CAPES. 
La personne désirant s'inscrire dans l'une des branches doit avoir obligatoirement une licence sauf pour les CAPE 
ou l'on peut s'inscrire avec un diplôme équivalent au BAC+3 comme par exemple le Diplôme National Technique 
Supérieur après un Diplôme Universitaire Technologique. 
L'étudiant fait d'abord une démarche de préinscription. Son dossier passe alors devant une commission 
d'admission qui sélectionne les personnes qui vont disposer d'une place à l'I.U.F.M. 
Après son admission, l'étudiant passe une année dans un centre de l'I.U.F.M. pour préparer le concours auquel il 
est candidat. A l'issue de cette première année d'enseignement pédagogique, le candidat passe son concours. 
S’il l'obtient, le candidat entre en deuxième année en qualité de professeur stagiaire, sinon il peut redoubler sa 
première année s’il a eu l'avis favorable de ses professeurs. 
Durant la deuxième année, le professeur stagiaire est formé sur le "terrain" dans des classes. A la fin de son 
année, il passe devant une commission de validation du stage qui propose sa titularisation. Si la commission de 
titularisation lui donne un avis favorable alors le candidat deviendra professeur titulaire avec un poste 
d'enseignement à vie comme fonctionnaire, sinon il peut redoubler en renouvelant son stage. 
Chaque année, l'académie de Versailles enregistre sur l'ensemble de ses centres, plus de 15 000 demandes 
de dossier de préinscription à l'I.U.F.M. Sur ces 15 000 demandes de dossier, environ 12 000 seront soumises à 
la commission d'étude qui est chargée de les valider. Parmi ces dossiers, moins de 4 000 candidats pourront 
suivre une formation de CAPE en première année pour l'année scolaire 1997-1998. 
1.4 Les différents services 
Pour coordonner ses diverses formations et assurer le bon fonctionnement de l'I.U.F.M., il y a au siège de 
l'I.U.F.M. à Versailles des services administratifs. Leur principal travail est de donner aux centres de formation 
les moyens matériels pour former les personnes inscrites à l'I.U.F.M.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 7 sur 99 
Ces services sont au nombre de quatre : 
1. Le service comptable qui a la responsabilité du budget de l'I.U.F.M., sa mission est la gestion et la 
redistribution des ressources de l'établissement, 
2. Le service scolarité qui gère les préinscriptions, le suivi des dossiers inscrits à l'I.U.F.M. ainsi que le 
versement des allocations aux étudiants de première et de deuxième année, 
3. Le service du personnel et des moyens qui assure la gestion du personnel administrat if et enseignant de 
l'I.U.F.M., des moyens nécessaires à la pédagogie et à l'enseignement dans les centres. 
4. Le service informatique de gestion qui est chargé de donner aux trois autres services les moyens 
informatiques (logiciels et matériels) ainsi que dans chaque centre, ses principales activités sont : 
 La maintenance des réseaux (il y en à trois, voir le chapitre V), 
 L'installation et la maintenance du matériel informatique, 
 L'installation et la maintenance des logiciels informatiques, 
 La formation du personnel des centres sur des progiciels, 
 Le traitement et la maintenance des bases de données, 
 L'achat de matériel informatique (ils ont leur propre budget). 
La particularité de ce service est qu'il est autonome vis-à-vis des autres services et ne dépend que de la direction 
générale. On peut le voir sur le schéma hiérarchique de la page suivante (numéro six).
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Equipe de Direction 
Siège de Versailles 
Service Comptable Service du Personnel et des Moyens Service Scolarité Service Informatique 
Page 8 sur 99 
Directeur de Centre 
Service administratif et Financier 
Administration 
Centre d'Antony Jouhaux 
V ) Les différents réseaux 
Pédagogie 
Directeur de Centre 
Service administratif et Financier 
Administration 
Pédagogie 
Directeur de Centre 
Service administratif et Financier 
Administration 
Pédagogie 
Centre d'Etiolles 
Directeur de Centre 
Service administratif et Financier 
Administration 
Pédagogie 
Centre de St Germain en Laye 
Centre d'Antony Val de Bièvre 
Directeur de Centre 
Service administratif et Financier 
Administration 
Pédagogie 
Centre de Versailles 
Directeur de Centre 
Service administratif et Financier 
Administration 
Pédagogie 
Centre de Cergy 
Bien sur l'équipe de direction est en relation directe avec le directeur de chaque centre ainsi que les autres 
services du siège qui sont en rapport avec le chef du service administratif et financier de chaque centre. Le 
service informatique agit surtout dans les services administratifs et pédagogiques des six centres.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Il existe trois réseaux pour chaque centre de l'I.U.F.M. de Versailles, les serveurs se trouvent au siège et pour 
chaque service se trouve un réseau spécifique : 
 Le service scolarité a un réseau qui s'appuie sur une base de donnée placée dans chaque centre de l'I.U.F.M. 
La base de donnée "Prothée" contient les étudiants actuellement inscrits dans ces centres mais aussi ceux 
qui ont déposés leurs dossiers d'inscription pour cette année. Le nom du serveur est "Bécassine" sous 
Windows NT et cette base de données est administrée sous Oracle. Le logiciel qui gère les inscriptions 
s'appelle lui aussi "Prothée", et c'est à partir de ce logiciel que le personnel du service informatique et 
administratif de chaque centre va gérer toutes les informations sur les candidats qui préparent un certificat 
dans un centre I.U.F.M. 
 Le service du personnel et des moyens est équipé d'un réseau pour l'administration de son personnel 
administratif et enseignant. Ce réseau fonctionne sous une application nommée "G2i" et ne peut être utilisé 
que sur des ordinateurs de type Macintosh. Malheureusement ce réseau va être abandonné car il y a eu 
trop de maintenance à faire. 
 Le service comptable s'est vu imposé une comptabilité centralisée depuis l'intervention du ministère de 
l'éducation nationale en 1994. Elle a donc son propre réseau de type client/serveur dont le serveur se trouve 
au siège. L'application "Gérico" utilise le système de base de données relationnel Oracle sous Unix. La 
particularité de ce réseau est que les ordinateurs clients fonctionnent en émulation de terminal VT220. 
Chaque opérateur dans les centres saisisse leurs dépenses sur leurs postes et la comptabilité générale du 
siège de l'I.U.F.M. engage le paiement des factures. 
Page 9 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
2 LES OBJECTIFS 
Avant d’expliquer comment j’ai procédé à l’élaboration du cahier des charges, je vais expliquer où j’interviens 
dans le cycle des préinscriptions au C.A.P.E. des candidats. 
Depuis que les I.U.F.M. existent, les inscriptions se font par dossier ou par concours. Comme l’I.U.F.M. de 
Versailles doit gérer les candidats de l’académie de Versailles, il y a beaucoup de demandes. Depuis l’ année 
dernière, les préinscriptions se font par « Minitel ». Chaque candidat s’inscrit en donnant des informations 
diverses comme par exemple les diplômes qu’il a obtenus, et à partir de ces informations, le centre de Cergy va 
générer un fichier et l’envoyer au siège à Versailles. Le service informatique va transformer ce fichier et 
l’importer dans la base de données « Prothée » en pratiquant quelques routines de vérification (dé 
doublonnage, saisie de dossier non valide, ...). A partir des données recueillies, le service scolarité prépare un 
dossier pour le candidat et l’envoie par la poste en fixant un rendez -vous dans un centre pour valider le dossier 
dûment rempli. Le jour ou le candidat se présente à un centre d’I.U.F.M., une personne du service scolarité va 
saisir les informations sur le dossier que le candidat a rapporté ainsi qu’un justificatif des pièces demandées 
(diplôme certifié, une fiche de salaire indiquant que le candidat à travailler, etc. ...). Pendant la saisie du dossier, 
le candidat peut voir les informations qui sont mises par le biais d’un moniteur, un autre étant à la disposition de 
la personne qui inscrit le candidat sur un logiciel nommé « Prothée » qui a été conçus pour la saisie des 
préinscriptions. La saisie étant finie, ses données sont directement validées dans la base de données. Lorsque la 
date d’inscription est dépassée et que chaque centre à valider tous les candidats, le service informatique va trier 
tous ces candidats selon des critères de « barémage ». Une fois les candidats triés, le service va gérer les 
admissions dans les centres d’après un quota de place pour chacun d’entre eux, puis des listes de chaque centre 
vont être imprimées ainsi que des statistiques pour la direction du siège. Tous les candidats admissibles seron t 
traités par une commission de validation et recevront une lettre indiquant que leur candidature a été acceptée 
ou refusée. 
L'objectif du stage à l'I.U.F.M. de Versailles dans le service informatique est de reprendre le programme du tri et 
des admissions des candidats inscrits pour la préparation au C.A.P.E. de l'année 1996 en vue de l'améliorer. 
Le programme "voeu.sql" dont le script se trouve au chapitre III (les scripts) ne convenait plus pour cette année 
car le barémage et les voeux ont changé ainsi que les critères de sélection des différents candidats. 
Donc à la demande de Monsieur Vieux-Combe, un cahier des charges 'Affect97' a été établi pour spécifier les 
demandes, d'une part pour l'utilisateur du service informatique et d'autre part pour celui du service scolarité. 
Le nouveau programme demandé sera écrit en PL/SQL pour être lancé sur l'outil SQL*PLUS d'Oracle. 
L'un des directeurs assistants du centre de Versailles, Madame Quittet, a proposé un tri de chaque candidat très 
poussé pour éviter les égalités entre eux, de plus un rang académique leur sera affecté pour les classer 
hiérarchiquement. 
Le principe du tri des candidats ne concerne que les inscrits qui ont une note de barème supérieur ou égale à 
trente et vérifie bien si les candidats atypiques sont inclus et qu'ils ont bien obtenu une note d'entretien 
différent de zéro. 
Page 10 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Les candidats "dérogataires" quant à eux sont gérés directement par une procédure qui les affectent dans les 
centres demandés, car ils sont bien entendus prioritaire sur les autres candidats. 
La première étape du stage à été de faire un planning des différentes étapes de conception du programme : 
 Le cahier des charges pour spécifier les besoins des utilisateurs, 
 La conception du programme en faisant des algorithmes, 
 La réalisation du programme et les divers tests de vérification, 
 Et la validation du programme : mise en place du programme sur le serveur NT ainsi que son 
Mai Juin 
mercredi 7 au jeudi 22 au jeudi 29 au mardi 17 au 
mercredi 21 mercredi 28 lundi 16 jeudi 19 
PLANNIFICATION du 
projet 'Affect97'. 
Cahier des charges 
(spécifications et besoins) 
(algorithmes) 
Réalisation et Tests 
(codage du programme) 
(utilisation) 
TOTAL en jour * : 29 9 5 13 2 
Page 11 sur 99 
exécution. 
Voici la première version du diagramme de GANT du projet : 
Conception 
Validation 
Mais suite à des modifications de critères pendant le projet et suite aux enjeux des jalons finaux, voici la 
dernière version :
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Pour mieux distinguer les différentes étapes de conception, voici le cycle de vie : 
Du 12/05 au 21/05 Du 17/06 au 19/06 
Du 22/05 au 16/06 
Page 12 sur 99 
Spécification - Etudes des besoins 
Cahier des charges 
Validation 
Mise en place du Programme 
Conception 
Algorithmes 
Tests 
Jeux de tests 
Réalisation 
Codage en PL/SQL
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 13 sur 99 
3 LE CAHIER DES CHARGES 
3.1 Introduction 
L’Institut Universitaire de Formation des Maîtres de l’Académie de Versailles est le centre de direction 
et de gestion des différentes formations des futurs enseignants. Le siège de l’I.U.F.M. de Versailles gère 
six centres de formation : Cergy, Versailles, Antony Val de Bièvre, Etiolles, Saint Germain en Laye et 
Antony Jouhaux qui préparent la formation au Certificat d’Aptitude de Professorat d’Enseignement 
Secondaire. Leur rôle est d’assurer la préparation des étudiants au concours de l’Educa tion National 
des professeurs d’écoles. 
Des candidats s’inscrivent sur le Minitel pour préparer leur propre formation de professeur avant la fin 
du mois de Mai. Les informations recueillies seront retranscrites dans une base de données appelée 
« Prothée ». 
Le service scolarité du siège de Versailles qui gère les admissions demande au service informatique 
d’écrire un programme concernant les candidats de première année pour les postes de professeurs 
d’écoles. 
Le programme devra trier par ordre décroissant chaque candidat suivant une note de barème (un 
étudiant est « barèmé » suivant les diplômes obtenus et les différents stages qu’il a effectués). Des 
critères de sélection supplémentaires sont ajoutés pour traiter les égalités entre les différentes 
personnes, dans un premier temps on comparera les notes obtenues à la préprofessionnalisation (un 
second tri sera effectué par ordre de grandeur : de la note la plus forte à la plus faible), si on n'arrive 
toujours pas à les départager dans un deuxième temps on se basera sur les critères suivants dans cet 
ordre : si le candidat a fait au moins six mois de service d'enseignement ou de surveillance ou 
périscolaire dans un établissement scolaire ou d'activité périscolaire; si il a eu une activité péri - 
éducative ou périscolaire dans le cadre d'une institution (établissement scolaire, municipalité ou 
association) avec au moins deux expériences distinctes pendant une durée de six semaines cumulées 
ou de soixante heures de soutien scolaire; si il a eu une activité salariée de six mois à temps plein autre 
que l'enseignement; et dans l'ordre si il a obtenu le Brevet d'Aptitude à la Formation de Directeur de 
centre ou le Brevet d'Aptitude à la Formation d'Animateur de centre, ou le Brevet d'Education 
Sportive ou le Brevet National de Secourisme. Si on n'arrive toujours pas à les départager, le dernier 
critère sera l’âge du candidat tout en favorisant les plus jeunes (un troisième tri sera effectué toujours 
par ordre de grandeur : du plus jeune au plus vieux), puis on attribuera un rang pour chaque candidat. 
Une fois le tri fini, il ne reste plus qu’à affecter un centre pour chaque candidat suivant le nom de 
département sélectionné (le candidat avait choisi les cinq départements par ordre de préférence), 
ensuite le programme décrémentera le nombre d’inscription possible du centre où il est inscrit 
provisoirement. A la fin du programme, les meilleurs élèves retenues dans les cinq départements 
seront mis dans une liste à la disposition du service scolarité. 
3.2 Analyse de l’existant
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
3.2.1 Le matériel 
L’utilisation du programme se fera sur le serveur Windows NT appelé « Bécassine » qui a un 
accès direct sur la base de données. Voici sa configuration actuelle : 
 C'est un ordinateur de type P.C. équipé de 2 processeurs Pentium 100 et qui est muni 
Page 14 sur 99 
d’un moniteur, 
 Une mémoire vive (RAM) de 64 Méga Octets, 
 Un disque dur d’une capacité de 2,1 Giga Octets pour disposer des différents logiciels, 
 Une carte réseau Ethernet (LAN) de type 3COM. 
3.2.1.1 Les logiciels 
L’ordinateur P.C. est muni du système d’exploitation DOS version 6.22 avec Windows NT version 
3.5.1. 
L’application PL/SQL sur la base de données fonctionnera sous ORACLE version 7 avec ses outils 
de développements pour Windows (on aura surtout besoin du logiciel SQL*PLUS). 
3.3 Etude du système 
3.3.1 Analyse des besoins non-fonctionnels 
3.3.1.1 Le développement 
Le développement du logiciel s’effectuera sur un ordinateur P.C. de type Pentium 200 avec 32 
Méga Octets de mémoire vive connecté qui est au réseau sur la base de données, un disque 
dur de 2,1 Giga Octets servira de support permettant ainsi d’effectuer des tests sur des bases 
fictives afin de déboguer le programme avant son utilisation finale. Cela permettra aussi au 
développeur de mesurer la place mémoire requise pour les données stockées ainsi que la place 
disponible pour le support de fichier. Cette évaluation servira entre autres à l’examen des 
capacités d’adaptation du logiciel (par exemple la création de tables temporaires). 
3.3.1.2 L’utilisateur 
Il doit se trouver sous Oracle dans la base de données « Prothée » pour lancer le programme 
écrit en PL/SQL qui portera le nom de « affect97.sql ». 
Le programme demandera des informations à l’utilisateur afin d’optimiser le tri des candidats, 
selon des critères de choix sur les différentes formations à traiter. 
Des messages indiquant des erreurs à la fin du tri ou exceptionnellement pendant celui-ci 
seront répertoriés dans une table. 
Il se terminera par l’affichage d’informations indiquant à l’utilisateur que le tri est fini, ensuite il 
pourra visualiser le résultat final.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
3.3.2 Analyse des besoins fonctionnels 
3.3.2.1 Services offerts à l’utilisateur du service informatique 
La première étape du programme lors de son exécution sera de sélectionner les candidats dont 
le numéro de dossier commencera par l’année en cours (exemple ‘97’) ainsi que le nom de la 
formation (par exemple on peut demander la première lettre : ‘E’ pour PE, signifiant Professeur 
d’Ecole) ce qui permettra à l’utilisateur de traiter les différents types de formation. 
Le programme n’est plus interrompu lorsqu'il est lancé sauf erreur grave, par exemple aucun 
moyen d’accès à une table. 
Pour chaque candidat un rang lui sera attribué, donc les affectations se feront par ordre 
décroissant des notes de barème obtenues par celui-ci. 
Pour chaque note de barème (inclus entre 30 et 69), on va traiter les égalités entre les 
candidats par des critères de sélections (le tri se fait séquentiellement) : 
 1er critère : on repartit chaque candidat par note de préprofessionnalisation (il y en a six 
Page 15 sur 99 
: 0, 3, 5, 6, 8, 10), 
 2ème critère : pour chaque note de préprofessionnalisation on répartira les candidats 
en deux blocs : ceux qui ont fait six mois d'enseignement ou non, 
 3ème critère : puis de ces deux blocs on repartitionnera ceux qui ont eu une expérience 
péri-éducative (ou périscolaire) ou pas, 
 4ème critère : puis de ces deux blocs on repartitionnera ceux qui ont eu une expérience 
de salariée ou non, 
 5ème critère : pour départager définitivement les candidats, on regarde si ils ont obtenu 
un ou plusieurs brevets (valeur possible : 1, 2, 3) et on les départage dans quatre blocs 
différents (0 : pas de brevet, 1 : B.A.F.D. 2 : B.A.F.A. ou B.E.S. 3 : B.N.S.) 
 Le dernier critère triera les candidats suivant leur âge tout en favorisant les plus jeunes 
dans chaque bloc. Puis on ajoutera tous ces derniers blocs triés dans la table des candidats 
admissibles.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
8 10 
0 
Note préprofessionalisation 
candidat déjà trié : 
note de barème compris 
entre 47 et 69. 
Tous les candidats triés : 
note de barème égale à 46. 
Voici un exemple de répartition du tri séquentiel par critère de sélection 
Page 16 sur 99 
30 
31 ... 46 ... 69 
70 
3 
5 6 
0 
8 
0 5 0 
5 
Table C A NDIDATURE 
Note d'enseignement 
A ctiv ité péri-éducativ e 
0 
5 
0 
5 
0 
5 
0 
5 
activ ité de salariée 
0 
1 
2 
3 
0 
1 
2 
3 
note des brev ets 
tri de chaque bloc par ordre croissant de l'âge des candidats. 
on rajoute tous les bloques à la table des candidats triés.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 17 sur 99 
D'autres conditions ont été rajoutées : 
 Les candidats atypiques (personne qui a un diplôme de plus de cinq ans et qui veut 
préparer le concours de professeur des écoles) sont inclus dans le tri, il suffira tout 
simplement de vérifier un champ d'une table pour savoir s’il a passé un entretien. Bien 
entendu il faudra qu'il ait une note de barème supérieur ou égale à trente. 
 Les candidats dérogataires (mère de trois enfants et plus ou sportif de haut niveau) vont 
directement être admis dans les centres qu'ils ont souhaités à la condition d'avoir 
obtenu une note d'entretien égale à soixante dix. 
Si des erreurs sont constatées pendant le tri alors elles seront rapportées dans une table qui 
sera créée à cet effet. L’utilisateur pourra donc les regarder pendant le programme sans 
perturbation du tri. 
Un scénario sera remis à la disposition de l’utilisateur afin de le guider dans les différentes 
étapes possibles du programme. 
3.3.2.2 Services offerts à l’utilisateur du service scolarité 
Une liste finalisée sera mise à la disposition pour le service scolarité, elle comportera les 
informations du candidat admissible de la façon suivante : 
 Le numéro de dossier, 
 Le numéro de candidature, 
 Le nom du candidat, 
 Le prénom du candidat, 
 L’adresse du candidat, 
 Les 5 départements qu’il a sélectionnés par ordre de préférence, 
 Le nom du département où il a été admis, 
 La formation souhaitée, 
 La note de barème, 
 Le rang définitif du candidat. 
A la visualisation, l’utilisateur pourra remarquer que le nom du département qui a été attribué 
au candidat est suivis d’une étoile, on pourra ainsi connaître lequel de ses voeux a été 
sélectionné. 
3.4 Evolution du programme 
Le programme sera modulaire, ainsi l’utilisateur pourra le modifier sans gêner le coeur du programme 
principal car le PL/SQL est un langage procédure, on peut ainsi ajouter des fonctions ou des 
procédures.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Des commentaires seront implantés dans le programme pour aider l’utilisateur à changer la 
configuration du programme, ainsi des petits modules d’exemples seront rajoutés afin de faciliter la 
compréhension. 
Certaines erreurs seront gérées par des exceptions, ceci permettra de les répertorier dans une table en 
donnant la solution. 
On peut demander d'autre renseignement lors du lancement du programme. 
Page 18 sur 99
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 19 sur 99 
4 LE PROGRAMME 
4.1 Principe de fonctionnement 
Nous travaillons sur une base de données avec des tables. Comme le programme est écrit en PL/SQL et que c'est 
un langage procédural nous pouvons modulariser celui-ci avec des procédures ou des fonctions. Afin de faciliter 
la compréhension des algorithmes, chaque table sera représentée par un tableau contenant une structure du 
type de la table employé à chaque case. Pour aller dans les cases et récupérer les informations il suffira d'un 
indice alors qu'avec le langage SQL il faut tout simplement faire un 'SELECT'. 
Le programme va trier les candidats par critère, dans la base on a besoin des tables qui détiennent les 
informations dont on a besoin : 
 La table CANDIDATURE contient le numéro de dossier et de candidature, la formation souhaitée, les 
cinq départements rangés par ordre de préférence ou souhaite étudier le candidat (les voeux) ainsi que 
la note de barème, 
 La table ETUDIANT contient le nom usuel, le prénom, la date de naissance et l'adresse complète du 
candidat, 
 La table BAREME_INDIVIDUEL contient la note de préprofessionnalisation, sensibilisation ainsi que la 
note du brevet obtenu ou encore la note d'entretien pour les dérogataires. On peut savoir si des "items" 
ont été cochés : si le candidat à six mois d'enseignement, une activité péri -éducative ou périscolaire, une 
activité salariée de plus de six mois. 
A partir de ces tables, le programme va en créer d'autres : 
 La table CANDIDAT_TRIE : tous les candidats validés seront triés par ordre croissant du rang avec une 
note de barème compris entre 30 et 69, 
 La table ERREUR_CANDIDAT : elle reportera les erreurs rencontrées sur des candidats comme par 
exemple l'oublie de mettre un cinquième département dans les voeux (on ne sait jamais), 
 Les tables ADMIS_ANTONY_VdB, ADMIS_CERGY, ADMIS_ETIOLLES, ADMIS_ST-GERMAIN et 
ADMIS_VERSAILLES contiendront les informations relatives aux candidats qui sont admissibles dans 
ces centres, elles formeront chacune une liste qui sera traitée par une autre personne du service 
informatique, 
Remarque : la table CAPACITE_CENTRE sera créée avant le programme. Elle renfermera toutes les informations 
concernant les cinq centres où seront admis les candidats. Le programme aura surtout besoin du quota de 
chaque centre pour y placer chaque candidat. 
A la fin du programme, une mise à jour sera effectuée dans la table CANDIDATURE pour y valider le champ 
'formation' qui contiendra le nom de la formation que le candidat a souhaité, 'dossier_recevable' et 'admission' 
s'il a bien été admis dans un centre (O pour oui et N pour Non). La table CAPACITE_CENTRE a un champ 
'quota_centre_restant' dont la valeur finale sera attribuée par le programme.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 20 sur 99 
4.2 Les structures 
4.2.1 La table des candidats triés 
// STRUCTURE 
Type CANDIDAT_TRIE : Article 
{renseignement relatif au candidat} 
no_dossier : chaîne de caractère, 
no_candidature : réel, 
formation : caractère, 
{les cinq départements choisis par le candidat} 
departement1 : chaîne de caractère, 
departement2 : chaîne de caractère, 
departement3 : chaîne de caractère, 
departement4 : chaîne de caractère, 
departement5 : chaîne de caractère, 
{les critères de sélection} 
note_bareme : réel, { note de barème  [30..69] } 
preprofessionnalisation : caractère, { la note de prepro.  {0,3,5,6,8,10} } 
date_naissance : date, { sous la forme DD-MM-YY } 
date_retour_dossier : date, {le candidat est valide si la date > 01-01-1900} 
{ renseignement complémentaire sur ses autres notes obtenu par le candidat} 
enseignement : caractére { 'O' pour oui ou 'N' pour non } 
peri_educ_scol : caractére { 'O' pour oui ou 'N' pour non } 
activite_salarie : caractére { 'O' pour oui ou 'N' pour non } 
note_brevet : réel { note compris entre 0,1,2,3 } 
{chaque candidat sera classé par la note de barème la plus forte à la plus faible} 
rang : entier; 
// TABLEAU 
Type T_CANDIDAT_TRIE : tableau[1..nb_candidat] de CANDIDAT_TRIE 
Chaque case du tableau T_CANDIDAT_TRIE contient la structure CANDIDAT_TRIE concernant un 
candidat. Pour aller d'un candidat à un autre, il suffit de prendre un indice inclus entre un et le nombre 
total de candidats inscrits dans la table. 
4.2.2 La table des capacités des centres 
// STRUCTURE 
Type CAPACITE_CENTRE : Article
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
{ le code du centre est égal au nom du département pour faciliter la recherche } 
code_centre : chaîne de caractère, 
{ place totale dans un centre } 
quota_centre_initial : réel, 
{ place restante dans un centre } 
quota_centre_restant : réel, 
{ nombre total de candidat atypique dans chaque centre } 
nbre_atypique : réel, 
{ nombre total de candidat derogataire dans chaque centre } 
nbre_derogataire : réel, 
{ nom du centre en entier } 
nom_du_centre : chaîne de caractère; 
// TABLEAU 
{ type énumération } 
T_indice_centre = ( ANTONY_VdB, CERGY, ETIOLLES, ST-GERMAIN, VERSAILLES ) 
Type T_ CAPACITE_CENTRE : tableau[T_indice_centre] de CAPACITE_CENTRE 
Chaque centre a son propre quota de place de candidat admissible. Le quota restant du centre sera mis 
à jour lorsque tous les candidats auront été admis, donc à la fin des attributions le résultat devra être 
égal à zéro. Le code pour chaque centre est : 
 ANTONY_VdB : "92V" (Antony Val de Bièvres) 
 CERGY : "95" 
 ETIOLLES : "91" 
 ST-GERMAIN : "78S" (Saint Germain en Laye) 
 VERSAILLES : "78V" 
Page 21 sur 99 
4.2.3 La table des erreurs sur les candidats 
// STRUCTURE 
Type ERREUR_CANDIDAT : Article message : chaîne de caractère; 
// TABLEAU 
Type T_ ERREUR_CANDIDAT : tableau[1..nb_erreur] de ERREUR_CANDIDAT 
Le tableau contiendra toutes les erreurs rencontrées lors du tri des candidats. Par exemple un candidat a 
oublié de mettre un cinquième département, le message d'erreur indiquera la position du candidat dans 
la table CANDIDATURE est le type d'erreur lui concernant : département numéro cinq manquant.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
4.2.4 La table des admissions dans les centres 
Page 22 sur 99 
// STRUCTURE 
Type ADMIS_nom du centre : Article 
{renseignement relatif au candidat} 
no_dossier : chaîne de caractère, 
no_candidature : réel, 
nom_usuel : chaîne de caractère, 
prénom : chaîne de caractère, 
adresse : chaîne de caractère, 
code_postal : chaîne de caractère, 
ville : chaîne de caractère, 
{les cinq départements choisis par le candidat} 
departement1 : chaîne de caractère, 
departement2 : chaîne de caractère, 
departement3 : chaîne de caractère, 
departement4 : chaîne de caractère, 
departement5 : chaîne de caractère, 
{détermine quel numéro de département où le candidat est affecté par une étoile} 
no_departement1 : caractère, 
no_departement2 : caractère, 
no_departement3 : caractère, 
no_departement4 : caractère, 
no_departement5 : caractère, 
{indique le nom du département où le candidat est admis} 
departement_choisis : chaîne de caractère, 
{ le nom de la formation souhaitée par le candidat } 
formation : caractère, 
{ on inclus les dérogataires qui ont une note de bareme > 69 } 
note_bareme : réel, { note de barème  [30..90] } 
{chaque candidat sera classé par ordre croissant du rang} 
rang : entier; 
// TABLEAU 
Type T_ ADMIS_nom du centre : tableau[1..nb_candidat_par_centre] de ADMIS_nom du centre 
 Il y aura cinq tableaux correspondant aux centres d'ANTONY Val de Bièvre, CERGY, ETIOLLES,
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
ST-GERMAIN et VERSAILLES (nom du centre). Chaque centre a un nombre maximum de candidat 
(représenté par 'nb_candidat_par_centre'), par exemple le centre de Cergy avait une capacité de 800 
places l'année dernière. 
La structure donne plus de renseignements sur le candidat admissible, cela facilitera le travail de la 
personne qui gérera les admissions pour chaque centre. Le programme SQL pour créer les tables se 
trouve en annexe. 
Affichage d'un message d'invite avec demande d'information 
Saisis des valeurs demandées à l'affichage 
{On va se servir des tables CANDIDATURE, ETUDIANT et BAREME_INDIVIDUEL 
pour prendre les informations de chaque candidat} 
Appel de la procédure de tri des candidats 
{la table CANDIDAT_TRIE est créée contenant les candidats valides à l'admission} 
{une table ERREUR_CANDIDAT sera créée s'il y a eu une ou des erreurs sur les 
candidats inscrits} 
{on ajoute les dérogataires dans les centres en leur mettant un rang égal à zéro} 
Appel de la procédure d'ajout des dérogataires 
{les cinq tables pour les centres seront créées} 
Appel de la procédure d'attribution des centres 
{les cinq tables pour les centres sont remplies} 
{les champs 'formation', 'dossier_recevable' et 'admission' de la table CANDIDATURE 
seront modifiés par l'utilisateur du service informatique} 
Mise à jour des candidats admissibles 
{met à jour le nombre total de dérogatiare et d'atypique dans chaque centre} 
Appel de la procédure Met_le_nombre_de_derogataire 
Appel de la procédure Met_le_nombre_d_atypique 
Page 23 sur 99 
4.3 Le programme principal 
Le programme principal fonctionnera de la façon suivante : 
DECLARATION des variables globales. 
DEBUT 
FIN 
Comme on peut le constater, le programme suit des étapes. Les principales sont le tri des candidats et 
l'attribution de candidats dans chaque centre. L'utilisateur peut ainsi en ajouter d'autres comme par 
exemple l'affichage de table entre les diverses procédures pour vérifier que tous c’est bien déroulé. 
Ou sinon, il peut effectuer un tri dans un premier temps et plus tard, relancer le programme en ne 
faisant que les admissions. 
Le programme SQL du programme principal se trouve en annexe.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
4.4 Description de la procédure de tri des candidats 
Cette procédure va trier tous les candidats inscrits qui se trouvent dans la table CANDIDATURE par ordre 
décroissant des notes de barème selon les critères suivant : 
 La note de barème compris entre 30 et 69, 
 La date de retour de dossier supérieur au 01-01-1900, 
 Tous les renseignements que le programme a besoin sur le candidat sont biens mis, 
 On traite les égalités entre chaque candidat par la note de préprofessionnalisation, les critères de 
sélection ainsi que de l'âge en cas d'égalité persistante. 
Page 24 sur 99 
Procédure TRI_CANDIDAT( affiche_erreur : booléen ) 
Précondition : le tableau T_CANDIDATURE existe et remplit avec au moins un candidat 
la saisie du numéro de dossier ainsi que de la formation doit être validé 
Effet : le tableau T_CANDIDAT_TRIE est créée et remplit selon des critères de sélection 
si des erreurs sont rencontrées alors affiche_erreur prendra la valeur VRAI pour 
indiquer qu'il y a eu des erreurs sur certain candidat 
Variables auxiliaires : indice : 1..nb_candidat {nombre total de candidat inscrit} 
indice_note_bareme : 30..69 {la note de barème doit être >= 30} 
test_erreur : booléen {indique que des erreurs existent} 
{variable indiquant le nombre total de candidat valide pour l'admission} 
nb_candidat_total : nb_candidat - nb_candidat_non_valide 
{variable indiquant le nombre total de candidat qui ont la même note de 
barème} 
nb_candidat_par_note_de_bareme : entier 
indice_DESC : 1..nb_candidat_total {nombre total de candidat inscrit} 
{Le tableau contient tous les candidats valident pour l'admission} 
Type T_CANDIDAT_DESC : 
tableau[1..nb_candidat_total] de CANDIDAT_TRIE 
{Le tableau contient tous les candidats qui ont la même note de barème pour 
effectuer des opérations de tri sur les égalités} 
Type T_CANDIDAT_TEMP : 
tableau[1..nb_candidat_par_note_de_bareme] de 
CANDIDAT_TRIE 
Début 
// Ici création de la table temporaire CANDIDAT_DESC 
test_erreur := FAUX {aucune erreur avant de commencer le traitement} 
indice_DESC := 0 {initialise l'indice du tableau destination} 
Pour indice de 1 à nb_candidat Faire 
{on traite tous les candidats et test si il n'y a pas d'erreur} 
Initialise_T_CANDIDAT_DESC(indice, saisie_numero_dossier, 
saisie_formation,test_erreur, indice_DESC) 
Fin Pour 
{on tri chaque candidat par sa note de barème par ordre décroissant dans le tableau 
T_CANDIDAT_DESC } 
Tri_par_note_de_bareme(saisie_numero_dossier, saisie_formation) 
{on commence le tri par la note de barème la plus grande du tableau 
T_CANDIDAT_DESC jusqu'à la plus petite} 
Pour indice_note_bareme de 69 à 30 Faire 
{il faut au moins un candidat sinon on ne traite pas} 
Si ( Nombre_de_candidat_par_note_de_bareme(indice_note_bareme) ) Alors 
// Ici création de la table temporaire CANDIDAT_TEMP 
{on sélectionne tous les candidats qui ont la même note de barème et on les 
range dans le tableau T_CANDIDAT_TEMP} 
Selectionne_Candidat_pour_table_temporaire(indice_note_bareme, 
saisie_numero_dossier, saisie_formation)
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
{tri les candidats dans le tableau T_CANDIDAT_TEMP par la note de 
Page 25 sur 99 
preprofessionnalisation} 
Tri_par_note_de_prepo(saisie_numero_dossier, saisie_formation) 
// on supprime ici la table temporaire CANDIDAT_TEMP 
Fin Si 
Fin Pour 
{affecte un rang pour chaque candidat} 
Classement_table_trie(saisie_numero_dossier, saisie_formation) 
{si il s'est produit une erreur lors de l'appel de la procédure 
Initialise_T_CANDIDAT_DESC, 'affiche_erreur' aura la valeur 'VRAI' } 
affiche_erreur := test_erreur 
// On supprime ici la table temporaire CANDIDAT_DESC 
Fin TRI_CANDIDAT; 
L'objectif de cette procédure et d'épurer tous les candidats non valident et de les rangés par ordre de 
classement. Comme le nombre de candidat est grand (plus de 9000), l'algorithme est optimisé pour ne pas 
perdre de temps, par exemple il ne traite que les candidats qui ont une note de barème supérieur ou égale à 
trente (c’est le minimum pour s'inscrire en 1ère année de P.E. car trente points équivaut à une licence). 
Remarque: les variables 'saisie_numero_dossier' et 'saisie_formation' sont des variables globales du programme 
principal, on les appels dans la procédure TRI_CANDIDAT afin d'optimiser la recherche des candidats. 
4.4.1 Description de la procédure Initialise_T_CANDIDAT_DESC 
Elle va trier chaque candidat de la table CANDIDATURE et les mettre dans la table 
CANDIDAT_TRIE : on effectue un premier tri des candidats admissibles. S'il y a des erreurs sur un 
candidat alors on indiquera sa position exacte dans la table CANDIDATURE et les types d'erreurs 
rencontrées. 
Procédure Initialise_T_CANDIDAT_DESC(Entrée : l_indice : 1..nb_candidat, 
le_numero_dossier : réel, 
la_formation : chaîne de caractère, 
Sortie : test_l_erreur : booléen, 
Entrée/Sortie : mon_indice : 1..nb_candidat_total) 
Précondition : le début du numéro de dossier <> 0,0 
le début du nom de la formation <> d'une chaîne vide 
mon_indice > 0 
Effet : le candidat valide se trouve dans le tableau T_CANDIDAT_DESC 
si une erreur existe alors la procédure renvoie 'VRAI' pour indiquer au programme 
principal qu'il devra afficher le contenu du tableau T_ERREUR_CANDIDAT 
lorsque le programme est fini. 
Variables auxiliaires : 
verifie : booléen {test si il y a eu une erreur pour ne pas incrementer le compteur 
'mon_indice' du tableau T_CANDIDAT_DESC qui reçoit les valeurs} 
{il faut initialiser les variables avant de les affecter pour déterminer une erreur} 
Constante 
carac_no_dossier : chaîne de caractère := "##########" 
carac_no_candidature : réel := 0.0 
carac_formation : chaîne de caractère := "####" 
carac_departement : chaîne de caractère := "###" 
carac_note_bareme : réel := 0.0 
carac_note_prepo : caractère := '#' 
carac_date_naissance : chaîne de caractère := "##-##-##" 
carac_date_retour_dossier : chaîne de caractère := "##-##-##"
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 26 sur 99 
Début 
verifie := FAUX {aucune erreur avant de commencer le traitement} 
{initialise mes variables qui vont recevoir les données} 
T_CANDIDAT_DESC[mon_indice].no_dossier := carac_no_dossier 
T_CANDIDAT_DESC[mon_indice].no_candidature := carac_no_candidature 
T_CANDIDAT_DESC[mon_indice].formation := carac_formation 
T_CANDIDAT_DESC[mon_indice].departement1 := carac_departement 
T_CANDIDAT_DESC[mon_indice].departement2 := carac_departement 
T_CANDIDAT_DESC[mon_indice].departement3 := carac_departement 
T_CANDIDAT_DESC[mon_indice].departement4 := carac_departement 
T_CANDIDAT_DESC[mon_indice].departement5 := carac_departement 
T_CANDIDAT_DESC[mon_indice].note_bareme := carac_note_bareme 
T_CANDIDAT_DESC[mon_indice].note_prepo := carac_note_prepo 
T_CANDIDAT_DESC[mon_indice].date_naissance := carac_date_naissance 
T_CANDIDAT_DESC[mon_indice].date_retour_dossier := carac_date_retour_dossier 
{traite le bon candidat et vérifie si il a bien retourné son dossier rempli} 
Si ( T_CANDIDATURE [l_indice].no_dossier = le_numero_dossier ET 
T_CANDIDATURE [l_indice].formation = la_formation ET 
T_CANDIDATURE[l_indice].date_retour_dossier > '01-01-1900' ) Alors 
T_CANDIDAT_DESC[mon_indice].no_dossier := T_CANDIDATURE [l_indice].no_dossier 
T_CANDIDAT_DESC[mon_indice].no_candidature := T_CANDIDATURE 
[l_indice].no_candidature 
T_CANDIDAT_DESC[mon_indice].formation := T_CANDIDATURE [l_indice].formation 
T_CANDIDAT_DESC[mon_indice].departement1 := T_CANDIDATURE [l_indice].departement1 
T_CANDIDAT_DESC[mon_indice].departement2 := T_CANDIDATURE [l_indice].departement2 
T_CANDIDAT_DESC[mon_indice].departement3 := T_CANDIDATURE [l_indice].departement3 
T_CANDIDAT_DESC[mon_indice].departement4 := T_CANDIDATURE [l_indice].departement4 
T_CANDIDAT_DESC[mon_indice].departement5 := T_CANDIDATURE [l_indice].departement5 
T_CANDIDAT_DESC[mon_indice].note_bareme := T_CANDIDATURE [l_indice].note_bareme 
T_CANDIDAT_DESC[mon_indice].note_prepo := T_CANDIDATURE [l_indice].note_prepo 
T_CANDIDAT_DESC[mon_indice].date_naissance := T_CANDIDATURE 
[l_indice].date_naissance 
T_CANDIDAT_DESC[mon_indice].date_retour_dossier := T_CANDIDATURE 
[l_indice].date_retour_dossier 
// On test les erreurs une par une d'un candidat si il y en a 
{indique une erreur sur le numéro de dossier d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].no_dossier = carac_ no_dossier ) Alors 
{indique le n ième candidat de la table pour verifier ses données} 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 
numéro de dossier"); verifie := 
VRAI Fin Si 
{indique une erreur sur le numéro de candidature d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].no_candidature = carac_ no_candidature ) 
Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 
numéro de candidature"); verifie := VRAI 
Fin Si 
{indique une erreur sur la formation d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].formation = carac_ formation ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de formation ") 
verifie := VRAI 
Fin Si 
{indique une erreur sur le 1er departement d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice]. departement1 = carac_ departement ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 1er voeu") 
verifie := VRAI 
Fin Si 
{indique une erreur sur le 2ème departement d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice]. departement2 = carac_ departement ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 2eme voeu") 
verifie := VRAI 
Fin Si 
{indique une erreur sur le 3ème departement d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice]. departement3 = carac_ departement ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 3eme voeu")
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
verifie := VRAI 
Fin Si 
{indique une erreur sur le 4ème departement d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice]. departement4 = carac_ departement ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 4ème voeu") 
verifie := VRAI 
Fin Si 
{indique une erreur sur le 5ème departement d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice]. departement5 = carac_ departement ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 5ème voeu") 
verifie := VRAI 
Fin Si 
{indique une erreur sur la note de barème d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].note_bareme = carac_note_bareme ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de note de 
Page 27 sur 99 
barème ") 
verifie := VRAI 
Fin Si 
{indique une erreur sur la note de prepro. d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].note_prepo = carac_note_prepo ) Alors 
Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 
note de preprofessionnalisation "); verifie := 
VRAI Fin Si 
{indique une erreur sur la date de naissance d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].date_naissance = carac_date_naissance ) 
Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 
date de naissance "); verifie := VRAI 
Fin Si 
{indique une erreur sur la date de retour du dossier d'un candidat} 
Si (T_CANDIDAT_DESC[mon_indice].date_retour_dossier = carac_date_retour_dossier 
Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de date de retour 
de dossier "); verifie := VRAI 
Fin Si 
Fin Si 
Si ( verifie ) Alors test_l_erreur := VRAI {erreur(s) de saisie sur un candidat} 
Sinon mon_indice := mon_indice + 1 {le candidat est enregistré dans le 
tableau} 
Fin Si 
Fin Initialise_T_CANDIDAT_DESC; 
4.4.2 Description de la sous procédure Inscrit_Erreur 
La procédure Inscrit_Erreur est une sous procédure. Elle est appelée lorsque l'on a besoin d'écrire une 
ou des erreurs relatives à un candidat dans le tableau T_ERREUR_CANDIDAT. 
Procédure Inscrit_Erreur(Entrée: message : chaîne de caractère) 
Précondition : message : chaîne de caractère non vide 
Effet : met dans le tableau T_ERREUR_CANDIDAT le message d'erreur rencontré 
sur un candidat 
Variable auxiliaire : ind : 0..nb_erreur {indice du tableau} 
Début 
T_ERREUR_CANDIDAT[ind + 1].erreur_candidat := message 
Fin Inscrit_Erreur;
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
4.4.3 Description de la procédure Tri_par_note_de_bareme 
Dans un premier temps, on tri chaque candidat par ordre décroissant des notes de barèmes 
obtenues par celui-ci. 
Procédure Tri_par_note_de_bareme(Entrée : le_numero_dossier : réel, 
la_formation : chaîne de caractère) 
Précondition : le tableau T_CANDIDAT_DESC existe avec au moins 1 candidat 
Effet : le tableau T_CANDIDAT_DESC est triée par ordre décroissant des notes de barème 
Page 28 sur 99 
Début 
Sélectionner TOUS 
Depuis le tableau T_CANDIDAT_DESC 
Ou T_CANDIDAT_DESC.no_dossier = le_numero_dossier 
Et T_CANDIDAT_DESC.formation = la_formation 
Par Ordre DECROISSANT note_de_bareme 
Fin Tri_par_note_de_bareme; 
4.4.4 Description de la fonction Nombre_de_candidat_par_note_de_bareme 
Ensuite on regarde s’il existe bien des candidats avec la note de barème demandée, cela évite de faire 
des traitements inutiles. 
Fonction Nombre_de_candidat_par_note_de_bareme(Entrée: l_indice_note_bareme : 30..69) retourne booléen 
Précondition : 30 < la note de barème <69 
le tableau T_CANDIDAT_DESC existe 
Effet : retourne la valeur VRAI si il y a bien des candidats à la note de barème indicée sinon 
elle retourne FAUX 
Variables auxiliaires : test_bareme : booléen 
{va indiquer le nombre total de candidat dans le tableau 
T_CANDIDAT_DESC} 
compteur : entier := 0 
Début 
Sélectionne compteur := compteur + 1 
Depuis le tableau T_CANDIDAT_DESC 
Ou note_bareme = l_indice_note_bareme 
Si ( compteur = 0 ) Alors test_bareme := FAUX {aucun candidat} 
Sinon test_bareme := VRAI {au moins un candidat} 
Fin Si 
Retourne test_bareme 
Fin Nombre_de_candidat_par_note_de_bareme; 
4.4.5 Description de la procédure Selectionne_Candidat_pour_table_temporaire 
Chaque candidat avec la même note de barème vont être mis dans une table temporaire 
CANDIDAT_TEMP pour effectuer un autre tri plus sélectif. 
Procédure Selectionne_Candidat_pour_table_temporaire(Entrée: l_indice_note_bareme : 30..69, 
le_numero_dossier : réel, 
la_formation : chaîne de caractère)
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Précondition : le tableau temporaire T_CANDIDAT_TEMP doit être créé 
Effet : le tableau temporaire T_CANDIDAT_TEMP contient que les candidats qui ont 
tous la même note de barème provenant du tableau T_CANDIDAT_DESC 
Page 29 sur 99 
Début 
Insérer dans le tableau T_CANDIDAT_TEMP 
Sélectionne TOUS 
Depuis le tableau T_CANDIDAT_DESC 
Ou T_CANDIDAT_DESC.no_dossier = le_numero_dossier 
Et T_CANDIDAT_DESC.formation = la_formation 
Et note_bareme = l_indice_note_bareme 
Fin Selectionne_Candidat_pour_table_temporaire; 
4.4.6 Description de la procédure Tri_par_note_de_prepo 
Dans cette table temporaire CANDIDAT_TEMP on départage les égalités en rajoutant un critère : 
la note de préprofessionnalisation, on range les candidats par ordre décroissant. 
Procédure Tri_par_note_de_prepo(Entrée : le_numero_dossier : réel, 
la_formation : chaîne de caractère) 
Précondition : le tableau temporaire T_CANDIDAT_TEMP existe et non vide 
Effet : le tableau temporaire T_CANDIDAT_TEMP contient les candidats triés qui ont la 
meme note de bareme 
le tableau temporaire T_CANDIDAT_TEMP_SELECT contient les candidats triés 
qui ont la meme note de préprofessionnalisation 
Ce tableau une fois trié, ses valeurs seront ajoutées à la suite du tableau 
T_CANDIDAT_TRIE 
Variables auxiliaires : 
// Ce sont des caractères qui vérifient si la case est cochée 'O'ui ou 'N'on dans la table 
BAREME_INDIVIDUEL (leurs notes ne varient pas) 
Constantes 
{deux valeurs possibles du critère d'enseignement} 
note_enseignementOUI : caractère := 'O' 
note_enseignementNON : caractère := 'N' 
{deux valeurs possibles du critère de l'activité éducative} 
note_peri_educativeOUI : caractère := 'O' 
note_peri_educativeNON : caractère := 'N' 
{deux valeurs possibles du critère d'activité salariée} 
note_activite_salarialeOUI : caractère := 'O' 
note_activite_salarialeNON : caractère := 'N' 
enum_note_prepro : entier  {0,3,5,6,8,10} 
Début 
//on selctionne ce que l'on a besoin dans un curseur que l'on créait 
Pour indice_prepro inclus dans enum_note_prepro Faire 
{on selectionne les candidats par note de pré-professionnalisation d'ordre décroissant 
et on les ajoute dans un autre tableau temporaire T_CANDIDAT_TEMP_SELECT} 
Insérer le tableau T_CANDIDAT_TEMP_SELECT 
Sélectionne TOUS 
Depuis le tableau T_CANDIDAT_TEMP 
Ou T_CANDIDAT_TEMP.no_dossier = le_numero_dossier 
Et T_CANDIDAT_TEMP.formation = la_formation 
Et T_CANDIDAT_TEMP.note_prepro = indice_prepro 
Fin Pour 
// On effectue le tri selectif séquentiel par ordre de grandeur 
{tri de la première branche : la note d' enseignement est égale à huit}
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeOUI, 
note_activite_salarialeOUI) 
Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeOUI, 
note_activite_salarialeNON) 
Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeNON, 
note_activite_salarialeOUI) 
Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeNON, 
note_activite_salarialeNON) 
{tri de la deuxième branche : la note d' enseignement est égale à zéro} 
Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeOUI, 
note_activite_salarialeOUI) 
Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeOUI, 
note_activite_salarialeNON) 
Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeNON, 
note_activite_salarialeOUI) 
Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeNON, 
note_activite_salarialeNON) 
Page 30 sur 99 
Fin Tri_par_note_de_prepo; 
4.4.7 Description de la sous procédure Tri_par_critere_de_selection 
Dans la table temporaire CANDIDAT_TEMP_SELECT, on départage les égalités persistantes entre chaque 
candidat : pour chaque type de brevet obtenu ou non, on range les candidats par ordre croissant de leur 
date de naissance (du plus jeune au moins jeune). 
Procédure Tri_par_critere_de_selection(Entrée : note_enseigne, 
note_peri_edu, note_sal : caractère) 
Précondition : le tableau temporaire T_CANDIDAT_TEMP_SELECT existe et non vide 
Effet : le tableau T_CANDIDAT_TRIE contiendra les candidats triés par ordre croissant 
des dates de naissances 
Variable auxiliaire : note_brevet : 0..3 { la note de brevet  {0,1,2,3}} 
Début 
Pour note_brevet de 3 à 0 Faire 
Insérer dans tableau T_CANDIDAT_TRIE 
Sélectionne TOUS 
{tableaux contenant les informations dont on a besoin} 
Depuis les tableaux T_CANDIDAT_TEMP_SELECT, T_BAREME_INDIVIDUEL 
{lien pour les items} 
Ou T_CANDIDAT_TEMP_SELECT.no_dossier = 
T_BAREME_INDIVIDUEL.no_dossier 
{renseignement supplémentaire sur l'age de l'étudiant} 
Et T_CANDIDAT_TEMP_SELECT.no_dossier = T_ETUDIANT.no_dossier 
{on précise que l'on s'occupe des PE} 
Et T_BAREME_INDIVIDUEL.code_bareme = "PE97" 
{test la note d'enseignement > 6 mois} 
Et (T_BAREME_INDIVIDUEL.code_critere = 3 ET 
T_BAREME_INDIVIDUEL.choix = note_enseigne) 
{test la note d'activité educative} 
Et (T_BAREME_INDIVIDUEL.code_critere = 5 ET 
T_BAREME_INDIVIDUEL.choix = note_peri_edu) 
{test la note d'activité salariale} 
Et (T_BAREME_INDIVIDUEL.code_critere = 6 ET 
T_BAREME_INDIVIDUEL.choix = note_sal) 
{test la note du ou des brevets obtenus} 
Et (T_BAREME_INDIVIDUEL.code_critere = 8 ET 
T_BAREME_INDIVIDUEL.choix = note_brevet)
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Par Ordre CROISSANT T_ETUDIANT.date_naissance 
Page 31 sur 99 
Fin Pour 
Fin Tri_par_date_de_naissance; 
4.4.8 Description de la procédure Classement_table_trie 
On effectue une mise à jour du rang pour chaque candidat dans la table CANDIDAT_TRIE pour 
effectuer un classement. 
Procédure Classement_table_trie(Entrée: le_numero_dossier : réel, 
la_formation : chaîne de caractère) 
Précondition : le tableau T_CANDIDAT_TRIE est déjà créé et existe 
Effet : le tableau temporaire T_CANDIDAT_TRIE contient tous les candidats qui sont 
finalement triés et filtrés 
Début 
Mise à jour du tableau T_CANDIDAT_TRIE 
De la valeur rang := COMPTEUR(no_dossier) 
Ou T_CANDIDAT_TRIE.no_dossier = le_numero_dossier 
Et T_CANDIDAT_TRIE.formation = la_formation 
Par Ordre DECROISSANT note_de_bareme 
Fin Classement_table_trie; 
4.5 Description de la procédure d'attribution des centres 
Pour effectuer les admissions des candidats dans chaque centre, on a besoin de deux tables : 
CANDIDAT_TRIE et CAPACITE_CENTRE. Des variables témoins seront consultées pour savoir s'il reste de 
la place dans les divers centres, cela permettra de ne pas parcourir la liste des candidats triés en entier 
d'où un gain de temps. Les listes finalisées de chaque centre permettent de visualiser tous les candidats 
admissibles (car ils ne sont pas encore admis) avec tous les renseignements les concernant. 
Procédure Attribution_des_Centres 
Précondition : le tableau T_CANDIDAT_TRIE existe et remplit 
le tableau T_CAPACITE_CENTRE existe et initialisé avant la procédure 
Attribution_des_Centres 
Création des cinq centres d'admission 
Effet : Les tableaux T_ADMIS_ANTONY_VdB, T_ADMIS_CERGY, T_ADMIS_ETIOLLES, T_ADMIS_ST-GERMAIN et 
T_ADMIS_VERSAILLES contiennent des listes de candidats admissibles. 
Chaque quota de centre restant sera mis à jour à la fin de la procédure Attribution_des_Centres 
Variables auxiliaires : 
// renseignement relatif de chaque centre 
{initialisation des quotas pour chaque centre, ce sont des entiers} 
CentreA_quota := T_CAPACITE_CENTRE[ANTONY_VdB].quota_centre_initial 
CentreC_quota := T_CAPACITE_CENTRE[CERGY].quota_centre_initial 
CentreE_quota := T_CAPACITE_CENTRE[ETIOLLES].quota_centre_initial 
CentreS_quota := T_CAPACITE_CENTRE[ST-GERMAIN].quota_centre_initial 
CentreV_quota := T_CAPACITE_CENTRE[VERSAILLES].quota_centre_initial 
{déclaration des tableaux pour les cinq centres} 
Type T_ADMIS_ANTONY_VdB : tableau[1.. CentreA_quota] de ADMIS_ANTONY_VdB 
Type T_ADMIS_CERGY : tableau[1.. CentreC_quota] de ADMIS_CERGY 
Type T_ADMIS_ETIOLLES : tableau[1.. CentreE_quota] de ADMIS_ETIOLLES 
Type T_ADMIS_ST-GERMAIN : tableau[1.. CentreS_quota] de ADMIS_ST-GERMAIN
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Type T_ADMIS_VERSAILLES : tableau[1.. CentreV_quota] de ADMIS_VERSAILLES 
{initialisation des codes de chaque centre, ce sont des chaines de caractères} 
Code_CentreA := T_CAPACITE_CENTRE[ANTONY_VdB].code_centre 
Code_CentreC := T_CAPACITE_CENTRE[CERGY].code_centre 
Code_CentreE := T_CAPACITE_CENTRE[ETIOLLES].code_centre 
Code_CentreS := T_CAPACITE_CENTRE[ST-GERMAIN].code_centre 
Code_CentreV := T_CAPACITE_CENTRE[VERSAILLES].code_centre 
{détermine si le quota de chaque centre n'est pas dépassé, variable booléenne initialisée} 
CentreA_libre := booléen := VRAI 
CentreC_libre := booléen := VRAI 
CentreE_libre := booléen := VRAI 
CentreS_libre := booléen := VRAI 
CentreV_libre := booléen := VRAI 
// renseignement relatif a un département sélectionné 
nom_departement : caractère {contiendra le nom d'un département} 
quota_du_departement : entier {place restante du centre} 
code_du_departement : chaîne de caractère {code du centre} 
attribution : booléen {indiquera si la candidat a trouvé un centre} 
no_departement : 1..5 {indique le numéro de departement du candidat} 
no_candidat : 1..nb_candidat_total {indice du tableau T_CANDIDAT_TRIE} 
Page 32 sur 99 
Début 
// Il faut créer les cinq tables d'admission des centres 
no_candidat := 1 {on commence par traité le 1er candidat par ordre croissant du rang} 
{on va traiter chaque candidat un par un en commençant par la note de barème la plus forte jusqu'à 
la plus faible et on test si il reste de la place dans l'un des cinq centres} 
Tant Que ( ( CentreA_libre ET CentreC_libre ET CentreE_libre ET CentreS_libre 
ET CentreV_libre ) OU ( T_CANDIDAT_TRIE NON vide ) ) Faire 
{test si chaque centre a encore de la place; si il n'y en a plus, le booléen passe à FAUX} 
CentreA_libre := Test_place_Centre(CentreA_quota) 
CentreC_libre := Test_place_Centre(CentreC_quota) 
CentreE_libre := Test_place_Centre(CentreE_quota) 
CentreS_libre := Test_place_Centre(CentreS_quota) 
CentreV_libre := Test_place_Centre(CentreV_quota) 
{initialisation de valeurs} 
attribution := FAUX {le candidat n'a pas de centre} 
no_departement := 1 
{on va traiter les cinq voeux du candidat} 
Pour nom_departement de T_CANDIDAT_TRIE[no_candidat].departement1 à 
T_CANDIDAT_TRIE[no_candidat].departement5 Faire 
{on prend les informations du centre demandé} 
Selection_Information_Centre(nom_departement,quota_du_departement, 
code_du_departement) 
{on attribue un centre si son quota est supérieur à zéro} 
Si ( NON attribution ) Alors 
attribution := Traite_le_Centre(nom_departement, 
no_departement,quota_du_departement, code_du_departement) 
Fin Si 
{passe au numéro de département suivant du candidat} 
no_departement := no_departement + 1 
Fin Pour 
no_candidat := no_candidat + 1 {on traite le candidat suivant} 
Fin Tant Que 
{mise à jour des quotas restants de chaque centre} 
Mise_a_jour_des_Centres 
Fin Attribution_des_Centres; 
4.5.1 Description de la procédure Test_place_Centre 
Elle a pour objet de vérifier le quota du centre sélectionné et indique s'il reste de la place de libre.
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Fonction Test_place Centre(Entrée : le_quota : entier) retourne booléen 
Précondition : le quota du centre est supérieur ou égal à zéro 
Effet : retourne FAUX si il n'y a plus de place dans un centre 
Variables auxiliaires : tel_valeur : booléen := VRAI {on suppose qu'il y a de la place dans 
Page 33 sur 99 
un centre par défaut} 
Début 
Si ( le_quota <= 0 ) Alors tel_valeur := FAUX 
Fin Si 
Retourne tel_valeur 
Fin Test_place Centre; 
4.5.2 Description de la procédure Selection_Information_Centre 
Cette procédure va servir à initialiser les variables ‘quota_du_departement’ et ‘code_du_departement’ 
pour ensuite vérifier si le candidat est admissible dans le centre désigné. 
Procédure Selection_Information_Centre(Entrée : le_nom_departement : caractère, 
Sortie : le_quota_du_departement : entier, 
le_code_du_departement : chaîne de caractère) 
Précondition : le_nom_departement : caractère non vide 
Effet : les variables quota_du_departement et code_du_departement contiennent les 
renseignements sur le centre 
Début 
Si ( le_nom_departement = 'A' ) Alors {Antony} 
quota_du_departement := CentreA_quota 
code_du_departement := Code_CentreA 
Fin Si 
Si ( le_nom_departement = 'C' ) Alors {Cergy} 
quota_du_departement := CentreC_quota 
code_du_departement := Code_CentreC 
Fin Si 
Si ( le_nom_departement = 'E' ) Alors {Etiolles} 
quota_du_departement := CentreE_quota 
code_du_departement := Code_CentreE 
Fin Si 
Si ( le_nom_departement = 'S' ) Alors {St-Germain} 
quota_du_departement := CentreS_quota 
code_du_departement := Code_CentreS 
Fin Si 
Si ( le_nom_departement = 'V' ) Alors {Versailles} 
quota_du_departement := CentreV_quota 
code_du_departement := Code_CentreV 
Fin Si 
Fin Selection_Information_Centre; 
4.5.3 Description de la fonction Traite_le_Centre 
Elle va administrer les cinq centres et ajouter des candidats dans leurs listes. 
Fonction Traite_le_Centre(Entrée : le_nom_departement : caractère, 
le_no_departement : entier,
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
le_code_du_departement : chaîne de caractère, 
Sortie : le_quota_du_departement : entier) 
Précondition : les paramètres de la fonction sont bien initialisés 
Effet : Ajoute un candidat dans la table ADMIS_nom du centre 
Variables auxiliaires : tel_valeur : booléen {indique que l'on peut attribuer le centre} 
tel_nom_du_centre : chaîne de caractère {nom du tableau de 
Page 34 sur 99 
destination} 
Début 
tel_valeur := FAUX 
Donne_nom_du_centre(le_code_du_departement, tel_nom_du_centre) 
Si ( le_quota_du_departement > 0 ) Alors 
Inserer_Candidat_dans_Centre(le_nom_departement, le_no_departement, tel_nom_du_centre) 
le_quota_du_departement := le_quota_du_departement - 1 {on décrémente le quota du centre} 
tel_valeur := VRAI 
Fin Si 
Retourne tel_valeur 
Fin Traite_le_Centre; 
4.5.4 Description de la procédure Donne_nom_du_centre 
Grâce au code du département la procédure donne le nom du tableau sur lequel le candidat veut 
s'inscrire. 
Procédure Donne_nom_du_centre(Entrée : un_code_du_departement : chaîne de caractère, 
Sortie : un_nom_du_centre : chaîne de caractère) 
Précondition : code du departement non vide 
Effet : retourne le nom de la table du departement ayant le même code 
Début 
Si (un_code_du_departement = Code_CentreA ) Alors {Antony} 
un_nom_du_centre = "T_ADMIS_ANTONY_VdB" 
Fin Si 
Si (un_code_du_departement = Code_CentreC ) Alors {Cergy} 
un_nom_du_centre = " T_ADMIS_CERGY" 
Fin Si 
Si (un_code_du_departement = Code_CentreE ) Alors {Etiolles} 
un_nom_du_centre = " T_ADMIS_ETIOLLES" 
Fin Si 
Si (un_code_du_departement = Code_CentreS ) Alors {St-Germain} 
un_nom_du_centre = " T_ADMIS_ST-GERMAIN" 
Fin Si 
Si (un_code_du_departement = Code_CentreV ) Alors {Versailles} 
un_nom_du_centre = " T_ADMIS_VERSAILLES" 
Fin Si 
Fin Donne_nom_du_centre; 
4.5.5 Description de la procédure Inserer_Candidat_dans_Centre 
Elle va remplir la table ADMIS_nom du centre en y ajoutant les renseignements sur le candidat ainsi 
que mettre une étoile dans le numéro de département où est admis le candidat. 
Procédure Inserer_Candidat_dans_Centre(Entrée : the_nom_departement : caractère,
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 35 sur 99 
the_no_departement : entier, 
the_nom_du_centre : chaîne de caractère) 
Précondition : le tableau ADMIS_nom du centre existe 
'no_candidat' indique le candidat sélectionné 
Effet : ajoute un candidat dans le tableau de destination 
Début 
Si (the_no_departement = 1 ) Alors 
the_nom_du_centre[no_candidat].no_departement1 := '*' 
Fin Si 
Si (the_no_departement = 2 ) Alors 
the_nom_du_centre[no_candidat].no_departement2 := '*' 
Fin Si 
Si (the_no_departement = 3 ) Alors 
the_nom_du_centre[no_candidat].no_departement3 := '*' 
Fin Si 
Si (the_no_departement = 4) Alors 
the_nom_du_centre[no_candidat].no_departement4 := '*' 
Fin Si 
Si (the_no_departement = 5 ) Alors 
the_nom_du_centre[no_candidat].no_departement5 := '*' 
Fin Si 
Insérer Dans the_nom_du_centre 
Sélectionner trie.no_dossier, trie.no_candidature, etudiant.nom_usuel, etudiant.prenom, 
etudiant.adresse, etudiant.code_postal, etudiant.ville, formation, departement1, 
departement2, departement3, departement4, departement5, the_nom_departement, 
note_bareme, rang 
Depuis les tableaux T_CANDIDAT_TRIE trie, T_ETUDIANT etudiant 
Ou trie.no_dossier = etudiant.no_dossier 
Fin Inserer_Candidat_dans_Centre; 
4.5.6 Description de la procédure Mise_a_jour_des_Centres 
Elle effectue une mise à jour des places restantes dans les cinq centres. 
Procédure Mise_a_jour_des_Centres 
Précondition : les tableaux ADMIS_nom du centre existent 
Effet : met à jour le champ 'quota_centre_restant' dans chaque tableau 
Début 
{mise à jour du quota restant d'Antony} 
Changer le tableau T_ADMIS_ANTONY_VdB 
La valeur quota_centre_restant := CentreA_quota 
Ou T_ADMIS_ANTONY_VdB.code_centre = Code_CentreA 
{mise à jour du quota restant de Cergy} 
Changer le tableau T_ADMIS_CERGY 
La valeur quota_centre_restant := CentreC_quota 
Ou T_ADMIS_CERGY.code_centre = Code_CentreC 
{mise à jour du quota restant d'Etiolles} 
Changer le tableau T_ADMIS_ETIOLLES 
La valeur quota_centre_restant := CentreE_quota 
Ou T_ADMIS_ETIOLLES.code_centre = Code_CentreE 
{mise à jour du quota restant de Saint-Germain} 
Changer le tableau T_ADMIS_ST-GERMAIN 
La valeur quota_centre_restant := CentreS_quota 
Ou T_ADMIS_ST-GERMAIN.code_centre = Code_CentreS
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
{mise à jour du quota restant de Versailles} 
Changer le tableau T_ADMIS_VERSAILLES 
La valeur quota_centre_restant := CentreV_quota 
Ou T_ADMIS_VERSAILLES.code_centre = Code_CentreV 
Page 36 sur 99 
Fin Mise_a_jour_des_Centres; 
4.6 Description des procédures de mise à jour des atypiques et des dérogataires 
Les atypiques et les dérogataires sont des cas particulier, on les distinguera de chaque centre en y indiquant le 
nombre total de chacun des deux. On peut les différencier facilement : un dérogataire un rang égal à zéro parce 
qu'il ne compte pas dans la hiérarchie des candidats triés alors que l'atypique lui, en plus d'avoir une note de 
barème supérieur ou égale à trente, il doit passer un entretien. 
4.6.1 Description de la procédure Met_le_nombre_de_derogataire 
Elle effectue une mise à jour du champ 'nbre_derogataire' de la table CAPACITE_CENTRE. Les 
dérogataires ont le champ 'rang' de la table CANDIDATURE_TRIE à 0. 
Procédure Met_le_nombre_de_derogataire 
Précondition : les tableaux ADMIS_nom du centre existent 
Effet : met à jour le champ 'nbre_derogataire' de chaque centre 
Début 
{Met le nombre total de dérogataire d'Antony} 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_derogataire = nbre_derogataire + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_ANTONY_VdB 
OU rang = 0 
) 
{Met le nombre total de dérogataire de Cergy } 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_derogataire = nbre_derogataire + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_CERGY 
OU rang = 0 
) 
{Met le nombre total de dérogataire d'Etiolles } 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_derogataire = nbre_derogataire + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_ETIOLLES 
OU rang = 0 
) 
{Met le nombre total de dérogataire de Saint-Germain } 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_derogataire = nbre_derogataire + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_ST-GERMAIN 
OU rang = 0 
) 
{Met le nombre total de dérogataire de Versailles } 
Mise à jour dans le tableau T_CAPACITE_CENTRE
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
La valeur nbre_derogataire = nbre_derogataire + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_VERSAILLES 
OU rang = 0 
) 
Page 37 sur 99 
Fin Met_le_nombre_de_derogataire; 
4.6.2 Description de la procédure Met_le_nombre_d_atypique 
Elle effectue une mise à jour du champ 'nbre_atypique' de la table CAPACITE_CENTRE. Les atypiques ont le 
champ 'condition_requise' de la table CANDIDATURE à 10 et le champ 'libre10' de la table ETUDIANT à 1. 
Procédure Met_le_nombre_d_atypique 
Précondition : les tableaux ADMIS_nom du centre existent 
Effet : met à jour le champ 'nbre_atypique' de chaque centre 
Début 
{Met le nombre total d'atypique d'Antony} 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_atypique = nbre_atypique + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_ANTONY_VdB, T_ETUDIANT, T_CANDIDATURE 
OU T_ADMIS_ANTONY_VdB.no_dossier = T_ETUDIANT.no_dossier 
AND T_ADMIS_ANTONY_VdB.no_dossier = T_CANDIDATURE.no_dossier 
AND T_ADMIS_ANTONY_VdB.no_candidature = 
T_CANDIDATURE.no_candidatute 
AND T_ETUDIANT.libre10 = 1 
AND T_CANDIDATURE.condidtion_requise = '10' 
) 
{Met le nombre total d'atypique de Cergy } 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_atypique = nbre_atypique + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_CERGY, T_ETUDIANT, T_CANDIDATURE 
OU T_ADMIS_CERGY.no_dossier = T_ETUDIANT.no_dossier 
AND T_ADMIS_CERGY.no_dossier = T_CANDIDATURE.no_dossier 
AND T_ADMIS_CERGY.no_candidature = 
T_CANDIDATURE.no_candidatute 
AND T_ETUDIANT.libre10 = 1 
AND T_CANDIDATURE.condidtion_requise = '10' 
) 
{Met le nombre total d'atypique d'Etiolles } 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_atypique = nbre_atypique + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_ETIOLLES, T_ETUDIANT, T_CANDIDATURE 
OU T_ADMIS_ETIOLLES.no_dossier = T_ETUDIANT.no_dossier 
AND T_ADMIS_ETIOLLES.no_dossier = T_CANDIDATURE.no_dossier 
AND T_ADMIS_ETIOLLES.no_candidature = 
T_CANDIDATURE.no_candidatute 
AND T_ETUDIANT.libre10 = 1 
AND T_CANDIDATURE.condidtion_requise = '10' 
) 
{Met le nombre total d'atypique de Saint-Germain } 
Mise à jour dans le tableau T_CAPACITE_CENTRE
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
La valeur nbre_atypique = nbre_atypique + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_ST-GERMAIN, T_ETUDIANT, T_CANDIDATURE 
OU T_ADMIS_ST-GERMAIN.no_dossier = T_ETUDIANT.no_dossier 
AND T_ADMIS_ST-GERMAIN.no_dossier = T_CANDIDATURE.no_dossier 
AND T_ADMIS_ST-GERMAIN.no_candidature = 
T_CANDIDATURE.no_candidatute 
AND T_ETUDIANT.libre10 = 1 
AND T_CANDIDATURE.condidtion_requise = '10' 
) 
{Met le nombre total d'atypique de Versailles } 
Mise à jour dans le tableau T_CAPACITE_CENTRE 
La valeur nbre_atypique = nbre_atypique + 1 
( 
Selectionne no_dossier 
De la table T_ADMIS_VERSAILLES, T_ETUDIANT, T_CANDIDATURE 
OU T_ADMIS_VERSAILLES.no_dossier = T_ETUDIANT.no_dossier 
AND T_ADMIS_VERSAILLES.no_dossier = T_CANDIDATURE.no_dossier 
AND T_ADMIS_VERSAILLES.no_candidature = 
T_CANDIDATURE.no_candidatute 
AND T_ETUDIANT.libre10 = 1 
AND T_CANDIDATURE.condidtion_requise = '10' 
) 
Page 38 sur 99 
Fin Met_le_nombre_d_atypique;
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
5 FONCTIONNEMENT 
Pour passer de l’algorithme au programme, certains changements ont été utiles. Une description de chaque 
table est obligatoire pour connaître l’organisation des données traitées, la référence des tables se trouve dans 
les pages suivantes. 
Toutes les tables vont être dans la base de données, pour reconnaître très facilement celles utilisées pour 
l’affectation des PE, le nom des tables commencera par le préfixe « SIG97 ». 
Ainsi la table SIG97_ERREUR_CANDIDAT indiquera très clairement les candidats avec leur numéro de dossier 
que l’on ne prend pas en considération dans le tri, soit qu’il manque des éléments pour la poursuite du tri du 
candidat, soit que c’est un candidat atypique qui n’a pas rempli les conditi ons à l’entretien, soit parce qu’un 
candidat est dérogataire : si il a une note d’entretien égale à 70 on ne l'inclut pas dans le tri car il est prioritaire 
sur les autres, sinon on indique qu’il a eu une note inférieur à 70 voir nulle. 
Page 39 sur 99 
Voici ce que cela peut donner : 
Message 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300047, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : A-typique numéro 97300121, Condition_Requise = 10, Libre10 = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300176, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : BON dérogataire numéro 97300177, Condition_Requise = 2, Note_Entretien = 70 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300191, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300195, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300303, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300317, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300338, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : BON dérogataire numéro 97300412, Condition_Requise = 2, Note_Entretien = 70 
PAS PRIS EN COMPTE : BON dérogataire numéro 97300471, Condition_Requise = 2, Note_Entretien = 70 
PAS PRIS EN COMPTE : A-typique numéro 97300496, Condition_Requise = 10, Libre10 = 0 
PAS PRIS EN COMPTE : BON dérogataire numéro 97300530, Condition_Requise = 2, Note_Entretien = 70 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300599, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300619, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300705, Cond. Req. = 2, Note Ent. = 0 
PAS PRIS EN COMPTE : BON dérogataire numéro 97300773, Condition_Requise = 2, Note_Entretien = 70
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
La table SIG97_ COMMENTAIRE_PRG indique très clairement ce que fait le programme, quelle procédure ou 
fonction est terminée, s’il y a eu des erreurs durant le programme tel que la réécriture dans une table. Voici la 
trace d'une table une fois le tri terminé : 
Page 40 sur 99 
Message 
La procédure Initialise_Candidat_Desc est FINIE. 
La procédure Tri_par_note_de_bareme est FINIE. 
La procédure Mise_a_jour_table_TRIE est FINIE. 
La procédure Tri_par_selection est FINIE. 
La procédure Ajout_des_derogataires est FINIE. 
La procédure Met_la_capacite_initiale du centre 92V est FINIE. 
La procédure Met_la_capacite_initiale du centre 95 est FINIE. 
La procédure Met_la_capacite_initiale du centre 91 est FINIE. 
La procédure Met_la_capacite_initiale du centre 78S est FINIE. 
La procédure Met_la_capacite_initiale du centre 78V est FINIE. 
La procédure Mise_a_jour_des_quotas_restant est FINIE. 
La procédure Attribution_des_Centres est FINIE. 
La procédure Met_admission_dans_CANDIDATURE est FINIE. 
La procédure Met_le_Nombre_Atypique est FINIE. 
La procédure Met_le_Nombre_Derogataire est FINIE. 
Regarder la table SIG97_ERREUR_CANDIDAT : candidats qui ne sont pas pris en compte. 
Aucune erreur durant le programme. 
Le booléen « arret_du_programme » est initialisé à FAUX, si une erreur s’est produite au cours du programme, il 
passe à VRAI et le programme n’exécute plus les principales procédures et fonctions qui suivent l’erreur. 
Trois principales exceptions sont traitées : l’un test si une table est déjà remplie (on n'a pas effacé les champs de 
la table), les deux autres indiquent clairement ce qui s’est passé et invite l’utilisateur à lire les scripts pour agir 
en conséquence : les dépassements des extensions de « roll back ». 
Voici une brève explication de chaque procédure et fonction : 
 La procédure Efface_contenu_des_tables : elle permet d’effacer le contenu des tables, très utile lorsque 
l’on veut refaire un tri. 
 La procédure Message_Utilisateur : insère dans la table SIG97_COMMENTAIRE_PRG la chaîne de 
caractère « mon_message ». 
 La procédure Inscrit_Erreur : insère dans la table SIG97_ERREUR_CANDIDAT la chaîne de caractère 
« mon_message ».
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
 La procédure Initialise_Candidat_Desc : on effectue un tri des candidats ou plutôt on « purge » les 
candidats qui ne sont pas pris en compte dans le tri. On prend déjà des renseignements sur les « bons » 
candidats : le numéro de dossier, le numéro de candidature, la formation désirée, les cinq voeux du 
candidat (les départements), la note de barème ainsi que la date de retour du dossier. Chaque 
information prise dans la table CANDIDATURE va être placée dans une table temporaire 
SIG97_CANDIDAT_TMP. 
 La procédure Tri_par_note_de_bareme : elle va chercher la date de naissance du candidat dans la table 
ETUDIANT et sa note de préprofessionnalisation dans la table BAREME_INDIVIDUEL puis des 
informations de la table SIG97_CANDIDAT_TMP pour tout mettre dans la table 
SIG97_CANDIDAT_SELECT_TMP. 
 La procédure Mise_a_jour_table_TRIE : étape importante, c’est là que l’on prend les notes de « 
barémage » pour trier les candidats. On prend les notes d'activité d'enseignement, l’activité éducative et 
salariale puis la note de brevet de la table BAREME_INDIVIDUEL pour les mettre dans la table 
SIG97_CANDIDAT_TRIE_TMP. 
 La procédure Candidature_trie : tri les candidats pour leur attribuer un rang. La fonction 
Test_le_nbre_de_candidat retourne VRAI s’il y a au moins un candidat à trier car cela évite dans la 
procédure Tri_par_selection d’appeler huit fois la procédure Candidature_trie. Bien sur toutes les 
informations recueillies de la table SIG97_CANDIDAT_TRIE_TMP seront mises dans la table 
SIG97_CANDIDAT_TRIE : tous les candidats triés pourront être visualisés ici. 
 La procédure Ajout_des_derogataires : Prend tous les candidats de la table CANDIDATURE qui sont des 
dérogataires. On les met directement dans les centres et on incrémente le quota initial de chaque 
centre par le nombre de dérogataire placé dedans. Pour le quota des centres on utilise la table 
SIG97_CAPACITE_CENTRE. Pour admettre chaque candidat dans les centres, on utilise les tables 
SIG97_ADMIS_nom du centre. Comme on ne peut leur mettre un rang académique, ils auront un rang 
égale à zéro pour indiquer qu'ils ne sont pas classés dans la hiérarchie. Ainsi on pourra mieux les repérer 
dans les listes d'admission de chaque centre. 
 La procédure Met_la_capacite_initiale : permet d’initialiser les variables globales de la procédure 
Page 41 sur 99 
Attribution_centre. 
 La procédure Test_place_centre : retourne VRAI si le quota du centre est supérieur à zéro. 
 La procédure Donne_information_centre : lorsqu’un candidat a sélectionné un département, cette 
procédure donne les informations que l’on a besoin, elles seront traitées dans la fonction 
Traite_le_centre qui va mettre à jour la liste de chaque centre. 
 La procédure Attribution_centre : attribue au candidat un centre dont il a fait le voeu. On prend les 
dernières informations du candidat : son nom, son prénom et son adresse de la table ETUDIANT ainsi 
que celles de SIG97_CANDIDAT_TRIE. 
 La procédure Mise_a_jour_quota_restant : elle est prévue lorsqu’il y a plus de place dans le centre que 
de candidats. Lorsque l'on impose des quotas dit de "surbooking" (c'est le nombre de place total plus le 
nombre de candidat inscrit sur la liste complémentaire), on peut distinguer très nettement les places 
restantes. 
 La procédure Met_admission_dans_candidature : prend les informations de chaque candidat admis 
dans les centres, puis fait une mise à jour des champs indiquant que le candidat est admissible dans la 
table CANDIDATURE. 
 Les procédures Met_le_nombre_atypique et Met_le_nombre_derogataire : mise à jour des champs de 
la table SIG97_CANDIDAT_TRIE pour indiquer le nombre exact de dérogataires et d’atypique de chaque 
centre. 
Voici la table SIG97_CAPACITE_CENTRE lorsque le programme est terminé :
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
code_centre quota_centre_ini tial quota_centre_res tant nbre_atypique nbre_derogata i re nom_du_centre 
92V 767 0 53 3 Antony Val de Bievre 
91 940 0 7 20 Etiolles 
95 902 0 45 18 Cergy 
78S 580 0 16 0 St-Germain en Laye 
78V 245 0 11 3 Versailles 
Les tables qui ont le suffixe « TMP » peuvent être effacées à la fin du programme. Elles ont servis à contenir des 
informations sur les candidats et éviter de créer une table unique et de faire soit la saisie des informations en un 
bloque (très coûteux en temps) ou par une mise à jour avec des « UPDATE » (dépassement de capacité de la 
mémoire et très coûteux en temps). 
Page 42 sur 99 
Table SIG97_CAPACITE_CENTRE 
Nom de la colonne Type Longueur SQL Description 
code_centre chaine de 
caractère 
3 CHAR numéro de code du centre 
quota_centre_initial réel 22 FLOAT quota de place d' entrée du centre initial 
quota_centre_restant réel 22 FLOAT quota de place d' entrée du centre restant 
nbre_atypique réel 22 FLOAT indique le nombre total d'atypique du centre 
nbre_derogataire réel 22 FLOAT indique le nombre total de dérogataire du centre 
nom_du_centre chaine de 
caractère 
25 CHAR nom du centre en entier 
Table SIG97_CANDIDAT_TRIE 
Nom de la colonne Type Longueur SQL Description 
no_dossier chaine de 
caractère 
10 CHAR numéro de dossier du candidat 
no_candidature réel 22 FLOAT numéro de candidature du candidat 
formation chaine de 
caractère 
4 CHAR nom de la formation demandée 
departement1 chaine de 
caractère 
3 CHAR premier voeu du candidat 
departement2 chaine de 
caractère 
3 CHAR deuxième voeu du candidat 
departement3 chaine de 
caractère 
3 CHAR troisième voeu du candidat 
departement4 chaine de 
caractère 
3 CHAR quatrième voeu du candidat
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
Page 43 sur 99 
departement5 chaine de 
caractère 
3 CHAR cinquième voeu du candidat 
note_bareme réel 22 FLOAT note du bareme du candidat 
note_prepo réel 22 FLOAT note de preprofessionalisation 
date_naissance date 7 DATE date de naissance du candidat 
date_retour_dossier date 7 SYSDATE date de retour du dossier 
enseignement caractère 1 CHAR indique si la case est cochée pour 
l'enseignement 
peri_educ_scol caractère 1 CHAR indique si la case est cochée pour l'activité 
éducative 
activite_salarie caractère 1 CHAR indique si la case est cochée pour l'activité de 
salarié 
note_brevet réel 22 FLOAT note totale des brevets obtenus 
rang nombre 22 FLOAT rang attribue au candidat 
Table SIG97_ADMIS_nom du centre 
Nom de la colonne Type Longueur SQL Description 
no_dossier chaine de 
caractère 
10 CHAR numéro de dossier du candidat 
no_candidature réel 22 FLOAT numéro de candidature du candidat 
nom_usuel chaine de 
caractère 
25 CHAR nom usuel du candidat 
prenom chaine de 
caractère 
20 CHAR prénom du candidat 
adresse chaine de 
caractère 
255 CHAR adresse complète du candidat 
code_postal chaine de 
caractère 
5 CHAR code postal du candidat 
ville chaine de 
caractère 
25 CHAR ville du candidat 
departement1 chaine de 
caractère 
3 CHAR premier voeu du candidat 
departement2 chaine de 
caractère 
3 CHAR deuxième voeu du candidat 
departement3 chaine de 
caractère 
3 CHAR troisième voeu du candidat 
departement4 chaine de 
caractère 
3 CHAR quatrième voeu du candidat 
departement5 chaine de 
caractère 
3 CHAR cinquième voeu du candidat 
no_departement1 caractère 1 CHAR repère du premier voeu du candidat
Rapport de stage à l’IUFM de Versailles Frédéric Sagez 
no_departement2 caractère 1 CHAR repère du deuxième voeu du candidat 
no_departement3 caractère 1 CHAR repère du troisième voeu du candidat 
no_departement4 caractère 1 CHAR repère du quatrième voeu du candidat 
no_departement5 caractère 1 CHAR repère du cinquième voeu du candidat 
Page 44 sur 99 
departement_choisis chaine de 
caractère 
3 CHAR voeu du candidat où il est admis 
formation chaine de 
caractère 
4 CHAR nom de la formation demandée 
note_bareme réel 22 FLOAT note du bareme du candidat 
rang nombre 22 FLOAT rang attribue au candidat 
Table SIG97_ERREUR_CANDIDAT 
Nom de la colonne Type Longueur SQL Description 
erreur_candidat chaine de 
caractère 
100 CHAR phrase indiquant l' erreur trouvé sur le candidat 
Table SIG97_COMMENTAIRE_PRG 
Nom de la colonne Type Longueur SQL Description 
message chaine de 
caractère 
120 CHAR phrase indiquant le déroulement du programme
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles
Rapport de stage à l’IUFM de Versailles

Contenu connexe

Tendances

rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFENadir Haouari
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 
Rapport de projet de fin d'année
Rapport de projet de fin d'année Rapport de projet de fin d'année
Rapport de projet de fin d'année kaies Labiedh
 
Rapport de projet de fin d’étude
Rapport  de projet de fin d’étudeRapport  de projet de fin d’étude
Rapport de projet de fin d’étudeOumaimaOuedherfi
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbiFaten Chalbi
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESTombariAhmed
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEOussama Djerba
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...Ramzi Noumairi
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Saadaoui Marwen
 
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)zakia saadaoui
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Anouar Kacem
 
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Ghali Rahma
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPTriyadadva
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webSalma Gouia
 
Rapport de PFE - Houssem SAKLI (ISIMM)
Rapport de PFE - Houssem SAKLI (ISIMM)Rapport de PFE - Houssem SAKLI (ISIMM)
Rapport de PFE - Houssem SAKLI (ISIMM)Houssem Sakli
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 

Tendances (20)

rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Rapport de projet de fin d'année
Rapport de projet de fin d'année Rapport de projet de fin d'année
Rapport de projet de fin d'année
 
Rapport de projet de fin d’étude
Rapport  de projet de fin d’étudeRapport  de projet de fin d’étude
Rapport de projet de fin d’étude
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbi
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDES
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
 
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015
 
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
Rapport-PFE2013-RahmaGhali-Gestion des Candidatures(Jaas,Primefaces,JFS2,JPA)
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
 
Rapport de PFE - Houssem SAKLI (ISIMM)
Rapport de PFE - Houssem SAKLI (ISIMM)Rapport de PFE - Houssem SAKLI (ISIMM)
Rapport de PFE - Houssem SAKLI (ISIMM)
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 

En vedette

Réseau local sous windows 2003 server
Réseau local sous windows 2003 serverRéseau local sous windows 2003 server
Réseau local sous windows 2003 serverOussama BenGharbi
 
Mise en place d'un serveur de mail complet linux server wiki
Mise en place d'un serveur de mail complet   linux server wikiMise en place d'un serveur de mail complet   linux server wiki
Mise en place d'un serveur de mail complet linux server wikidebaros
 
Ecole ESMA : Rapport de stage - Agence Achamiya Voyages
Ecole ESMA : Rapport de stage - Agence Achamiya VoyagesEcole ESMA : Rapport de stage - Agence Achamiya Voyages
Ecole ESMA : Rapport de stage - Agence Achamiya VoyagesMehdi Hamime
 
Les outils de diagnostic en maintenance
Les outils de diagnostic en maintenanceLes outils de diagnostic en maintenance
Les outils de diagnostic en maintenanceFabio Sanders
 
JunOS - Fondamentaux
JunOS - FondamentauxJunOS - Fondamentaux
JunOS - FondamentauxThomas Moegli
 
Lire les tables de routage
Lire les tables de routageLire les tables de routage
Lire les tables de routagebelhadj_rached
 
Network Simulation - Prague 2015
Network Simulation - Prague 2015Network Simulation - Prague 2015
Network Simulation - Prague 2015Wardner Maia
 
Maintenance et dépannage d'un ordinateur
Maintenance et dépannage d'un ordinateurMaintenance et dépannage d'un ordinateur
Maintenance et dépannage d'un ordinateurhaniachraf
 
Rapport simo issam
Rapport simo issamRapport simo issam
Rapport simo issamsimomans
 
Les commandes CISCO (routeur)
Les commandes CISCO (routeur)Les commandes CISCO (routeur)
Les commandes CISCO (routeur)EL AMRI El Hassan
 
vpn-site-a-site-avec-des-routeurs-cisco
 vpn-site-a-site-avec-des-routeurs-cisco vpn-site-a-site-avec-des-routeurs-cisco
vpn-site-a-site-avec-des-routeurs-ciscoCamara Assane
 
Prise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPERPrise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPERHermann GBILIMAKO
 
Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0Dujol Lionel
 

En vedette (20)

Réseau local sous windows 2003 server
Réseau local sous windows 2003 serverRéseau local sous windows 2003 server
Réseau local sous windows 2003 server
 
Mise en place d'un serveur de mail complet linux server wiki
Mise en place d'un serveur de mail complet   linux server wikiMise en place d'un serveur de mail complet   linux server wiki
Mise en place d'un serveur de mail complet linux server wiki
 
Services IP
Services IPServices IP
Services IP
 
Ecole ESMA : Rapport de stage - Agence Achamiya Voyages
Ecole ESMA : Rapport de stage - Agence Achamiya VoyagesEcole ESMA : Rapport de stage - Agence Achamiya Voyages
Ecole ESMA : Rapport de stage - Agence Achamiya Voyages
 
Virtuals LAN
Virtuals LANVirtuals LAN
Virtuals LAN
 
Les outils de diagnostic en maintenance
Les outils de diagnostic en maintenanceLes outils de diagnostic en maintenance
Les outils de diagnostic en maintenance
 
JunOS - Fondamentaux
JunOS - FondamentauxJunOS - Fondamentaux
JunOS - Fondamentaux
 
Lire les tables de routage
Lire les tables de routageLire les tables de routage
Lire les tables de routage
 
La Maintenance1
La Maintenance1La Maintenance1
La Maintenance1
 
Network Simulation - Prague 2015
Network Simulation - Prague 2015Network Simulation - Prague 2015
Network Simulation - Prague 2015
 
Maintenance et dépannage d'un ordinateur
Maintenance et dépannage d'un ordinateurMaintenance et dépannage d'un ordinateur
Maintenance et dépannage d'un ordinateur
 
Rapport projet
Rapport projetRapport projet
Rapport projet
 
Soutenance Finale
Soutenance FinaleSoutenance Finale
Soutenance Finale
 
Rapport simo issam
Rapport simo issamRapport simo issam
Rapport simo issam
 
Les commandes CISCO (routeur)
Les commandes CISCO (routeur)Les commandes CISCO (routeur)
Les commandes CISCO (routeur)
 
vpn-site-a-site-avec-des-routeurs-cisco
 vpn-site-a-site-avec-des-routeurs-cisco vpn-site-a-site-avec-des-routeurs-cisco
vpn-site-a-site-avec-des-routeurs-cisco
 
Prise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPERPrise en Main des équipements JUNIPER
Prise en Main des équipements JUNIPER
 
Présentation Projet de fin d'études
Présentation Projet de fin d'étudesPrésentation Projet de fin d'études
Présentation Projet de fin d'études
 
Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0
 
Cisco ASA
Cisco ASACisco ASA
Cisco ASA
 

Similaire à Rapport de stage à l’IUFM de Versailles

Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti MohammedMohammed JAITI
 
Application du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au VietnamApplication du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au VietnamViet-Trung TRAN
 
Rapport de cadrage sap casp - resins4 you
Rapport de cadrage sap   casp - resins4 youRapport de cadrage sap   casp - resins4 you
Rapport de cadrage sap casp - resins4 youMICKAEL QUESNOT
 
application-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdf
application-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdfapplication-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdf
application-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdfElMoumneNihal
 
These hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectif
These hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectifThese hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectif
These hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectifAbdelhak Essoulahi
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...younes elmorabit
 
POO en C++
POO en C++POO en C++
POO en C++elharraj
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineMohamed Amine Mahmoudi
 
Rapport PFE | Remitec | Automatisation d'une installation de production des e...
Rapport PFE | Remitec | Automatisation d'une installation de production des e...Rapport PFE | Remitec | Automatisation d'une installation de production des e...
Rapport PFE | Remitec | Automatisation d'une installation de production des e...Zouhair Boufakri
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !Massimo Russo
 
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !Massimo Russo
 
939a864fc3c5089f327861787d72b476 08-lebras (1)
939a864fc3c5089f327861787d72b476 08-lebras (1)939a864fc3c5089f327861787d72b476 08-lebras (1)
939a864fc3c5089f327861787d72b476 08-lebras (1)Btissame Ouchia
 
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...tayebbousfiha1
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilahMoez Moezm
 

Similaire à Rapport de stage à l’IUFM de Versailles (20)

Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
Application du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au VietnamApplication du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au Vietnam
 
Rapport de cadrage sap casp - resins4 you
Rapport de cadrage sap   casp - resins4 youRapport de cadrage sap   casp - resins4 you
Rapport de cadrage sap casp - resins4 you
 
vanderpypendaniel_msc
vanderpypendaniel_mscvanderpypendaniel_msc
vanderpypendaniel_msc
 
application-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdf
application-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdfapplication-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdf
application-de-gestion-de-cong-zehouani-fatma-767_compress (1).pdf
 
These hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectif
These hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectifThese hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectif
These hec -_ecole_des_mines_sur_le_tableau_de_bord_prospectif
 
rapport
rapportrapport
rapport
 
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...Rapport PFE: PIM (Product Information Management) - A graduation project repo...
Rapport PFE: PIM (Product Information Management) - A graduation project repo...
 
POO en C++
POO en C++POO en C++
POO en C++
 
TD1.pdf
TD1.pdfTD1.pdf
TD1.pdf
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
 
Rapport PFE | Remitec | Automatisation d'une installation de production des e...
Rapport PFE | Remitec | Automatisation d'une installation de production des e...Rapport PFE | Remitec | Automatisation d'une installation de production des e...
Rapport PFE | Remitec | Automatisation d'une installation de production des e...
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
 
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
La VoIP, une solution d'avenir pour les entreprises... mais pas seulement !
 
939a864fc3c5089f327861787d72b476 08-lebras (1)
939a864fc3c5089f327861787d72b476 08-lebras (1)939a864fc3c5089f327861787d72b476 08-lebras (1)
939a864fc3c5089f327861787d72b476 08-lebras (1)
 
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
Rapport de Stage PFE - Développement d'un Projet ALTEN MAROC Concernant le Sy...
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Recommandations organismes de formation métiers internet
Recommandations organismes de formation métiers internet Recommandations organismes de formation métiers internet
Recommandations organismes de formation métiers internet
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilah
 

Plus de Frédéric Sagez

Threat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devicesThreat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devicesFrédéric Sagez
 
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité ProjetE-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité ProjetFrédéric Sagez
 
Atari ST : Histoire de l'OS
Atari ST : Histoire de l'OSAtari ST : Histoire de l'OS
Atari ST : Histoire de l'OSFrédéric Sagez
 
HOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasksHOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasksFrédéric Sagez
 
Atari ST - History of The OS
Atari ST - History of The OSAtari ST - History of The OS
Atari ST - History of The OSFrédéric Sagez
 
AFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGsAFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGsFrédéric Sagez
 
J&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task ForceJ&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task ForceFrédéric Sagez
 
Présentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctionsPrésentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctionsFrédéric Sagez
 
ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA Frédéric Sagez
 
Présentation de Planete Presse.ppt
Présentation de Planete Presse.pptPrésentation de Planete Presse.ppt
Présentation de Planete Presse.pptFrédéric Sagez
 
ASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILEASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILEFrédéric Sagez
 
ASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven DesignASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven DesignFrédéric Sagez
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAFrédéric Sagez
 
Planète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseauPlanète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseauFrédéric Sagez
 
Projet COLSA - Story-board v1
Projet COLSA  - Story-board v1Projet COLSA  - Story-board v1
Projet COLSA - Story-board v1Frédéric Sagez
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 

Plus de Frédéric Sagez (17)

Threat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devicesThreat Modelling and managed risks for medical devices
Threat Modelling and managed risks for medical devices
 
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité ProjetE-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
E-SYNERGIE - Présentation des outils du nouveau Plan Qualité Projet
 
Atari ST : Histoire de l'OS
Atari ST : Histoire de l'OSAtari ST : Histoire de l'OS
Atari ST : Histoire de l'OS
 
HOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasksHOPEX V2R1 : Database maintenance tasks
HOPEX V2R1 : Database maintenance tasks
 
Atari ST - History of The OS
Atari ST - History of The OSAtari ST - History of The OS
Atari ST - History of The OS
 
AFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGsAFUP - Mini conférences PHP - Les LOGs
AFUP - Mini conférences PHP - Les LOGs
 
J&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task ForceJ&Cie - Présentation de la Task Force
J&Cie - Présentation de la Task Force
 
J&Cie - Focus du Projet
J&Cie - Focus du ProjetJ&Cie - Focus du Projet
J&Cie - Focus du Projet
 
Présentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctionsPrésentation de l'Architecture de Développement du projet TRANS@ctions
Présentation de l'Architecture de Développement du projet TRANS@ctions
 
ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA ASFA - Architecture cible du projet COLSA
ASFA - Architecture cible du projet COLSA
 
Présentation de Planete Presse.ppt
Présentation de Planete Presse.pptPrésentation de Planete Presse.ppt
Présentation de Planete Presse.ppt
 
ASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILEASFA - Méthodologie - AGILE
ASFA - Méthodologie - AGILE
 
ASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven DesignASFA - Méthodologie - Domain Driven Design
ASFA - Méthodologie - Domain Driven Design
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSA
 
Planète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseauPlanète presse : recommandations du futur réseau
Planète presse : recommandations du futur réseau
 
Projet COLSA - Story-board v1
Projet COLSA  - Story-board v1Projet COLSA  - Story-board v1
Projet COLSA - Story-board v1
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 

Dernier

WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 

Dernier (20)

WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 

Rapport de stage à l’IUFM de Versailles

  • 1. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Frédéric Sagez D.U.T. Informatique Institut Universitaire Technologique de Vélizy Années 1995-1997 RAPPORT DE STAGE Page 1 sur 99
  • 2. Rapport de stage à l’IUFM de Versailles Frédéric Sagez J'ai effectué du 5 mai au 30 juin 1997 un stage au Service Informatique de Gestion de l'Institut Universitaire de Formation des Maîtres de l'académie de Versailles. La tâche qui m'a été confiée pendant cette période a été de faire un programme écrit en PL/SQL s ur un serveur de base de données Oracle. Ce programme consiste à effectuer les admissions des candidats qui s'inscrivent en première année pour devenir professeur d'écoles (inscription au C.A.P.E.). La première étape du stage a été de faire un cahier des charges afin de définir les besoins des différents utilisateurs. A partir de celui-ci, j'ai conçu, réalisé et testé un programme qui répond à tous les critères demandés. Mais pour comprendre à quoi va servir le programme, le chapitre I présente l'I.U.F.M. de Versailles ainsi que la structure ou j'ai effectué mon stage. Le chapitre II défini très clairement tous les objectifs qui m'ont été demandés. Les autres chapitres comme le chapitre IV est la plus grosse partie de ce rapport, il explique la méthodologie employée pour concevoir le programme en PL/SQL ainsi que toutes les données et informations supplémentaires qui m'ont été apportés. Page 2 sur 99
  • 3. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Sommaire 1 I.U.F.M. : Institut universitaire de formation des maîtres..............................................................................5 1.1 Origine des I.U.F.M. ......................................................................................................................................................................... 5 1.2 La structure des I.U.F.M. ................................................................................................................................................................ 5 1.3 Les fonctions de l'I.U.F.M. .............................................................................................................................................................. 6 1.4 Les différents services ..................................................................................................................................................................... 6 2 Les objectifs............................................................................................................................................. 10 3 Le Cahier des charges............................................................................................................................... 13 3.1 Introduction ....................................................................................................................................................................................13 3.2 Analyse de l’existant......................................................................................................................................................................13 3.2.1 Le matériel ..........................................................................................................................................................................14 3.3 Etude du système ..........................................................................................................................................................................14 3.3.1 Analyse des besoins non-fonctionnels ..........................................................................................................................14 3.3.2 Analyse des besoins fonctionnels...................................................................................................................................15 3.4 Evolution du programme..............................................................................................................................................................17 4 Le programme ......................................................................................................................................... 19 4.1 Principe de fonctionnement ........................................................................................................................................................19 4.2 Les structures..................................................................................................................................................................................20 4.2.1 La table des candidats triés .............................................................................................................................................20 4.2.2 La table des capacités des centres .................................................................................................................................20 4.2.3 La table des erreurs sur les candidats ...........................................................................................................................21 4.2.4 La table des admissions dans les centres......................................................................................................................22 4.3 Le programme principal................................................................................................................................................................23 4.4 Description de la procédure de tri des candidats ....................................................................................................................24 4.4.1 Description de la procédure Initialise_T_CANDIDAT_DESC ......................................................................................25 4.4.2 Description de la sous procédure Inscrit_Erreur .........................................................................................................27 4.4.3 Description de la procédure Tri_par_note_de_bareme ............................................................................................28 4.4.4 Description de la fonction Nombre_de_candidat_par_note_de_bareme .............................................................28 4.4.5 Description de la procédure Selectionne_Candidat_pour_table_temporaire.......................................................28 4.4.6 Description de la procédure Tri_par_note_de_prepo ................................................................................................29 4.4.7 Description de la sous procédure Tri_par_critere_de_selection .............................................................................30 4.4.8 Description de la procédure Classement_table_trie ..................................................................................................31 4.5 Description de la procédure d'attribution des centres ...........................................................................................................31 4.5.1 Description de la procédure Test_place_Centre .........................................................................................................32 4.5.2 Description de la procédure Selection_Information_Centre ....................................................................................33 4.5.3 Description de la fonction Traite_le_Centre ................................................................................................................33 4.5.4 Description de la procédure Donne_nom_du_centre................................................................................................34 4.5.5 Description de la procédure Inserer_Candidat_dans_Centre...................................................................................34 4.5.6 Description de la procédure Mise_a_jour_des_Centres ............................................................................................35 4.6 Description des procédures de mise à jour des atypiques et des dérogataires .................................................................36 4.6.1 Description de la procédure Met_le_nombre_de_derogataire ...............................................................................36 4.6.2 Description de la procédure Met_le_nombre_d_atypique.......................................................................................37 5 Fonctionnement ...................................................................................................................................... 39 6 Utilisation du programme......................................................................................................................... 45 6.1 Lancement du script ......................................................................................................................................................................45 6.2 Erreurs..............................................................................................................................................................................................46 6.3 Vérifications ....................................................................................................................................................................................46 6.4 Optimisation ...................................................................................................................................................................................48 7 Jeux de tests ............................................................................................................................................ 50 7.1 Constations et vérifications du tri des candidats .....................................................................................................................50 7.2 Constations et vérifications sur l’admission des candidats....................................................................................................52 8 Conclusion............................................................................................................................................... 56 Page 3 sur 99
  • 4. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 9 Annexe.................................................................................................................................................... 57 9.1 Le programme SQL (affect97.sql) ...............................................................................................................................................57 9.2 Création des tables sous Oracle (creat1_0.sql) ........................................................................................................................93 9.3 Gestion de la mémoire (space2.sql) ...........................................................................................................................................98 Page 4 sur 99
  • 5. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 1 I.U.F.M. : INSTITUT UNIVERSITAIRE DE FORMATION DES MAITRES 1.1 Origine des I.U.F.M. Les Instituts Universitaire de Formation des Maitres ont été créées par la loi d'orientation sur l'éducation n° 89- 486 du 10 Juillet 1989. Les I.U.F.M. sont des établissements d'enseignement supérieur et, à ce titre, bénéficient de l'autonomie pédagogique et administrative : ce sont des établissements publics administratifs. Les I.U.F.M. sont rattachées aux universités des différentes académies. Des conventions sont signées ent re le président de l'établissement de rattachement et le directeur de l'institut après avis des conseils d'administration des deux établissements. De part ce changement de statut des établissements de formation des enseignants, la profession a été revalorisée et le recrutement ne s'effectue plus au même niveau. Au mois de Septembre 1991, les I.U.F.M. ont ouverts leurs portes, en remplacement des Ecoles Normales qui existaient par le passé car elles étaient gérées au niveau départemental (il en existait une pour chaque département). Désormais il n'existe plus qu'un I.U.F.M. par académie, ainsi leur création a entraîné le regroupement d'entités distinctes au sein d'un même établissement. 1.2 La structure des I.U.F.M. Chaque I.U.F.M. a hérité au moment de sa création des locaux et du matériel des Ecoles Normales dont il est le successeur. Page 5 sur 99 Présentation de l'organisation d'un I.U.F.M. : Il y a un siège qui est le centre de direction et de gestion de l'ensemble de l'établissement dont le rôle est de répartir les ressources entre les différents centres éparpillés à l'intérieur de l'académie selon leurs besoins. Au siège il y a un directeur qui a la charge de l'ensemble de l'institut, il est assisté par un secrétaire général et d'un agent comptable qui ont pour mission la gestion et la répartition du budget de l'I.U.F.M. Il y a des centres de formation dont le rôle est d'assurer la préparation des étudiants au concours de l'Education Nationale, la formation des professeurs stagiaires pendant leur deuxième année. Ces centres de formation sont répartis à travers l'académie administrée par l'I.U.F.M. Chaque centre a un directeur qui est responsable avec son équipe des orientations pédagogiques suivis par l'établissement ainsi que de son administration. Dans l'académie de Versailles, il y a 6 centres de formations :  Versailles (au même endroit que le siège),  Antony Jouhaux,
  • 6. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 6 sur 99  Antony Val de Bièvre,  Cergy,  Etiolles,  Saint Germain en Laye. 1.3 Les fonctions de l'I.U.F.M. La fonction essentielle de l'I.U.F.M. est la sélection et la formation des futurs enseignants de l'éducation nationale. Cette fonction s'exerce dans les centres de formation qui ont chacun leurs spécificités :  Le centre d'Antony Jouhaux forme les futurs enseignants technologiques dans les lycées et collèges, on y prépare le Certificat d'Aptitude au Professorat Technologique (CAPET) ainsi que des enseignants pour les Lycées Professionnels (LP) en y préparant le Certificat d'Aptitude au Professorat des Lycées Professionnels.  Les centres d'Antony Val de Bièvre, Cergy et Etiolles accueillent les candidats pour la préparation du Certificat d'Aptitude au Professorat des Ecoles (CAPE ou PE), de l'Enseignement Secondaire (CAPES) ainsi que l'Education Physique et Sportive (CAPEPS).  Les centres de Saint Germain en Laye et Versailles quant à eux sont chargés de préparer les CAPE ou le CAPES. La personne désirant s'inscrire dans l'une des branches doit avoir obligatoirement une licence sauf pour les CAPE ou l'on peut s'inscrire avec un diplôme équivalent au BAC+3 comme par exemple le Diplôme National Technique Supérieur après un Diplôme Universitaire Technologique. L'étudiant fait d'abord une démarche de préinscription. Son dossier passe alors devant une commission d'admission qui sélectionne les personnes qui vont disposer d'une place à l'I.U.F.M. Après son admission, l'étudiant passe une année dans un centre de l'I.U.F.M. pour préparer le concours auquel il est candidat. A l'issue de cette première année d'enseignement pédagogique, le candidat passe son concours. S’il l'obtient, le candidat entre en deuxième année en qualité de professeur stagiaire, sinon il peut redoubler sa première année s’il a eu l'avis favorable de ses professeurs. Durant la deuxième année, le professeur stagiaire est formé sur le "terrain" dans des classes. A la fin de son année, il passe devant une commission de validation du stage qui propose sa titularisation. Si la commission de titularisation lui donne un avis favorable alors le candidat deviendra professeur titulaire avec un poste d'enseignement à vie comme fonctionnaire, sinon il peut redoubler en renouvelant son stage. Chaque année, l'académie de Versailles enregistre sur l'ensemble de ses centres, plus de 15 000 demandes de dossier de préinscription à l'I.U.F.M. Sur ces 15 000 demandes de dossier, environ 12 000 seront soumises à la commission d'étude qui est chargée de les valider. Parmi ces dossiers, moins de 4 000 candidats pourront suivre une formation de CAPE en première année pour l'année scolaire 1997-1998. 1.4 Les différents services Pour coordonner ses diverses formations et assurer le bon fonctionnement de l'I.U.F.M., il y a au siège de l'I.U.F.M. à Versailles des services administratifs. Leur principal travail est de donner aux centres de formation les moyens matériels pour former les personnes inscrites à l'I.U.F.M.
  • 7. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 7 sur 99 Ces services sont au nombre de quatre : 1. Le service comptable qui a la responsabilité du budget de l'I.U.F.M., sa mission est la gestion et la redistribution des ressources de l'établissement, 2. Le service scolarité qui gère les préinscriptions, le suivi des dossiers inscrits à l'I.U.F.M. ainsi que le versement des allocations aux étudiants de première et de deuxième année, 3. Le service du personnel et des moyens qui assure la gestion du personnel administrat if et enseignant de l'I.U.F.M., des moyens nécessaires à la pédagogie et à l'enseignement dans les centres. 4. Le service informatique de gestion qui est chargé de donner aux trois autres services les moyens informatiques (logiciels et matériels) ainsi que dans chaque centre, ses principales activités sont :  La maintenance des réseaux (il y en à trois, voir le chapitre V),  L'installation et la maintenance du matériel informatique,  L'installation et la maintenance des logiciels informatiques,  La formation du personnel des centres sur des progiciels,  Le traitement et la maintenance des bases de données,  L'achat de matériel informatique (ils ont leur propre budget). La particularité de ce service est qu'il est autonome vis-à-vis des autres services et ne dépend que de la direction générale. On peut le voir sur le schéma hiérarchique de la page suivante (numéro six).
  • 8. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Equipe de Direction Siège de Versailles Service Comptable Service du Personnel et des Moyens Service Scolarité Service Informatique Page 8 sur 99 Directeur de Centre Service administratif et Financier Administration Centre d'Antony Jouhaux V ) Les différents réseaux Pédagogie Directeur de Centre Service administratif et Financier Administration Pédagogie Directeur de Centre Service administratif et Financier Administration Pédagogie Centre d'Etiolles Directeur de Centre Service administratif et Financier Administration Pédagogie Centre de St Germain en Laye Centre d'Antony Val de Bièvre Directeur de Centre Service administratif et Financier Administration Pédagogie Centre de Versailles Directeur de Centre Service administratif et Financier Administration Pédagogie Centre de Cergy Bien sur l'équipe de direction est en relation directe avec le directeur de chaque centre ainsi que les autres services du siège qui sont en rapport avec le chef du service administratif et financier de chaque centre. Le service informatique agit surtout dans les services administratifs et pédagogiques des six centres.
  • 9. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Il existe trois réseaux pour chaque centre de l'I.U.F.M. de Versailles, les serveurs se trouvent au siège et pour chaque service se trouve un réseau spécifique :  Le service scolarité a un réseau qui s'appuie sur une base de donnée placée dans chaque centre de l'I.U.F.M. La base de donnée "Prothée" contient les étudiants actuellement inscrits dans ces centres mais aussi ceux qui ont déposés leurs dossiers d'inscription pour cette année. Le nom du serveur est "Bécassine" sous Windows NT et cette base de données est administrée sous Oracle. Le logiciel qui gère les inscriptions s'appelle lui aussi "Prothée", et c'est à partir de ce logiciel que le personnel du service informatique et administratif de chaque centre va gérer toutes les informations sur les candidats qui préparent un certificat dans un centre I.U.F.M.  Le service du personnel et des moyens est équipé d'un réseau pour l'administration de son personnel administratif et enseignant. Ce réseau fonctionne sous une application nommée "G2i" et ne peut être utilisé que sur des ordinateurs de type Macintosh. Malheureusement ce réseau va être abandonné car il y a eu trop de maintenance à faire.  Le service comptable s'est vu imposé une comptabilité centralisée depuis l'intervention du ministère de l'éducation nationale en 1994. Elle a donc son propre réseau de type client/serveur dont le serveur se trouve au siège. L'application "Gérico" utilise le système de base de données relationnel Oracle sous Unix. La particularité de ce réseau est que les ordinateurs clients fonctionnent en émulation de terminal VT220. Chaque opérateur dans les centres saisisse leurs dépenses sur leurs postes et la comptabilité générale du siège de l'I.U.F.M. engage le paiement des factures. Page 9 sur 99
  • 10. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 2 LES OBJECTIFS Avant d’expliquer comment j’ai procédé à l’élaboration du cahier des charges, je vais expliquer où j’interviens dans le cycle des préinscriptions au C.A.P.E. des candidats. Depuis que les I.U.F.M. existent, les inscriptions se font par dossier ou par concours. Comme l’I.U.F.M. de Versailles doit gérer les candidats de l’académie de Versailles, il y a beaucoup de demandes. Depuis l’ année dernière, les préinscriptions se font par « Minitel ». Chaque candidat s’inscrit en donnant des informations diverses comme par exemple les diplômes qu’il a obtenus, et à partir de ces informations, le centre de Cergy va générer un fichier et l’envoyer au siège à Versailles. Le service informatique va transformer ce fichier et l’importer dans la base de données « Prothée » en pratiquant quelques routines de vérification (dé doublonnage, saisie de dossier non valide, ...). A partir des données recueillies, le service scolarité prépare un dossier pour le candidat et l’envoie par la poste en fixant un rendez -vous dans un centre pour valider le dossier dûment rempli. Le jour ou le candidat se présente à un centre d’I.U.F.M., une personne du service scolarité va saisir les informations sur le dossier que le candidat a rapporté ainsi qu’un justificatif des pièces demandées (diplôme certifié, une fiche de salaire indiquant que le candidat à travailler, etc. ...). Pendant la saisie du dossier, le candidat peut voir les informations qui sont mises par le biais d’un moniteur, un autre étant à la disposition de la personne qui inscrit le candidat sur un logiciel nommé « Prothée » qui a été conçus pour la saisie des préinscriptions. La saisie étant finie, ses données sont directement validées dans la base de données. Lorsque la date d’inscription est dépassée et que chaque centre à valider tous les candidats, le service informatique va trier tous ces candidats selon des critères de « barémage ». Une fois les candidats triés, le service va gérer les admissions dans les centres d’après un quota de place pour chacun d’entre eux, puis des listes de chaque centre vont être imprimées ainsi que des statistiques pour la direction du siège. Tous les candidats admissibles seron t traités par une commission de validation et recevront une lettre indiquant que leur candidature a été acceptée ou refusée. L'objectif du stage à l'I.U.F.M. de Versailles dans le service informatique est de reprendre le programme du tri et des admissions des candidats inscrits pour la préparation au C.A.P.E. de l'année 1996 en vue de l'améliorer. Le programme "voeu.sql" dont le script se trouve au chapitre III (les scripts) ne convenait plus pour cette année car le barémage et les voeux ont changé ainsi que les critères de sélection des différents candidats. Donc à la demande de Monsieur Vieux-Combe, un cahier des charges 'Affect97' a été établi pour spécifier les demandes, d'une part pour l'utilisateur du service informatique et d'autre part pour celui du service scolarité. Le nouveau programme demandé sera écrit en PL/SQL pour être lancé sur l'outil SQL*PLUS d'Oracle. L'un des directeurs assistants du centre de Versailles, Madame Quittet, a proposé un tri de chaque candidat très poussé pour éviter les égalités entre eux, de plus un rang académique leur sera affecté pour les classer hiérarchiquement. Le principe du tri des candidats ne concerne que les inscrits qui ont une note de barème supérieur ou égale à trente et vérifie bien si les candidats atypiques sont inclus et qu'ils ont bien obtenu une note d'entretien différent de zéro. Page 10 sur 99
  • 11. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Les candidats "dérogataires" quant à eux sont gérés directement par une procédure qui les affectent dans les centres demandés, car ils sont bien entendus prioritaire sur les autres candidats. La première étape du stage à été de faire un planning des différentes étapes de conception du programme :  Le cahier des charges pour spécifier les besoins des utilisateurs,  La conception du programme en faisant des algorithmes,  La réalisation du programme et les divers tests de vérification,  Et la validation du programme : mise en place du programme sur le serveur NT ainsi que son Mai Juin mercredi 7 au jeudi 22 au jeudi 29 au mardi 17 au mercredi 21 mercredi 28 lundi 16 jeudi 19 PLANNIFICATION du projet 'Affect97'. Cahier des charges (spécifications et besoins) (algorithmes) Réalisation et Tests (codage du programme) (utilisation) TOTAL en jour * : 29 9 5 13 2 Page 11 sur 99 exécution. Voici la première version du diagramme de GANT du projet : Conception Validation Mais suite à des modifications de critères pendant le projet et suite aux enjeux des jalons finaux, voici la dernière version :
  • 12. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Pour mieux distinguer les différentes étapes de conception, voici le cycle de vie : Du 12/05 au 21/05 Du 17/06 au 19/06 Du 22/05 au 16/06 Page 12 sur 99 Spécification - Etudes des besoins Cahier des charges Validation Mise en place du Programme Conception Algorithmes Tests Jeux de tests Réalisation Codage en PL/SQL
  • 13. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 13 sur 99 3 LE CAHIER DES CHARGES 3.1 Introduction L’Institut Universitaire de Formation des Maîtres de l’Académie de Versailles est le centre de direction et de gestion des différentes formations des futurs enseignants. Le siège de l’I.U.F.M. de Versailles gère six centres de formation : Cergy, Versailles, Antony Val de Bièvre, Etiolles, Saint Germain en Laye et Antony Jouhaux qui préparent la formation au Certificat d’Aptitude de Professorat d’Enseignement Secondaire. Leur rôle est d’assurer la préparation des étudiants au concours de l’Educa tion National des professeurs d’écoles. Des candidats s’inscrivent sur le Minitel pour préparer leur propre formation de professeur avant la fin du mois de Mai. Les informations recueillies seront retranscrites dans une base de données appelée « Prothée ». Le service scolarité du siège de Versailles qui gère les admissions demande au service informatique d’écrire un programme concernant les candidats de première année pour les postes de professeurs d’écoles. Le programme devra trier par ordre décroissant chaque candidat suivant une note de barème (un étudiant est « barèmé » suivant les diplômes obtenus et les différents stages qu’il a effectués). Des critères de sélection supplémentaires sont ajoutés pour traiter les égalités entre les différentes personnes, dans un premier temps on comparera les notes obtenues à la préprofessionnalisation (un second tri sera effectué par ordre de grandeur : de la note la plus forte à la plus faible), si on n'arrive toujours pas à les départager dans un deuxième temps on se basera sur les critères suivants dans cet ordre : si le candidat a fait au moins six mois de service d'enseignement ou de surveillance ou périscolaire dans un établissement scolaire ou d'activité périscolaire; si il a eu une activité péri - éducative ou périscolaire dans le cadre d'une institution (établissement scolaire, municipalité ou association) avec au moins deux expériences distinctes pendant une durée de six semaines cumulées ou de soixante heures de soutien scolaire; si il a eu une activité salariée de six mois à temps plein autre que l'enseignement; et dans l'ordre si il a obtenu le Brevet d'Aptitude à la Formation de Directeur de centre ou le Brevet d'Aptitude à la Formation d'Animateur de centre, ou le Brevet d'Education Sportive ou le Brevet National de Secourisme. Si on n'arrive toujours pas à les départager, le dernier critère sera l’âge du candidat tout en favorisant les plus jeunes (un troisième tri sera effectué toujours par ordre de grandeur : du plus jeune au plus vieux), puis on attribuera un rang pour chaque candidat. Une fois le tri fini, il ne reste plus qu’à affecter un centre pour chaque candidat suivant le nom de département sélectionné (le candidat avait choisi les cinq départements par ordre de préférence), ensuite le programme décrémentera le nombre d’inscription possible du centre où il est inscrit provisoirement. A la fin du programme, les meilleurs élèves retenues dans les cinq départements seront mis dans une liste à la disposition du service scolarité. 3.2 Analyse de l’existant
  • 14. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 3.2.1 Le matériel L’utilisation du programme se fera sur le serveur Windows NT appelé « Bécassine » qui a un accès direct sur la base de données. Voici sa configuration actuelle :  C'est un ordinateur de type P.C. équipé de 2 processeurs Pentium 100 et qui est muni Page 14 sur 99 d’un moniteur,  Une mémoire vive (RAM) de 64 Méga Octets,  Un disque dur d’une capacité de 2,1 Giga Octets pour disposer des différents logiciels,  Une carte réseau Ethernet (LAN) de type 3COM. 3.2.1.1 Les logiciels L’ordinateur P.C. est muni du système d’exploitation DOS version 6.22 avec Windows NT version 3.5.1. L’application PL/SQL sur la base de données fonctionnera sous ORACLE version 7 avec ses outils de développements pour Windows (on aura surtout besoin du logiciel SQL*PLUS). 3.3 Etude du système 3.3.1 Analyse des besoins non-fonctionnels 3.3.1.1 Le développement Le développement du logiciel s’effectuera sur un ordinateur P.C. de type Pentium 200 avec 32 Méga Octets de mémoire vive connecté qui est au réseau sur la base de données, un disque dur de 2,1 Giga Octets servira de support permettant ainsi d’effectuer des tests sur des bases fictives afin de déboguer le programme avant son utilisation finale. Cela permettra aussi au développeur de mesurer la place mémoire requise pour les données stockées ainsi que la place disponible pour le support de fichier. Cette évaluation servira entre autres à l’examen des capacités d’adaptation du logiciel (par exemple la création de tables temporaires). 3.3.1.2 L’utilisateur Il doit se trouver sous Oracle dans la base de données « Prothée » pour lancer le programme écrit en PL/SQL qui portera le nom de « affect97.sql ». Le programme demandera des informations à l’utilisateur afin d’optimiser le tri des candidats, selon des critères de choix sur les différentes formations à traiter. Des messages indiquant des erreurs à la fin du tri ou exceptionnellement pendant celui-ci seront répertoriés dans une table. Il se terminera par l’affichage d’informations indiquant à l’utilisateur que le tri est fini, ensuite il pourra visualiser le résultat final.
  • 15. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 3.3.2 Analyse des besoins fonctionnels 3.3.2.1 Services offerts à l’utilisateur du service informatique La première étape du programme lors de son exécution sera de sélectionner les candidats dont le numéro de dossier commencera par l’année en cours (exemple ‘97’) ainsi que le nom de la formation (par exemple on peut demander la première lettre : ‘E’ pour PE, signifiant Professeur d’Ecole) ce qui permettra à l’utilisateur de traiter les différents types de formation. Le programme n’est plus interrompu lorsqu'il est lancé sauf erreur grave, par exemple aucun moyen d’accès à une table. Pour chaque candidat un rang lui sera attribué, donc les affectations se feront par ordre décroissant des notes de barème obtenues par celui-ci. Pour chaque note de barème (inclus entre 30 et 69), on va traiter les égalités entre les candidats par des critères de sélections (le tri se fait séquentiellement) :  1er critère : on repartit chaque candidat par note de préprofessionnalisation (il y en a six Page 15 sur 99 : 0, 3, 5, 6, 8, 10),  2ème critère : pour chaque note de préprofessionnalisation on répartira les candidats en deux blocs : ceux qui ont fait six mois d'enseignement ou non,  3ème critère : puis de ces deux blocs on repartitionnera ceux qui ont eu une expérience péri-éducative (ou périscolaire) ou pas,  4ème critère : puis de ces deux blocs on repartitionnera ceux qui ont eu une expérience de salariée ou non,  5ème critère : pour départager définitivement les candidats, on regarde si ils ont obtenu un ou plusieurs brevets (valeur possible : 1, 2, 3) et on les départage dans quatre blocs différents (0 : pas de brevet, 1 : B.A.F.D. 2 : B.A.F.A. ou B.E.S. 3 : B.N.S.)  Le dernier critère triera les candidats suivant leur âge tout en favorisant les plus jeunes dans chaque bloc. Puis on ajoutera tous ces derniers blocs triés dans la table des candidats admissibles.
  • 16. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 8 10 0 Note préprofessionalisation candidat déjà trié : note de barème compris entre 47 et 69. Tous les candidats triés : note de barème égale à 46. Voici un exemple de répartition du tri séquentiel par critère de sélection Page 16 sur 99 30 31 ... 46 ... 69 70 3 5 6 0 8 0 5 0 5 Table C A NDIDATURE Note d'enseignement A ctiv ité péri-éducativ e 0 5 0 5 0 5 0 5 activ ité de salariée 0 1 2 3 0 1 2 3 note des brev ets tri de chaque bloc par ordre croissant de l'âge des candidats. on rajoute tous les bloques à la table des candidats triés.
  • 17. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 17 sur 99 D'autres conditions ont été rajoutées :  Les candidats atypiques (personne qui a un diplôme de plus de cinq ans et qui veut préparer le concours de professeur des écoles) sont inclus dans le tri, il suffira tout simplement de vérifier un champ d'une table pour savoir s’il a passé un entretien. Bien entendu il faudra qu'il ait une note de barème supérieur ou égale à trente.  Les candidats dérogataires (mère de trois enfants et plus ou sportif de haut niveau) vont directement être admis dans les centres qu'ils ont souhaités à la condition d'avoir obtenu une note d'entretien égale à soixante dix. Si des erreurs sont constatées pendant le tri alors elles seront rapportées dans une table qui sera créée à cet effet. L’utilisateur pourra donc les regarder pendant le programme sans perturbation du tri. Un scénario sera remis à la disposition de l’utilisateur afin de le guider dans les différentes étapes possibles du programme. 3.3.2.2 Services offerts à l’utilisateur du service scolarité Une liste finalisée sera mise à la disposition pour le service scolarité, elle comportera les informations du candidat admissible de la façon suivante :  Le numéro de dossier,  Le numéro de candidature,  Le nom du candidat,  Le prénom du candidat,  L’adresse du candidat,  Les 5 départements qu’il a sélectionnés par ordre de préférence,  Le nom du département où il a été admis,  La formation souhaitée,  La note de barème,  Le rang définitif du candidat. A la visualisation, l’utilisateur pourra remarquer que le nom du département qui a été attribué au candidat est suivis d’une étoile, on pourra ainsi connaître lequel de ses voeux a été sélectionné. 3.4 Evolution du programme Le programme sera modulaire, ainsi l’utilisateur pourra le modifier sans gêner le coeur du programme principal car le PL/SQL est un langage procédure, on peut ainsi ajouter des fonctions ou des procédures.
  • 18. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Des commentaires seront implantés dans le programme pour aider l’utilisateur à changer la configuration du programme, ainsi des petits modules d’exemples seront rajoutés afin de faciliter la compréhension. Certaines erreurs seront gérées par des exceptions, ceci permettra de les répertorier dans une table en donnant la solution. On peut demander d'autre renseignement lors du lancement du programme. Page 18 sur 99
  • 19. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 19 sur 99 4 LE PROGRAMME 4.1 Principe de fonctionnement Nous travaillons sur une base de données avec des tables. Comme le programme est écrit en PL/SQL et que c'est un langage procédural nous pouvons modulariser celui-ci avec des procédures ou des fonctions. Afin de faciliter la compréhension des algorithmes, chaque table sera représentée par un tableau contenant une structure du type de la table employé à chaque case. Pour aller dans les cases et récupérer les informations il suffira d'un indice alors qu'avec le langage SQL il faut tout simplement faire un 'SELECT'. Le programme va trier les candidats par critère, dans la base on a besoin des tables qui détiennent les informations dont on a besoin :  La table CANDIDATURE contient le numéro de dossier et de candidature, la formation souhaitée, les cinq départements rangés par ordre de préférence ou souhaite étudier le candidat (les voeux) ainsi que la note de barème,  La table ETUDIANT contient le nom usuel, le prénom, la date de naissance et l'adresse complète du candidat,  La table BAREME_INDIVIDUEL contient la note de préprofessionnalisation, sensibilisation ainsi que la note du brevet obtenu ou encore la note d'entretien pour les dérogataires. On peut savoir si des "items" ont été cochés : si le candidat à six mois d'enseignement, une activité péri -éducative ou périscolaire, une activité salariée de plus de six mois. A partir de ces tables, le programme va en créer d'autres :  La table CANDIDAT_TRIE : tous les candidats validés seront triés par ordre croissant du rang avec une note de barème compris entre 30 et 69,  La table ERREUR_CANDIDAT : elle reportera les erreurs rencontrées sur des candidats comme par exemple l'oublie de mettre un cinquième département dans les voeux (on ne sait jamais),  Les tables ADMIS_ANTONY_VdB, ADMIS_CERGY, ADMIS_ETIOLLES, ADMIS_ST-GERMAIN et ADMIS_VERSAILLES contiendront les informations relatives aux candidats qui sont admissibles dans ces centres, elles formeront chacune une liste qui sera traitée par une autre personne du service informatique, Remarque : la table CAPACITE_CENTRE sera créée avant le programme. Elle renfermera toutes les informations concernant les cinq centres où seront admis les candidats. Le programme aura surtout besoin du quota de chaque centre pour y placer chaque candidat. A la fin du programme, une mise à jour sera effectuée dans la table CANDIDATURE pour y valider le champ 'formation' qui contiendra le nom de la formation que le candidat a souhaité, 'dossier_recevable' et 'admission' s'il a bien été admis dans un centre (O pour oui et N pour Non). La table CAPACITE_CENTRE a un champ 'quota_centre_restant' dont la valeur finale sera attribuée par le programme.
  • 20. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 20 sur 99 4.2 Les structures 4.2.1 La table des candidats triés // STRUCTURE Type CANDIDAT_TRIE : Article {renseignement relatif au candidat} no_dossier : chaîne de caractère, no_candidature : réel, formation : caractère, {les cinq départements choisis par le candidat} departement1 : chaîne de caractère, departement2 : chaîne de caractère, departement3 : chaîne de caractère, departement4 : chaîne de caractère, departement5 : chaîne de caractère, {les critères de sélection} note_bareme : réel, { note de barème  [30..69] } preprofessionnalisation : caractère, { la note de prepro.  {0,3,5,6,8,10} } date_naissance : date, { sous la forme DD-MM-YY } date_retour_dossier : date, {le candidat est valide si la date > 01-01-1900} { renseignement complémentaire sur ses autres notes obtenu par le candidat} enseignement : caractére { 'O' pour oui ou 'N' pour non } peri_educ_scol : caractére { 'O' pour oui ou 'N' pour non } activite_salarie : caractére { 'O' pour oui ou 'N' pour non } note_brevet : réel { note compris entre 0,1,2,3 } {chaque candidat sera classé par la note de barème la plus forte à la plus faible} rang : entier; // TABLEAU Type T_CANDIDAT_TRIE : tableau[1..nb_candidat] de CANDIDAT_TRIE Chaque case du tableau T_CANDIDAT_TRIE contient la structure CANDIDAT_TRIE concernant un candidat. Pour aller d'un candidat à un autre, il suffit de prendre un indice inclus entre un et le nombre total de candidats inscrits dans la table. 4.2.2 La table des capacités des centres // STRUCTURE Type CAPACITE_CENTRE : Article
  • 21. Rapport de stage à l’IUFM de Versailles Frédéric Sagez { le code du centre est égal au nom du département pour faciliter la recherche } code_centre : chaîne de caractère, { place totale dans un centre } quota_centre_initial : réel, { place restante dans un centre } quota_centre_restant : réel, { nombre total de candidat atypique dans chaque centre } nbre_atypique : réel, { nombre total de candidat derogataire dans chaque centre } nbre_derogataire : réel, { nom du centre en entier } nom_du_centre : chaîne de caractère; // TABLEAU { type énumération } T_indice_centre = ( ANTONY_VdB, CERGY, ETIOLLES, ST-GERMAIN, VERSAILLES ) Type T_ CAPACITE_CENTRE : tableau[T_indice_centre] de CAPACITE_CENTRE Chaque centre a son propre quota de place de candidat admissible. Le quota restant du centre sera mis à jour lorsque tous les candidats auront été admis, donc à la fin des attributions le résultat devra être égal à zéro. Le code pour chaque centre est :  ANTONY_VdB : "92V" (Antony Val de Bièvres)  CERGY : "95"  ETIOLLES : "91"  ST-GERMAIN : "78S" (Saint Germain en Laye)  VERSAILLES : "78V" Page 21 sur 99 4.2.3 La table des erreurs sur les candidats // STRUCTURE Type ERREUR_CANDIDAT : Article message : chaîne de caractère; // TABLEAU Type T_ ERREUR_CANDIDAT : tableau[1..nb_erreur] de ERREUR_CANDIDAT Le tableau contiendra toutes les erreurs rencontrées lors du tri des candidats. Par exemple un candidat a oublié de mettre un cinquième département, le message d'erreur indiquera la position du candidat dans la table CANDIDATURE est le type d'erreur lui concernant : département numéro cinq manquant.
  • 22. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 4.2.4 La table des admissions dans les centres Page 22 sur 99 // STRUCTURE Type ADMIS_nom du centre : Article {renseignement relatif au candidat} no_dossier : chaîne de caractère, no_candidature : réel, nom_usuel : chaîne de caractère, prénom : chaîne de caractère, adresse : chaîne de caractère, code_postal : chaîne de caractère, ville : chaîne de caractère, {les cinq départements choisis par le candidat} departement1 : chaîne de caractère, departement2 : chaîne de caractère, departement3 : chaîne de caractère, departement4 : chaîne de caractère, departement5 : chaîne de caractère, {détermine quel numéro de département où le candidat est affecté par une étoile} no_departement1 : caractère, no_departement2 : caractère, no_departement3 : caractère, no_departement4 : caractère, no_departement5 : caractère, {indique le nom du département où le candidat est admis} departement_choisis : chaîne de caractère, { le nom de la formation souhaitée par le candidat } formation : caractère, { on inclus les dérogataires qui ont une note de bareme > 69 } note_bareme : réel, { note de barème  [30..90] } {chaque candidat sera classé par ordre croissant du rang} rang : entier; // TABLEAU Type T_ ADMIS_nom du centre : tableau[1..nb_candidat_par_centre] de ADMIS_nom du centre  Il y aura cinq tableaux correspondant aux centres d'ANTONY Val de Bièvre, CERGY, ETIOLLES,
  • 23. Rapport de stage à l’IUFM de Versailles Frédéric Sagez ST-GERMAIN et VERSAILLES (nom du centre). Chaque centre a un nombre maximum de candidat (représenté par 'nb_candidat_par_centre'), par exemple le centre de Cergy avait une capacité de 800 places l'année dernière. La structure donne plus de renseignements sur le candidat admissible, cela facilitera le travail de la personne qui gérera les admissions pour chaque centre. Le programme SQL pour créer les tables se trouve en annexe. Affichage d'un message d'invite avec demande d'information Saisis des valeurs demandées à l'affichage {On va se servir des tables CANDIDATURE, ETUDIANT et BAREME_INDIVIDUEL pour prendre les informations de chaque candidat} Appel de la procédure de tri des candidats {la table CANDIDAT_TRIE est créée contenant les candidats valides à l'admission} {une table ERREUR_CANDIDAT sera créée s'il y a eu une ou des erreurs sur les candidats inscrits} {on ajoute les dérogataires dans les centres en leur mettant un rang égal à zéro} Appel de la procédure d'ajout des dérogataires {les cinq tables pour les centres seront créées} Appel de la procédure d'attribution des centres {les cinq tables pour les centres sont remplies} {les champs 'formation', 'dossier_recevable' et 'admission' de la table CANDIDATURE seront modifiés par l'utilisateur du service informatique} Mise à jour des candidats admissibles {met à jour le nombre total de dérogatiare et d'atypique dans chaque centre} Appel de la procédure Met_le_nombre_de_derogataire Appel de la procédure Met_le_nombre_d_atypique Page 23 sur 99 4.3 Le programme principal Le programme principal fonctionnera de la façon suivante : DECLARATION des variables globales. DEBUT FIN Comme on peut le constater, le programme suit des étapes. Les principales sont le tri des candidats et l'attribution de candidats dans chaque centre. L'utilisateur peut ainsi en ajouter d'autres comme par exemple l'affichage de table entre les diverses procédures pour vérifier que tous c’est bien déroulé. Ou sinon, il peut effectuer un tri dans un premier temps et plus tard, relancer le programme en ne faisant que les admissions. Le programme SQL du programme principal se trouve en annexe.
  • 24. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 4.4 Description de la procédure de tri des candidats Cette procédure va trier tous les candidats inscrits qui se trouvent dans la table CANDIDATURE par ordre décroissant des notes de barème selon les critères suivant :  La note de barème compris entre 30 et 69,  La date de retour de dossier supérieur au 01-01-1900,  Tous les renseignements que le programme a besoin sur le candidat sont biens mis,  On traite les égalités entre chaque candidat par la note de préprofessionnalisation, les critères de sélection ainsi que de l'âge en cas d'égalité persistante. Page 24 sur 99 Procédure TRI_CANDIDAT( affiche_erreur : booléen ) Précondition : le tableau T_CANDIDATURE existe et remplit avec au moins un candidat la saisie du numéro de dossier ainsi que de la formation doit être validé Effet : le tableau T_CANDIDAT_TRIE est créée et remplit selon des critères de sélection si des erreurs sont rencontrées alors affiche_erreur prendra la valeur VRAI pour indiquer qu'il y a eu des erreurs sur certain candidat Variables auxiliaires : indice : 1..nb_candidat {nombre total de candidat inscrit} indice_note_bareme : 30..69 {la note de barème doit être >= 30} test_erreur : booléen {indique que des erreurs existent} {variable indiquant le nombre total de candidat valide pour l'admission} nb_candidat_total : nb_candidat - nb_candidat_non_valide {variable indiquant le nombre total de candidat qui ont la même note de barème} nb_candidat_par_note_de_bareme : entier indice_DESC : 1..nb_candidat_total {nombre total de candidat inscrit} {Le tableau contient tous les candidats valident pour l'admission} Type T_CANDIDAT_DESC : tableau[1..nb_candidat_total] de CANDIDAT_TRIE {Le tableau contient tous les candidats qui ont la même note de barème pour effectuer des opérations de tri sur les égalités} Type T_CANDIDAT_TEMP : tableau[1..nb_candidat_par_note_de_bareme] de CANDIDAT_TRIE Début // Ici création de la table temporaire CANDIDAT_DESC test_erreur := FAUX {aucune erreur avant de commencer le traitement} indice_DESC := 0 {initialise l'indice du tableau destination} Pour indice de 1 à nb_candidat Faire {on traite tous les candidats et test si il n'y a pas d'erreur} Initialise_T_CANDIDAT_DESC(indice, saisie_numero_dossier, saisie_formation,test_erreur, indice_DESC) Fin Pour {on tri chaque candidat par sa note de barème par ordre décroissant dans le tableau T_CANDIDAT_DESC } Tri_par_note_de_bareme(saisie_numero_dossier, saisie_formation) {on commence le tri par la note de barème la plus grande du tableau T_CANDIDAT_DESC jusqu'à la plus petite} Pour indice_note_bareme de 69 à 30 Faire {il faut au moins un candidat sinon on ne traite pas} Si ( Nombre_de_candidat_par_note_de_bareme(indice_note_bareme) ) Alors // Ici création de la table temporaire CANDIDAT_TEMP {on sélectionne tous les candidats qui ont la même note de barème et on les range dans le tableau T_CANDIDAT_TEMP} Selectionne_Candidat_pour_table_temporaire(indice_note_bareme, saisie_numero_dossier, saisie_formation)
  • 25. Rapport de stage à l’IUFM de Versailles Frédéric Sagez {tri les candidats dans le tableau T_CANDIDAT_TEMP par la note de Page 25 sur 99 preprofessionnalisation} Tri_par_note_de_prepo(saisie_numero_dossier, saisie_formation) // on supprime ici la table temporaire CANDIDAT_TEMP Fin Si Fin Pour {affecte un rang pour chaque candidat} Classement_table_trie(saisie_numero_dossier, saisie_formation) {si il s'est produit une erreur lors de l'appel de la procédure Initialise_T_CANDIDAT_DESC, 'affiche_erreur' aura la valeur 'VRAI' } affiche_erreur := test_erreur // On supprime ici la table temporaire CANDIDAT_DESC Fin TRI_CANDIDAT; L'objectif de cette procédure et d'épurer tous les candidats non valident et de les rangés par ordre de classement. Comme le nombre de candidat est grand (plus de 9000), l'algorithme est optimisé pour ne pas perdre de temps, par exemple il ne traite que les candidats qui ont une note de barème supérieur ou égale à trente (c’est le minimum pour s'inscrire en 1ère année de P.E. car trente points équivaut à une licence). Remarque: les variables 'saisie_numero_dossier' et 'saisie_formation' sont des variables globales du programme principal, on les appels dans la procédure TRI_CANDIDAT afin d'optimiser la recherche des candidats. 4.4.1 Description de la procédure Initialise_T_CANDIDAT_DESC Elle va trier chaque candidat de la table CANDIDATURE et les mettre dans la table CANDIDAT_TRIE : on effectue un premier tri des candidats admissibles. S'il y a des erreurs sur un candidat alors on indiquera sa position exacte dans la table CANDIDATURE et les types d'erreurs rencontrées. Procédure Initialise_T_CANDIDAT_DESC(Entrée : l_indice : 1..nb_candidat, le_numero_dossier : réel, la_formation : chaîne de caractère, Sortie : test_l_erreur : booléen, Entrée/Sortie : mon_indice : 1..nb_candidat_total) Précondition : le début du numéro de dossier <> 0,0 le début du nom de la formation <> d'une chaîne vide mon_indice > 0 Effet : le candidat valide se trouve dans le tableau T_CANDIDAT_DESC si une erreur existe alors la procédure renvoie 'VRAI' pour indiquer au programme principal qu'il devra afficher le contenu du tableau T_ERREUR_CANDIDAT lorsque le programme est fini. Variables auxiliaires : verifie : booléen {test si il y a eu une erreur pour ne pas incrementer le compteur 'mon_indice' du tableau T_CANDIDAT_DESC qui reçoit les valeurs} {il faut initialiser les variables avant de les affecter pour déterminer une erreur} Constante carac_no_dossier : chaîne de caractère := "##########" carac_no_candidature : réel := 0.0 carac_formation : chaîne de caractère := "####" carac_departement : chaîne de caractère := "###" carac_note_bareme : réel := 0.0 carac_note_prepo : caractère := '#' carac_date_naissance : chaîne de caractère := "##-##-##" carac_date_retour_dossier : chaîne de caractère := "##-##-##"
  • 26. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 26 sur 99 Début verifie := FAUX {aucune erreur avant de commencer le traitement} {initialise mes variables qui vont recevoir les données} T_CANDIDAT_DESC[mon_indice].no_dossier := carac_no_dossier T_CANDIDAT_DESC[mon_indice].no_candidature := carac_no_candidature T_CANDIDAT_DESC[mon_indice].formation := carac_formation T_CANDIDAT_DESC[mon_indice].departement1 := carac_departement T_CANDIDAT_DESC[mon_indice].departement2 := carac_departement T_CANDIDAT_DESC[mon_indice].departement3 := carac_departement T_CANDIDAT_DESC[mon_indice].departement4 := carac_departement T_CANDIDAT_DESC[mon_indice].departement5 := carac_departement T_CANDIDAT_DESC[mon_indice].note_bareme := carac_note_bareme T_CANDIDAT_DESC[mon_indice].note_prepo := carac_note_prepo T_CANDIDAT_DESC[mon_indice].date_naissance := carac_date_naissance T_CANDIDAT_DESC[mon_indice].date_retour_dossier := carac_date_retour_dossier {traite le bon candidat et vérifie si il a bien retourné son dossier rempli} Si ( T_CANDIDATURE [l_indice].no_dossier = le_numero_dossier ET T_CANDIDATURE [l_indice].formation = la_formation ET T_CANDIDATURE[l_indice].date_retour_dossier > '01-01-1900' ) Alors T_CANDIDAT_DESC[mon_indice].no_dossier := T_CANDIDATURE [l_indice].no_dossier T_CANDIDAT_DESC[mon_indice].no_candidature := T_CANDIDATURE [l_indice].no_candidature T_CANDIDAT_DESC[mon_indice].formation := T_CANDIDATURE [l_indice].formation T_CANDIDAT_DESC[mon_indice].departement1 := T_CANDIDATURE [l_indice].departement1 T_CANDIDAT_DESC[mon_indice].departement2 := T_CANDIDATURE [l_indice].departement2 T_CANDIDAT_DESC[mon_indice].departement3 := T_CANDIDATURE [l_indice].departement3 T_CANDIDAT_DESC[mon_indice].departement4 := T_CANDIDATURE [l_indice].departement4 T_CANDIDAT_DESC[mon_indice].departement5 := T_CANDIDATURE [l_indice].departement5 T_CANDIDAT_DESC[mon_indice].note_bareme := T_CANDIDATURE [l_indice].note_bareme T_CANDIDAT_DESC[mon_indice].note_prepo := T_CANDIDATURE [l_indice].note_prepo T_CANDIDAT_DESC[mon_indice].date_naissance := T_CANDIDATURE [l_indice].date_naissance T_CANDIDAT_DESC[mon_indice].date_retour_dossier := T_CANDIDATURE [l_indice].date_retour_dossier // On test les erreurs une par une d'un candidat si il y en a {indique une erreur sur le numéro de dossier d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].no_dossier = carac_ no_dossier ) Alors {indique le n ième candidat de la table pour verifier ses données} Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de numéro de dossier"); verifie := VRAI Fin Si {indique une erreur sur le numéro de candidature d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].no_candidature = carac_ no_candidature ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de numéro de candidature"); verifie := VRAI Fin Si {indique une erreur sur la formation d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].formation = carac_ formation ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de formation ") verifie := VRAI Fin Si {indique une erreur sur le 1er departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement1 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 1er voeu") verifie := VRAI Fin Si {indique une erreur sur le 2ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement2 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 2eme voeu") verifie := VRAI Fin Si {indique une erreur sur le 3ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement3 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 3eme voeu")
  • 27. Rapport de stage à l’IUFM de Versailles Frédéric Sagez verifie := VRAI Fin Si {indique une erreur sur le 4ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement4 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 4ème voeu") verifie := VRAI Fin Si {indique une erreur sur le 5ème departement d'un candidat} Si (T_CANDIDAT_DESC[mon_indice]. departement5 = carac_ departement ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de 5ème voeu") verifie := VRAI Fin Si {indique une erreur sur la note de barème d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].note_bareme = carac_note_bareme ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de note de Page 27 sur 99 barème ") verifie := VRAI Fin Si {indique une erreur sur la note de prepro. d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].note_prepo = carac_note_prepo ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de note de preprofessionnalisation "); verifie := VRAI Fin Si {indique une erreur sur la date de naissance d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].date_naissance = carac_date_naissance ) Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de date de naissance "); verifie := VRAI Fin Si {indique une erreur sur la date de retour du dossier d'un candidat} Si (T_CANDIDAT_DESC[mon_indice].date_retour_dossier = carac_date_retour_dossier Alors Inscrit_Erreur("Le candidat numéro "+ l_indice+" n'a pas de date de retour de dossier "); verifie := VRAI Fin Si Fin Si Si ( verifie ) Alors test_l_erreur := VRAI {erreur(s) de saisie sur un candidat} Sinon mon_indice := mon_indice + 1 {le candidat est enregistré dans le tableau} Fin Si Fin Initialise_T_CANDIDAT_DESC; 4.4.2 Description de la sous procédure Inscrit_Erreur La procédure Inscrit_Erreur est une sous procédure. Elle est appelée lorsque l'on a besoin d'écrire une ou des erreurs relatives à un candidat dans le tableau T_ERREUR_CANDIDAT. Procédure Inscrit_Erreur(Entrée: message : chaîne de caractère) Précondition : message : chaîne de caractère non vide Effet : met dans le tableau T_ERREUR_CANDIDAT le message d'erreur rencontré sur un candidat Variable auxiliaire : ind : 0..nb_erreur {indice du tableau} Début T_ERREUR_CANDIDAT[ind + 1].erreur_candidat := message Fin Inscrit_Erreur;
  • 28. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 4.4.3 Description de la procédure Tri_par_note_de_bareme Dans un premier temps, on tri chaque candidat par ordre décroissant des notes de barèmes obtenues par celui-ci. Procédure Tri_par_note_de_bareme(Entrée : le_numero_dossier : réel, la_formation : chaîne de caractère) Précondition : le tableau T_CANDIDAT_DESC existe avec au moins 1 candidat Effet : le tableau T_CANDIDAT_DESC est triée par ordre décroissant des notes de barème Page 28 sur 99 Début Sélectionner TOUS Depuis le tableau T_CANDIDAT_DESC Ou T_CANDIDAT_DESC.no_dossier = le_numero_dossier Et T_CANDIDAT_DESC.formation = la_formation Par Ordre DECROISSANT note_de_bareme Fin Tri_par_note_de_bareme; 4.4.4 Description de la fonction Nombre_de_candidat_par_note_de_bareme Ensuite on regarde s’il existe bien des candidats avec la note de barème demandée, cela évite de faire des traitements inutiles. Fonction Nombre_de_candidat_par_note_de_bareme(Entrée: l_indice_note_bareme : 30..69) retourne booléen Précondition : 30 < la note de barème <69 le tableau T_CANDIDAT_DESC existe Effet : retourne la valeur VRAI si il y a bien des candidats à la note de barème indicée sinon elle retourne FAUX Variables auxiliaires : test_bareme : booléen {va indiquer le nombre total de candidat dans le tableau T_CANDIDAT_DESC} compteur : entier := 0 Début Sélectionne compteur := compteur + 1 Depuis le tableau T_CANDIDAT_DESC Ou note_bareme = l_indice_note_bareme Si ( compteur = 0 ) Alors test_bareme := FAUX {aucun candidat} Sinon test_bareme := VRAI {au moins un candidat} Fin Si Retourne test_bareme Fin Nombre_de_candidat_par_note_de_bareme; 4.4.5 Description de la procédure Selectionne_Candidat_pour_table_temporaire Chaque candidat avec la même note de barème vont être mis dans une table temporaire CANDIDAT_TEMP pour effectuer un autre tri plus sélectif. Procédure Selectionne_Candidat_pour_table_temporaire(Entrée: l_indice_note_bareme : 30..69, le_numero_dossier : réel, la_formation : chaîne de caractère)
  • 29. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Précondition : le tableau temporaire T_CANDIDAT_TEMP doit être créé Effet : le tableau temporaire T_CANDIDAT_TEMP contient que les candidats qui ont tous la même note de barème provenant du tableau T_CANDIDAT_DESC Page 29 sur 99 Début Insérer dans le tableau T_CANDIDAT_TEMP Sélectionne TOUS Depuis le tableau T_CANDIDAT_DESC Ou T_CANDIDAT_DESC.no_dossier = le_numero_dossier Et T_CANDIDAT_DESC.formation = la_formation Et note_bareme = l_indice_note_bareme Fin Selectionne_Candidat_pour_table_temporaire; 4.4.6 Description de la procédure Tri_par_note_de_prepo Dans cette table temporaire CANDIDAT_TEMP on départage les égalités en rajoutant un critère : la note de préprofessionnalisation, on range les candidats par ordre décroissant. Procédure Tri_par_note_de_prepo(Entrée : le_numero_dossier : réel, la_formation : chaîne de caractère) Précondition : le tableau temporaire T_CANDIDAT_TEMP existe et non vide Effet : le tableau temporaire T_CANDIDAT_TEMP contient les candidats triés qui ont la meme note de bareme le tableau temporaire T_CANDIDAT_TEMP_SELECT contient les candidats triés qui ont la meme note de préprofessionnalisation Ce tableau une fois trié, ses valeurs seront ajoutées à la suite du tableau T_CANDIDAT_TRIE Variables auxiliaires : // Ce sont des caractères qui vérifient si la case est cochée 'O'ui ou 'N'on dans la table BAREME_INDIVIDUEL (leurs notes ne varient pas) Constantes {deux valeurs possibles du critère d'enseignement} note_enseignementOUI : caractère := 'O' note_enseignementNON : caractère := 'N' {deux valeurs possibles du critère de l'activité éducative} note_peri_educativeOUI : caractère := 'O' note_peri_educativeNON : caractère := 'N' {deux valeurs possibles du critère d'activité salariée} note_activite_salarialeOUI : caractère := 'O' note_activite_salarialeNON : caractère := 'N' enum_note_prepro : entier  {0,3,5,6,8,10} Début //on selctionne ce que l'on a besoin dans un curseur que l'on créait Pour indice_prepro inclus dans enum_note_prepro Faire {on selectionne les candidats par note de pré-professionnalisation d'ordre décroissant et on les ajoute dans un autre tableau temporaire T_CANDIDAT_TEMP_SELECT} Insérer le tableau T_CANDIDAT_TEMP_SELECT Sélectionne TOUS Depuis le tableau T_CANDIDAT_TEMP Ou T_CANDIDAT_TEMP.no_dossier = le_numero_dossier Et T_CANDIDAT_TEMP.formation = la_formation Et T_CANDIDAT_TEMP.note_prepro = indice_prepro Fin Pour // On effectue le tri selectif séquentiel par ordre de grandeur {tri de la première branche : la note d' enseignement est égale à huit}
  • 30. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeOUI, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeOUI, note_activite_salarialeNON) Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeNON, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementOUI,note_peri_educativeNON, note_activite_salarialeNON) {tri de la deuxième branche : la note d' enseignement est égale à zéro} Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeOUI, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeOUI, note_activite_salarialeNON) Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeNON, note_activite_salarialeOUI) Tri_par_critere_de_selection(note_enseignementNON,note_peri_educativeNON, note_activite_salarialeNON) Page 30 sur 99 Fin Tri_par_note_de_prepo; 4.4.7 Description de la sous procédure Tri_par_critere_de_selection Dans la table temporaire CANDIDAT_TEMP_SELECT, on départage les égalités persistantes entre chaque candidat : pour chaque type de brevet obtenu ou non, on range les candidats par ordre croissant de leur date de naissance (du plus jeune au moins jeune). Procédure Tri_par_critere_de_selection(Entrée : note_enseigne, note_peri_edu, note_sal : caractère) Précondition : le tableau temporaire T_CANDIDAT_TEMP_SELECT existe et non vide Effet : le tableau T_CANDIDAT_TRIE contiendra les candidats triés par ordre croissant des dates de naissances Variable auxiliaire : note_brevet : 0..3 { la note de brevet  {0,1,2,3}} Début Pour note_brevet de 3 à 0 Faire Insérer dans tableau T_CANDIDAT_TRIE Sélectionne TOUS {tableaux contenant les informations dont on a besoin} Depuis les tableaux T_CANDIDAT_TEMP_SELECT, T_BAREME_INDIVIDUEL {lien pour les items} Ou T_CANDIDAT_TEMP_SELECT.no_dossier = T_BAREME_INDIVIDUEL.no_dossier {renseignement supplémentaire sur l'age de l'étudiant} Et T_CANDIDAT_TEMP_SELECT.no_dossier = T_ETUDIANT.no_dossier {on précise que l'on s'occupe des PE} Et T_BAREME_INDIVIDUEL.code_bareme = "PE97" {test la note d'enseignement > 6 mois} Et (T_BAREME_INDIVIDUEL.code_critere = 3 ET T_BAREME_INDIVIDUEL.choix = note_enseigne) {test la note d'activité educative} Et (T_BAREME_INDIVIDUEL.code_critere = 5 ET T_BAREME_INDIVIDUEL.choix = note_peri_edu) {test la note d'activité salariale} Et (T_BAREME_INDIVIDUEL.code_critere = 6 ET T_BAREME_INDIVIDUEL.choix = note_sal) {test la note du ou des brevets obtenus} Et (T_BAREME_INDIVIDUEL.code_critere = 8 ET T_BAREME_INDIVIDUEL.choix = note_brevet)
  • 31. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Par Ordre CROISSANT T_ETUDIANT.date_naissance Page 31 sur 99 Fin Pour Fin Tri_par_date_de_naissance; 4.4.8 Description de la procédure Classement_table_trie On effectue une mise à jour du rang pour chaque candidat dans la table CANDIDAT_TRIE pour effectuer un classement. Procédure Classement_table_trie(Entrée: le_numero_dossier : réel, la_formation : chaîne de caractère) Précondition : le tableau T_CANDIDAT_TRIE est déjà créé et existe Effet : le tableau temporaire T_CANDIDAT_TRIE contient tous les candidats qui sont finalement triés et filtrés Début Mise à jour du tableau T_CANDIDAT_TRIE De la valeur rang := COMPTEUR(no_dossier) Ou T_CANDIDAT_TRIE.no_dossier = le_numero_dossier Et T_CANDIDAT_TRIE.formation = la_formation Par Ordre DECROISSANT note_de_bareme Fin Classement_table_trie; 4.5 Description de la procédure d'attribution des centres Pour effectuer les admissions des candidats dans chaque centre, on a besoin de deux tables : CANDIDAT_TRIE et CAPACITE_CENTRE. Des variables témoins seront consultées pour savoir s'il reste de la place dans les divers centres, cela permettra de ne pas parcourir la liste des candidats triés en entier d'où un gain de temps. Les listes finalisées de chaque centre permettent de visualiser tous les candidats admissibles (car ils ne sont pas encore admis) avec tous les renseignements les concernant. Procédure Attribution_des_Centres Précondition : le tableau T_CANDIDAT_TRIE existe et remplit le tableau T_CAPACITE_CENTRE existe et initialisé avant la procédure Attribution_des_Centres Création des cinq centres d'admission Effet : Les tableaux T_ADMIS_ANTONY_VdB, T_ADMIS_CERGY, T_ADMIS_ETIOLLES, T_ADMIS_ST-GERMAIN et T_ADMIS_VERSAILLES contiennent des listes de candidats admissibles. Chaque quota de centre restant sera mis à jour à la fin de la procédure Attribution_des_Centres Variables auxiliaires : // renseignement relatif de chaque centre {initialisation des quotas pour chaque centre, ce sont des entiers} CentreA_quota := T_CAPACITE_CENTRE[ANTONY_VdB].quota_centre_initial CentreC_quota := T_CAPACITE_CENTRE[CERGY].quota_centre_initial CentreE_quota := T_CAPACITE_CENTRE[ETIOLLES].quota_centre_initial CentreS_quota := T_CAPACITE_CENTRE[ST-GERMAIN].quota_centre_initial CentreV_quota := T_CAPACITE_CENTRE[VERSAILLES].quota_centre_initial {déclaration des tableaux pour les cinq centres} Type T_ADMIS_ANTONY_VdB : tableau[1.. CentreA_quota] de ADMIS_ANTONY_VdB Type T_ADMIS_CERGY : tableau[1.. CentreC_quota] de ADMIS_CERGY Type T_ADMIS_ETIOLLES : tableau[1.. CentreE_quota] de ADMIS_ETIOLLES Type T_ADMIS_ST-GERMAIN : tableau[1.. CentreS_quota] de ADMIS_ST-GERMAIN
  • 32. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Type T_ADMIS_VERSAILLES : tableau[1.. CentreV_quota] de ADMIS_VERSAILLES {initialisation des codes de chaque centre, ce sont des chaines de caractères} Code_CentreA := T_CAPACITE_CENTRE[ANTONY_VdB].code_centre Code_CentreC := T_CAPACITE_CENTRE[CERGY].code_centre Code_CentreE := T_CAPACITE_CENTRE[ETIOLLES].code_centre Code_CentreS := T_CAPACITE_CENTRE[ST-GERMAIN].code_centre Code_CentreV := T_CAPACITE_CENTRE[VERSAILLES].code_centre {détermine si le quota de chaque centre n'est pas dépassé, variable booléenne initialisée} CentreA_libre := booléen := VRAI CentreC_libre := booléen := VRAI CentreE_libre := booléen := VRAI CentreS_libre := booléen := VRAI CentreV_libre := booléen := VRAI // renseignement relatif a un département sélectionné nom_departement : caractère {contiendra le nom d'un département} quota_du_departement : entier {place restante du centre} code_du_departement : chaîne de caractère {code du centre} attribution : booléen {indiquera si la candidat a trouvé un centre} no_departement : 1..5 {indique le numéro de departement du candidat} no_candidat : 1..nb_candidat_total {indice du tableau T_CANDIDAT_TRIE} Page 32 sur 99 Début // Il faut créer les cinq tables d'admission des centres no_candidat := 1 {on commence par traité le 1er candidat par ordre croissant du rang} {on va traiter chaque candidat un par un en commençant par la note de barème la plus forte jusqu'à la plus faible et on test si il reste de la place dans l'un des cinq centres} Tant Que ( ( CentreA_libre ET CentreC_libre ET CentreE_libre ET CentreS_libre ET CentreV_libre ) OU ( T_CANDIDAT_TRIE NON vide ) ) Faire {test si chaque centre a encore de la place; si il n'y en a plus, le booléen passe à FAUX} CentreA_libre := Test_place_Centre(CentreA_quota) CentreC_libre := Test_place_Centre(CentreC_quota) CentreE_libre := Test_place_Centre(CentreE_quota) CentreS_libre := Test_place_Centre(CentreS_quota) CentreV_libre := Test_place_Centre(CentreV_quota) {initialisation de valeurs} attribution := FAUX {le candidat n'a pas de centre} no_departement := 1 {on va traiter les cinq voeux du candidat} Pour nom_departement de T_CANDIDAT_TRIE[no_candidat].departement1 à T_CANDIDAT_TRIE[no_candidat].departement5 Faire {on prend les informations du centre demandé} Selection_Information_Centre(nom_departement,quota_du_departement, code_du_departement) {on attribue un centre si son quota est supérieur à zéro} Si ( NON attribution ) Alors attribution := Traite_le_Centre(nom_departement, no_departement,quota_du_departement, code_du_departement) Fin Si {passe au numéro de département suivant du candidat} no_departement := no_departement + 1 Fin Pour no_candidat := no_candidat + 1 {on traite le candidat suivant} Fin Tant Que {mise à jour des quotas restants de chaque centre} Mise_a_jour_des_Centres Fin Attribution_des_Centres; 4.5.1 Description de la procédure Test_place_Centre Elle a pour objet de vérifier le quota du centre sélectionné et indique s'il reste de la place de libre.
  • 33. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Fonction Test_place Centre(Entrée : le_quota : entier) retourne booléen Précondition : le quota du centre est supérieur ou égal à zéro Effet : retourne FAUX si il n'y a plus de place dans un centre Variables auxiliaires : tel_valeur : booléen := VRAI {on suppose qu'il y a de la place dans Page 33 sur 99 un centre par défaut} Début Si ( le_quota <= 0 ) Alors tel_valeur := FAUX Fin Si Retourne tel_valeur Fin Test_place Centre; 4.5.2 Description de la procédure Selection_Information_Centre Cette procédure va servir à initialiser les variables ‘quota_du_departement’ et ‘code_du_departement’ pour ensuite vérifier si le candidat est admissible dans le centre désigné. Procédure Selection_Information_Centre(Entrée : le_nom_departement : caractère, Sortie : le_quota_du_departement : entier, le_code_du_departement : chaîne de caractère) Précondition : le_nom_departement : caractère non vide Effet : les variables quota_du_departement et code_du_departement contiennent les renseignements sur le centre Début Si ( le_nom_departement = 'A' ) Alors {Antony} quota_du_departement := CentreA_quota code_du_departement := Code_CentreA Fin Si Si ( le_nom_departement = 'C' ) Alors {Cergy} quota_du_departement := CentreC_quota code_du_departement := Code_CentreC Fin Si Si ( le_nom_departement = 'E' ) Alors {Etiolles} quota_du_departement := CentreE_quota code_du_departement := Code_CentreE Fin Si Si ( le_nom_departement = 'S' ) Alors {St-Germain} quota_du_departement := CentreS_quota code_du_departement := Code_CentreS Fin Si Si ( le_nom_departement = 'V' ) Alors {Versailles} quota_du_departement := CentreV_quota code_du_departement := Code_CentreV Fin Si Fin Selection_Information_Centre; 4.5.3 Description de la fonction Traite_le_Centre Elle va administrer les cinq centres et ajouter des candidats dans leurs listes. Fonction Traite_le_Centre(Entrée : le_nom_departement : caractère, le_no_departement : entier,
  • 34. Rapport de stage à l’IUFM de Versailles Frédéric Sagez le_code_du_departement : chaîne de caractère, Sortie : le_quota_du_departement : entier) Précondition : les paramètres de la fonction sont bien initialisés Effet : Ajoute un candidat dans la table ADMIS_nom du centre Variables auxiliaires : tel_valeur : booléen {indique que l'on peut attribuer le centre} tel_nom_du_centre : chaîne de caractère {nom du tableau de Page 34 sur 99 destination} Début tel_valeur := FAUX Donne_nom_du_centre(le_code_du_departement, tel_nom_du_centre) Si ( le_quota_du_departement > 0 ) Alors Inserer_Candidat_dans_Centre(le_nom_departement, le_no_departement, tel_nom_du_centre) le_quota_du_departement := le_quota_du_departement - 1 {on décrémente le quota du centre} tel_valeur := VRAI Fin Si Retourne tel_valeur Fin Traite_le_Centre; 4.5.4 Description de la procédure Donne_nom_du_centre Grâce au code du département la procédure donne le nom du tableau sur lequel le candidat veut s'inscrire. Procédure Donne_nom_du_centre(Entrée : un_code_du_departement : chaîne de caractère, Sortie : un_nom_du_centre : chaîne de caractère) Précondition : code du departement non vide Effet : retourne le nom de la table du departement ayant le même code Début Si (un_code_du_departement = Code_CentreA ) Alors {Antony} un_nom_du_centre = "T_ADMIS_ANTONY_VdB" Fin Si Si (un_code_du_departement = Code_CentreC ) Alors {Cergy} un_nom_du_centre = " T_ADMIS_CERGY" Fin Si Si (un_code_du_departement = Code_CentreE ) Alors {Etiolles} un_nom_du_centre = " T_ADMIS_ETIOLLES" Fin Si Si (un_code_du_departement = Code_CentreS ) Alors {St-Germain} un_nom_du_centre = " T_ADMIS_ST-GERMAIN" Fin Si Si (un_code_du_departement = Code_CentreV ) Alors {Versailles} un_nom_du_centre = " T_ADMIS_VERSAILLES" Fin Si Fin Donne_nom_du_centre; 4.5.5 Description de la procédure Inserer_Candidat_dans_Centre Elle va remplir la table ADMIS_nom du centre en y ajoutant les renseignements sur le candidat ainsi que mettre une étoile dans le numéro de département où est admis le candidat. Procédure Inserer_Candidat_dans_Centre(Entrée : the_nom_departement : caractère,
  • 35. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 35 sur 99 the_no_departement : entier, the_nom_du_centre : chaîne de caractère) Précondition : le tableau ADMIS_nom du centre existe 'no_candidat' indique le candidat sélectionné Effet : ajoute un candidat dans le tableau de destination Début Si (the_no_departement = 1 ) Alors the_nom_du_centre[no_candidat].no_departement1 := '*' Fin Si Si (the_no_departement = 2 ) Alors the_nom_du_centre[no_candidat].no_departement2 := '*' Fin Si Si (the_no_departement = 3 ) Alors the_nom_du_centre[no_candidat].no_departement3 := '*' Fin Si Si (the_no_departement = 4) Alors the_nom_du_centre[no_candidat].no_departement4 := '*' Fin Si Si (the_no_departement = 5 ) Alors the_nom_du_centre[no_candidat].no_departement5 := '*' Fin Si Insérer Dans the_nom_du_centre Sélectionner trie.no_dossier, trie.no_candidature, etudiant.nom_usuel, etudiant.prenom, etudiant.adresse, etudiant.code_postal, etudiant.ville, formation, departement1, departement2, departement3, departement4, departement5, the_nom_departement, note_bareme, rang Depuis les tableaux T_CANDIDAT_TRIE trie, T_ETUDIANT etudiant Ou trie.no_dossier = etudiant.no_dossier Fin Inserer_Candidat_dans_Centre; 4.5.6 Description de la procédure Mise_a_jour_des_Centres Elle effectue une mise à jour des places restantes dans les cinq centres. Procédure Mise_a_jour_des_Centres Précondition : les tableaux ADMIS_nom du centre existent Effet : met à jour le champ 'quota_centre_restant' dans chaque tableau Début {mise à jour du quota restant d'Antony} Changer le tableau T_ADMIS_ANTONY_VdB La valeur quota_centre_restant := CentreA_quota Ou T_ADMIS_ANTONY_VdB.code_centre = Code_CentreA {mise à jour du quota restant de Cergy} Changer le tableau T_ADMIS_CERGY La valeur quota_centre_restant := CentreC_quota Ou T_ADMIS_CERGY.code_centre = Code_CentreC {mise à jour du quota restant d'Etiolles} Changer le tableau T_ADMIS_ETIOLLES La valeur quota_centre_restant := CentreE_quota Ou T_ADMIS_ETIOLLES.code_centre = Code_CentreE {mise à jour du quota restant de Saint-Germain} Changer le tableau T_ADMIS_ST-GERMAIN La valeur quota_centre_restant := CentreS_quota Ou T_ADMIS_ST-GERMAIN.code_centre = Code_CentreS
  • 36. Rapport de stage à l’IUFM de Versailles Frédéric Sagez {mise à jour du quota restant de Versailles} Changer le tableau T_ADMIS_VERSAILLES La valeur quota_centre_restant := CentreV_quota Ou T_ADMIS_VERSAILLES.code_centre = Code_CentreV Page 36 sur 99 Fin Mise_a_jour_des_Centres; 4.6 Description des procédures de mise à jour des atypiques et des dérogataires Les atypiques et les dérogataires sont des cas particulier, on les distinguera de chaque centre en y indiquant le nombre total de chacun des deux. On peut les différencier facilement : un dérogataire un rang égal à zéro parce qu'il ne compte pas dans la hiérarchie des candidats triés alors que l'atypique lui, en plus d'avoir une note de barème supérieur ou égale à trente, il doit passer un entretien. 4.6.1 Description de la procédure Met_le_nombre_de_derogataire Elle effectue une mise à jour du champ 'nbre_derogataire' de la table CAPACITE_CENTRE. Les dérogataires ont le champ 'rang' de la table CANDIDATURE_TRIE à 0. Procédure Met_le_nombre_de_derogataire Précondition : les tableaux ADMIS_nom du centre existent Effet : met à jour le champ 'nbre_derogataire' de chaque centre Début {Met le nombre total de dérogataire d'Antony} Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_ANTONY_VdB OU rang = 0 ) {Met le nombre total de dérogataire de Cergy } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_CERGY OU rang = 0 ) {Met le nombre total de dérogataire d'Etiolles } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_ETIOLLES OU rang = 0 ) {Met le nombre total de dérogataire de Saint-Germain } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_ST-GERMAIN OU rang = 0 ) {Met le nombre total de dérogataire de Versailles } Mise à jour dans le tableau T_CAPACITE_CENTRE
  • 37. Rapport de stage à l’IUFM de Versailles Frédéric Sagez La valeur nbre_derogataire = nbre_derogataire + 1 ( Selectionne no_dossier De la table T_ADMIS_VERSAILLES OU rang = 0 ) Page 37 sur 99 Fin Met_le_nombre_de_derogataire; 4.6.2 Description de la procédure Met_le_nombre_d_atypique Elle effectue une mise à jour du champ 'nbre_atypique' de la table CAPACITE_CENTRE. Les atypiques ont le champ 'condition_requise' de la table CANDIDATURE à 10 et le champ 'libre10' de la table ETUDIANT à 1. Procédure Met_le_nombre_d_atypique Précondition : les tableaux ADMIS_nom du centre existent Effet : met à jour le champ 'nbre_atypique' de chaque centre Début {Met le nombre total d'atypique d'Antony} Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_ANTONY_VdB, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_ANTONY_VdB.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_ANTONY_VdB.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_ANTONY_VdB.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique de Cergy } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_CERGY, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_CERGY.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_CERGY.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_CERGY.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique d'Etiolles } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_ETIOLLES, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_ETIOLLES.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_ETIOLLES.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_ETIOLLES.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique de Saint-Germain } Mise à jour dans le tableau T_CAPACITE_CENTRE
  • 38. Rapport de stage à l’IUFM de Versailles Frédéric Sagez La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_ST-GERMAIN, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_ST-GERMAIN.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_ST-GERMAIN.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_ST-GERMAIN.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) {Met le nombre total d'atypique de Versailles } Mise à jour dans le tableau T_CAPACITE_CENTRE La valeur nbre_atypique = nbre_atypique + 1 ( Selectionne no_dossier De la table T_ADMIS_VERSAILLES, T_ETUDIANT, T_CANDIDATURE OU T_ADMIS_VERSAILLES.no_dossier = T_ETUDIANT.no_dossier AND T_ADMIS_VERSAILLES.no_dossier = T_CANDIDATURE.no_dossier AND T_ADMIS_VERSAILLES.no_candidature = T_CANDIDATURE.no_candidatute AND T_ETUDIANT.libre10 = 1 AND T_CANDIDATURE.condidtion_requise = '10' ) Page 38 sur 99 Fin Met_le_nombre_d_atypique;
  • 39. Rapport de stage à l’IUFM de Versailles Frédéric Sagez 5 FONCTIONNEMENT Pour passer de l’algorithme au programme, certains changements ont été utiles. Une description de chaque table est obligatoire pour connaître l’organisation des données traitées, la référence des tables se trouve dans les pages suivantes. Toutes les tables vont être dans la base de données, pour reconnaître très facilement celles utilisées pour l’affectation des PE, le nom des tables commencera par le préfixe « SIG97 ». Ainsi la table SIG97_ERREUR_CANDIDAT indiquera très clairement les candidats avec leur numéro de dossier que l’on ne prend pas en considération dans le tri, soit qu’il manque des éléments pour la poursuite du tri du candidat, soit que c’est un candidat atypique qui n’a pas rempli les conditi ons à l’entretien, soit parce qu’un candidat est dérogataire : si il a une note d’entretien égale à 70 on ne l'inclut pas dans le tri car il est prioritaire sur les autres, sinon on indique qu’il a eu une note inférieur à 70 voir nulle. Page 39 sur 99 Voici ce que cela peut donner : Message PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300047, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : A-typique numéro 97300121, Condition_Requise = 10, Libre10 = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300176, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300177, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300191, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300195, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300303, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300317, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300338, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300412, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : BON dérogataire numéro 97300471, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : A-typique numéro 97300496, Condition_Requise = 10, Libre10 = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300530, Condition_Requise = 2, Note_Entretien = 70 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300599, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300619, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : MAUVAIS dérogataire numéro 97300705, Cond. Req. = 2, Note Ent. = 0 PAS PRIS EN COMPTE : BON dérogataire numéro 97300773, Condition_Requise = 2, Note_Entretien = 70
  • 40. Rapport de stage à l’IUFM de Versailles Frédéric Sagez La table SIG97_ COMMENTAIRE_PRG indique très clairement ce que fait le programme, quelle procédure ou fonction est terminée, s’il y a eu des erreurs durant le programme tel que la réécriture dans une table. Voici la trace d'une table une fois le tri terminé : Page 40 sur 99 Message La procédure Initialise_Candidat_Desc est FINIE. La procédure Tri_par_note_de_bareme est FINIE. La procédure Mise_a_jour_table_TRIE est FINIE. La procédure Tri_par_selection est FINIE. La procédure Ajout_des_derogataires est FINIE. La procédure Met_la_capacite_initiale du centre 92V est FINIE. La procédure Met_la_capacite_initiale du centre 95 est FINIE. La procédure Met_la_capacite_initiale du centre 91 est FINIE. La procédure Met_la_capacite_initiale du centre 78S est FINIE. La procédure Met_la_capacite_initiale du centre 78V est FINIE. La procédure Mise_a_jour_des_quotas_restant est FINIE. La procédure Attribution_des_Centres est FINIE. La procédure Met_admission_dans_CANDIDATURE est FINIE. La procédure Met_le_Nombre_Atypique est FINIE. La procédure Met_le_Nombre_Derogataire est FINIE. Regarder la table SIG97_ERREUR_CANDIDAT : candidats qui ne sont pas pris en compte. Aucune erreur durant le programme. Le booléen « arret_du_programme » est initialisé à FAUX, si une erreur s’est produite au cours du programme, il passe à VRAI et le programme n’exécute plus les principales procédures et fonctions qui suivent l’erreur. Trois principales exceptions sont traitées : l’un test si une table est déjà remplie (on n'a pas effacé les champs de la table), les deux autres indiquent clairement ce qui s’est passé et invite l’utilisateur à lire les scripts pour agir en conséquence : les dépassements des extensions de « roll back ». Voici une brève explication de chaque procédure et fonction :  La procédure Efface_contenu_des_tables : elle permet d’effacer le contenu des tables, très utile lorsque l’on veut refaire un tri.  La procédure Message_Utilisateur : insère dans la table SIG97_COMMENTAIRE_PRG la chaîne de caractère « mon_message ».  La procédure Inscrit_Erreur : insère dans la table SIG97_ERREUR_CANDIDAT la chaîne de caractère « mon_message ».
  • 41. Rapport de stage à l’IUFM de Versailles Frédéric Sagez  La procédure Initialise_Candidat_Desc : on effectue un tri des candidats ou plutôt on « purge » les candidats qui ne sont pas pris en compte dans le tri. On prend déjà des renseignements sur les « bons » candidats : le numéro de dossier, le numéro de candidature, la formation désirée, les cinq voeux du candidat (les départements), la note de barème ainsi que la date de retour du dossier. Chaque information prise dans la table CANDIDATURE va être placée dans une table temporaire SIG97_CANDIDAT_TMP.  La procédure Tri_par_note_de_bareme : elle va chercher la date de naissance du candidat dans la table ETUDIANT et sa note de préprofessionnalisation dans la table BAREME_INDIVIDUEL puis des informations de la table SIG97_CANDIDAT_TMP pour tout mettre dans la table SIG97_CANDIDAT_SELECT_TMP.  La procédure Mise_a_jour_table_TRIE : étape importante, c’est là que l’on prend les notes de « barémage » pour trier les candidats. On prend les notes d'activité d'enseignement, l’activité éducative et salariale puis la note de brevet de la table BAREME_INDIVIDUEL pour les mettre dans la table SIG97_CANDIDAT_TRIE_TMP.  La procédure Candidature_trie : tri les candidats pour leur attribuer un rang. La fonction Test_le_nbre_de_candidat retourne VRAI s’il y a au moins un candidat à trier car cela évite dans la procédure Tri_par_selection d’appeler huit fois la procédure Candidature_trie. Bien sur toutes les informations recueillies de la table SIG97_CANDIDAT_TRIE_TMP seront mises dans la table SIG97_CANDIDAT_TRIE : tous les candidats triés pourront être visualisés ici.  La procédure Ajout_des_derogataires : Prend tous les candidats de la table CANDIDATURE qui sont des dérogataires. On les met directement dans les centres et on incrémente le quota initial de chaque centre par le nombre de dérogataire placé dedans. Pour le quota des centres on utilise la table SIG97_CAPACITE_CENTRE. Pour admettre chaque candidat dans les centres, on utilise les tables SIG97_ADMIS_nom du centre. Comme on ne peut leur mettre un rang académique, ils auront un rang égale à zéro pour indiquer qu'ils ne sont pas classés dans la hiérarchie. Ainsi on pourra mieux les repérer dans les listes d'admission de chaque centre.  La procédure Met_la_capacite_initiale : permet d’initialiser les variables globales de la procédure Page 41 sur 99 Attribution_centre.  La procédure Test_place_centre : retourne VRAI si le quota du centre est supérieur à zéro.  La procédure Donne_information_centre : lorsqu’un candidat a sélectionné un département, cette procédure donne les informations que l’on a besoin, elles seront traitées dans la fonction Traite_le_centre qui va mettre à jour la liste de chaque centre.  La procédure Attribution_centre : attribue au candidat un centre dont il a fait le voeu. On prend les dernières informations du candidat : son nom, son prénom et son adresse de la table ETUDIANT ainsi que celles de SIG97_CANDIDAT_TRIE.  La procédure Mise_a_jour_quota_restant : elle est prévue lorsqu’il y a plus de place dans le centre que de candidats. Lorsque l'on impose des quotas dit de "surbooking" (c'est le nombre de place total plus le nombre de candidat inscrit sur la liste complémentaire), on peut distinguer très nettement les places restantes.  La procédure Met_admission_dans_candidature : prend les informations de chaque candidat admis dans les centres, puis fait une mise à jour des champs indiquant que le candidat est admissible dans la table CANDIDATURE.  Les procédures Met_le_nombre_atypique et Met_le_nombre_derogataire : mise à jour des champs de la table SIG97_CANDIDAT_TRIE pour indiquer le nombre exact de dérogataires et d’atypique de chaque centre. Voici la table SIG97_CAPACITE_CENTRE lorsque le programme est terminé :
  • 42. Rapport de stage à l’IUFM de Versailles Frédéric Sagez code_centre quota_centre_ini tial quota_centre_res tant nbre_atypique nbre_derogata i re nom_du_centre 92V 767 0 53 3 Antony Val de Bievre 91 940 0 7 20 Etiolles 95 902 0 45 18 Cergy 78S 580 0 16 0 St-Germain en Laye 78V 245 0 11 3 Versailles Les tables qui ont le suffixe « TMP » peuvent être effacées à la fin du programme. Elles ont servis à contenir des informations sur les candidats et éviter de créer une table unique et de faire soit la saisie des informations en un bloque (très coûteux en temps) ou par une mise à jour avec des « UPDATE » (dépassement de capacité de la mémoire et très coûteux en temps). Page 42 sur 99 Table SIG97_CAPACITE_CENTRE Nom de la colonne Type Longueur SQL Description code_centre chaine de caractère 3 CHAR numéro de code du centre quota_centre_initial réel 22 FLOAT quota de place d' entrée du centre initial quota_centre_restant réel 22 FLOAT quota de place d' entrée du centre restant nbre_atypique réel 22 FLOAT indique le nombre total d'atypique du centre nbre_derogataire réel 22 FLOAT indique le nombre total de dérogataire du centre nom_du_centre chaine de caractère 25 CHAR nom du centre en entier Table SIG97_CANDIDAT_TRIE Nom de la colonne Type Longueur SQL Description no_dossier chaine de caractère 10 CHAR numéro de dossier du candidat no_candidature réel 22 FLOAT numéro de candidature du candidat formation chaine de caractère 4 CHAR nom de la formation demandée departement1 chaine de caractère 3 CHAR premier voeu du candidat departement2 chaine de caractère 3 CHAR deuxième voeu du candidat departement3 chaine de caractère 3 CHAR troisième voeu du candidat departement4 chaine de caractère 3 CHAR quatrième voeu du candidat
  • 43. Rapport de stage à l’IUFM de Versailles Frédéric Sagez Page 43 sur 99 departement5 chaine de caractère 3 CHAR cinquième voeu du candidat note_bareme réel 22 FLOAT note du bareme du candidat note_prepo réel 22 FLOAT note de preprofessionalisation date_naissance date 7 DATE date de naissance du candidat date_retour_dossier date 7 SYSDATE date de retour du dossier enseignement caractère 1 CHAR indique si la case est cochée pour l'enseignement peri_educ_scol caractère 1 CHAR indique si la case est cochée pour l'activité éducative activite_salarie caractère 1 CHAR indique si la case est cochée pour l'activité de salarié note_brevet réel 22 FLOAT note totale des brevets obtenus rang nombre 22 FLOAT rang attribue au candidat Table SIG97_ADMIS_nom du centre Nom de la colonne Type Longueur SQL Description no_dossier chaine de caractère 10 CHAR numéro de dossier du candidat no_candidature réel 22 FLOAT numéro de candidature du candidat nom_usuel chaine de caractère 25 CHAR nom usuel du candidat prenom chaine de caractère 20 CHAR prénom du candidat adresse chaine de caractère 255 CHAR adresse complète du candidat code_postal chaine de caractère 5 CHAR code postal du candidat ville chaine de caractère 25 CHAR ville du candidat departement1 chaine de caractère 3 CHAR premier voeu du candidat departement2 chaine de caractère 3 CHAR deuxième voeu du candidat departement3 chaine de caractère 3 CHAR troisième voeu du candidat departement4 chaine de caractère 3 CHAR quatrième voeu du candidat departement5 chaine de caractère 3 CHAR cinquième voeu du candidat no_departement1 caractère 1 CHAR repère du premier voeu du candidat
  • 44. Rapport de stage à l’IUFM de Versailles Frédéric Sagez no_departement2 caractère 1 CHAR repère du deuxième voeu du candidat no_departement3 caractère 1 CHAR repère du troisième voeu du candidat no_departement4 caractère 1 CHAR repère du quatrième voeu du candidat no_departement5 caractère 1 CHAR repère du cinquième voeu du candidat Page 44 sur 99 departement_choisis chaine de caractère 3 CHAR voeu du candidat où il est admis formation chaine de caractère 4 CHAR nom de la formation demandée note_bareme réel 22 FLOAT note du bareme du candidat rang nombre 22 FLOAT rang attribue au candidat Table SIG97_ERREUR_CANDIDAT Nom de la colonne Type Longueur SQL Description erreur_candidat chaine de caractère 100 CHAR phrase indiquant l' erreur trouvé sur le candidat Table SIG97_COMMENTAIRE_PRG Nom de la colonne Type Longueur SQL Description message chaine de caractère 120 CHAR phrase indiquant le déroulement du programme