La commande est entrée en premier dans le
système par le biais de l’entrée standard. La commande de chaque groupe cours
est décrite au moyen de périodes qui se donnent chaque semaine et qui peuvent
être de plusieurs types (cours, exercice, atelier). Pour un groupe-cours on
peut avoir une ou plusieurs périodes de cours et éventuellement une ou
plusieurs périodes d’atelier ou d’exercice. Toutes les périodes d’atelier ou
d’exercice pour un groupe cours ont nécessairement lieu en même temps. Chaque
entrée sur une ligne décrit une période pour un groupe-cours. Elle est composée
des indications suivantes :
Sigle du cours, type de la période, numéro du
groupe, jour, horaire de début, horaire de fin.
L’entrée sur une ligne se termine par un point
et chaque élément est séparé du suivant par une virgule. Les espaces sont non
significatifs.
Cette série d’entrées se termine par une ligne
contenant le mot fin suivi d’un point.
L’entrée se poursuit avec la liste des sigles
de cours souhaités. Chaque choix est entré sur une ligne terminée par un point.
La série se termine par une ligne contenant le
mot fin suivi d’un point.
La sortie sur la sortie standard est formée de
lignes. Chacune d’elle correspond à une possibilité de choix de groupe pour les
cours souhaités. Chaque combinaison de groupe-cours est séparée de la suivante
sur la ligne par une virgule. La série se termine par un point. Il peut y avoir
des espaces entre les éléments. L’ordre des éléments dans la série est
quelconque de même que l’ordre des possibilités.
La liste des possibilités est établie en
fonction de la commande en respectant la contrainte suivante.
·
Pour
une combinaison de choix valide de groupes-cours figurant sur une ligne, aucune
des périodes (cours, atelier ou exercice) ne doit entrer en conflit d’horaire
avec les autres périodes des autres groupes-cours.
·
Si un
choix est invalide (cours inexistant dans la commande par exemple) ou si une
impossibilité est détectée alors la liste des possibilités est vide et il n’y a
pas de sortie.
eco1081,cours,40,jeudi,18:30,22:00.
eco1082,cours,40,vendredi,18:30,22:00.
eco1081,atelier,40,vendredi,18:00,23:00.
fin.
eco1081.
eco1082.
fin.
inf2110,cours,30,mercredi,13:30,15:00.
inf2110,cours,30,vendredi,13:30,15:30.
inf2110,cours,31,mercredi,17:30,19:00.
inf2110,cours,31,vendredi,17:30,19:30.
inf2160,cours,30,mercredi,13:30,15:30.
inf2160,cours,30,vendredi,13:30,15:00.
inf2160,cours,31,mercredi,17:30,19:00.
inf2160,cours,31,vendredi,17:30,19:30.
inf2170,cours,20,mardi,17:30,19:30.
inf2170,cours,20,jeudi,17:30,19:00.
inf2170,cours,30,mercredi,8:30,10:00.
inf2170,cours,30,vendredi,10:0,12:00.
inf3102,cours,20,mardi,13:30,15:00.
inf3102,cours,20,jeudi,13:30,15:30.
inf3102,cours,21,mardi,17:30,19:30.
inf3102,cours,21,jeudi,17:30,19:00.
fin.
inf3102.
inf2160.
fin.
inf3102-20,inf2160-30.
inf2160-30, inf3102-21.
inf3102-21 ,inf2160-31.
inf3102-20, inf2160-31 .