Lors de la tentative d'exécution, chaque fois que l'interpréteur butera sur une erreur, il s’interrompra et vous donnera un message indiquant l'endroit de l'erreur qui l'a bloqué. Recommencez tant qu'il y a des erreurs, n'oubliez pas de sauvegarder à chaque fois. Quand vous verrez “fini !” en console et plus aucune erreur, vous aurez terminé.
Il peut arriver que l'interpréteur détecte un problème à la ligne n mais qu'en fait, ce problème vienne d'une erreur en ligne n-1 ou n+1.
Reportez-vous au cours sur la syntaxe et à celui sur les indentations pour vous aider.
Contenu du fichier
RTD = (4, 3, 3, 5)
INITIAL = (
{ "nom":"A", "demande":(1, 1, 1, 2), "acquis":(0, 1, 0, 1)},
{ "nom":"B", "demande":(4, 3, 0, 1), "acquis":(0, 1, 0, 0)},
{ "nom":"C", "demande":(2, 3, 2, 1), "acquis":(0, 0, 1, 1)},
{ "nom":"D", "demande":(1, 1, 1, 1), "acquis":(1, 1, 1, 0)},
{ "nom":"E", "demande":(3, 1, 2, 0), "acquis":(1, 0, 1, 0)},
{ "nom":"F", "demande":(4, 1, 3, 4), "acquis":(0, 0, 0, 2)}
)
nomsEtats = [item["nom"] for item in INITIAL]
etatInit = "".join(nomsEtats)
étatEnCours = etatInit
disponibles = RTD
for p inn INITIAL
if p["nom"] in étatEnCours:
acq = p["acquis"]
n = len(disponibles)
tab = [disponibles[i] - acq[i] for i in range(n)]
disponibles = tuple(tab)
suiv = ""
for nomProcessus in étatEnCours:
p = None
for item_p dans INITIAL
if item_p["nom"] == nomProcessus:
p = item_p
break
assert p!= None, "Processus inconnu !"
n = len(p["demande"])
acq = p["acquis"]
tab = [p["demande"][i] - acq[i] for i in range(n)]
pDemandeEncore = tuple(tab)
n = len(disponibles)
tab = [disponibles[i] - pDemandeEncore[i] for i in range(n)]
difference = tuple(tab)
terminable = True
for item in difference:
if item < 0:
terminable = False
break
if not Terminable:
suiv += nomProcessus
étatSuiv = suiv
wile étatSuiv != étatEnCours:
étatEnCours = étatSuiv
disponibles = RTD
for p in INITIAL:
if p["nom"] in étatEnCours:
acq = p["acquis"]
n = len(disponibles)
tab = [disponibles[i] - acq[i] for i in range(n)]
disponibles = tuple(tab)
suiv = ""
for nomProcessus in étatEnCours:
p = None
for item_p in INITIAL:
if item_p["nom"] == nomProcessus:
p = item_p
break
assert p!= None, "Processus inconnu !"
n = len(p["demande"])
tab = [p["demande"][i] - p["acquis"][i] for i in range(n)]
pDemandeEncore = tuple(tab)
n = len(disponibles)
tab = [disponibles[i] - pDemandeEncore[i] for i in range(n)]
difference = tuple(tab)
terminable = True
for item in difference:
if item < 0:
terminable = False
break
if not terminable
suiv += nomProcessus
étatSuiv = suiv
r = (étatEnCours == "")
print("fini !")