J'ai commencé à réfléchir à l'algorigramme auquel je veux que mon ascenseur réponde ! Ca n'a pas été facile, mais j'ai abouti à un premier jet qui laisse entrevoir la complexité mécanique de l'engin...
On à tout d'abord un certain nombre de variables, qui seront légotiquement représentées par des crémaillères (variables numériques) ou des "switchs" (variables binaires)
Abréviation = valeur de départ --> explicationPosAsc = 1 --> étage auquel se trouve la cabine de l'ascenseur
NbD = 0 --> Nombre de demande qu'il reste à traiter
EntrerDint = 2 --> Indique à quel rang, dans la liste d'attente, les étages demandés de l'intérieur sont placés
Pos1 = 0
Pos2 = 0
:
:
PosN = 0, où N est le nombre total d'étage
--> Position de chaque étage sur la liste d'attente
Si PosX = 0, cet étage n'a pas été demandé
Si PosX = 1, l'ascenseur est à cet étage
Si PosX = 2, X est le prochain étage où l'ascenseur se rendra
...
Ext1 = 0
Ext2 = 0
:
:
ExtN = 0, où N est le nombre total d'étage
--> variable booléenne (0 ou 1), indique si l'étage a été appelé de l'extérieur ou non
Avant de vous présenter l'algorigramme, voici quelques informations pour ceux qui ne connaissent pas ce type de programmation :
Un losange représente une décision (oui ou non), les rectangles contiennent les calcule que l'on fait sur les variables, les parallélogrammes représentent une action, et enfin, les rectanglee bisotés délimites des boucles.
Je l'ai largement simplifié en évitant toute la partie capteur (par exemple, l'ascenseur ne sait pas seul où il se trouve...) le but étant d'avoir un fil directeur
.gif)
Vous allez rapidement vous rendre compte qu'il présente un gros problème : il y a un temps pour demander un étage, puis la fonction est indisponible pendant que l'on monte/descend, que les portes s'ouvrent... Pour faire bien, il faudrait plusieurs modules qui tournent en simultanés !
Voilà donc ce premier jet (à la main) (au modos : c'est trop grand ?, j'ai peur que ce soit illisible sinon

) :

(excusez-moi pour le mélange franco/anglais, mais quelques habitudes de programmation reviennent toutes seules ^^)
Je vous laisse essayer de comprendre les choix qu'il fait pour aller aux étages dans un ordre logique, seul info : toutes les demandes ne passent pas en bas de la file d'attente puisqu'il faut régulièrement "vider" l'ascenseur, pour autant, toutes les demandes intérieures ne sont pas prioritaires, pour ne pas oublier ceux qui attendent dehors
A+
PS : si certains peuvent me prendre pour un fou, j'ai réfléchi à la faisabilité de la chose avant de poster...
