1

Attention, je ne vous demande pas de me coder le programme, loin de là, je me demandais juste s'il y avait moyen de réaliser un script ou autre sous excel/tableur un procédé que je vais vous détailler.

Voilà, il y a un planning de gardes à réaliser périodiquement sur une période de 12 semaines, avec 3 catégories de personnes (qu'on appellera 4ème année, 5ème année, 6ème année, soit 4A, 5A et 6A pour faire court). Chaque catégorie contient environ 200 personnes +/- 10 personnes. Ce planning de gardes répond aux conditions suivantes :

- Il y a 4 services, avec chacun leurs horaires de gardes. En gros on a pour chaque semaine : Service 1 : 8 créneaux, Service 2 : 6 créneaux, Service 3 : 2 créneaux, Service 4 : 1 créneau.
- Il y a dans le Service 1 et 2 des gardes dites "chiantes" car elles sont en journée (elles "gâchent" donc la journée de samedi ou dimanche). Il faut donc équilibrer les gardes de telle sorte à ce que les gens en ont le moins possible.
- Il faut un certain nombre de 6A, 5A et 4A dans une même garde (1, 2 et 2 il me semble, à confirmer).
- Chaque personne devant réaliser 30 gardes au cours des 3 ans, sont privilégiés pour l'établissement du planning les 6A, puis les 5A, puis les 4A.
- Les personnes ayant réalisé leur 30 gardes sont enlevés de la liste des étudiants.
- Il y a des périodes où des classes de personnes ne sont pas disponibles du fait de leurs examens. Il faut donc limiter le plus possible les gardes à ce niveau-là.
- Il faut que le facteur aléatoire soit le plus présent possible, à l'exception des règles citées ci-dessus.

En gros il faudrait que le programme/script fasse ceci :
Je regarde la liste des 6A
-> Je regarde et choisis parmi ceux qui ont fait le moins de gardes total (donc inférieur à 30)
-> Parmi eux je regarde ceux qui ont fait le moins de gardes "chiantes"
-> Je choisis au hasard un de ceux-ci
-> Je le place dans un créneau au hasard à la condition que n6A dans le créneau=0. Si n6A dans le créneau=1 je choisis un autre créneau au hasard
-> Je rechoisis un autre 6A parmi ceux qui ont fait le moins de gardes chiantes.
-> Je recommence le procédé jusqu'à ce que le nombre de gardes chiantes soit égal partout ou qu'il y ait le moins de monde possible avec un nombre inférieur de gardes chiantes par rapport aux autres. Ou alors de manière plus simple, jusqu'à ce que tous les créneaux de gardes chiantes soient pris
-> Une fois que c'est fait, je recommence en regardant ceux qui ont fait le moins de gardes total et en les plaçant au hasard dans les créneaux.
-> Je m'arrête une fois que tous les créneaux sont remplis avec un 6A.

Je recommence alors avec les 5A puis les 4A (au besoin on peut faire carrément un autre script pour ça puis recouper les résultats par la suite).

Les résultats sont alors consignés sous forme de tableau.

Pfiou, c'était plus simple dans ma tête grin
Toujours est-il, y'a-t-il moyen de réaliser un tel script ou existe-t-il un tel outil sous Windows/Linux/BSD/Mac Os X/Peu importe ?

Merci d'avance smile
avatar
Zut je suis reperé, vite ! L1+R1+L2+R2 !
Des ennemis ! ACTIVATING COMBAT MODE - MODULATING PHASE - POWER SURGE ! - CONFLICT RESOLVED
La longue liste des clichés de l'animé et du manga !
RAW ! RAW ! FIGHT THE POWER !

2

Rusty Frozbite (./1) :
Pfiou, c'était plus simple dans ma tête biggrin.gif
Ben t'as fait le plus dur du boulot, à savoir écrire l'algo smile
(faut juste vérifier qu'il est bon)

C'est faisable avec un script Excel / OpenOffice Calc. Perso j'utilise pas ce genre de trucs mais il y a sûrement des gens ici qui pourront te renseigner.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

3

Cool, ce serait bien qu'on puisse m'indiquer de la doc pour faire ça sous OpenOffice grin
avatar
Zut je suis reperé, vite ! L1+R1+L2+R2 !
Des ennemis ! ACTIVATING COMBAT MODE - MODULATING PHASE - POWER SURGE ! - CONFLICT RESOLVED
La longue liste des clichés de l'animé et du manga !
RAW ! RAW ! FIGHT THE POWER !

4

google ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

J'aime qu'on me mâche le travail embarrassed

(surtout si quelqu'un a déjà du faire un truc de la sorte)
avatar
Zut je suis reperé, vite ! L1+R1+L2+R2 !
Des ennemis ! ACTIVATING COMBAT MODE - MODULATING PHASE - POWER SURGE ! - CONFLICT RESOLVED
La longue liste des clichés de l'animé et du manga !
RAW ! RAW ! FIGHT THE POWER !

6

Précisément avec tes contraintes, c'est pas sûr. Sauf si c'est vraiment la façon habituelle de faire tourner les {matinées de stage / gardes / astreintes / whatever} et où alors tu peux espérer que l'un de tes prédécesseurs ait déjà fait la même chose ^^

Mais sinon, la "doc pour faire ça sous OpenOffice", c'est la doc d'OpenOffice... tu trouveras ptet des tutoriaux en googlant un peu, mais a priori tu n'y trouveras rien qui n'est pas déjà indiqué dans la doc, au mieux ça sera tourné de façon plus claire, c'est tout.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

Bon pour l'instant j'en chie un peu pour faire ça sous Calc cheeky
avatar
Zut je suis reperé, vite ! L1+R1+L2+R2 !
Des ennemis ! ACTIVATING COMBAT MODE - MODULATING PHASE - POWER SURGE ! - CONFLICT RESOLVED
La longue liste des clichés de l'animé et du manga !
RAW ! RAW ! FIGHT THE POWER !