Programme
infobens
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
infobens Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
infobens Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
bonjour,je suis content de venir sur cet site et j'ai un problème:
avec un programme : les philosophes des diseurs:
cinq philosophes sont assis sur une table ronde devant un plat de spaghetti bien glisant separant par une fouchette qu'ils sont obliges de les manges avec 2 fouchettes celle a sa gauche puis celle a sa droite.les philosophes passent leurs temps a manger ou a penser.comment ecrire un programme pour que les philosophes se livrent a leurs activites sans jamais etre bloque.
merci je compte sur votre precieux concours pour m'aider a les resoudre ou tout au moins a poser les premieres pierres.
merci.....
avec un programme : les philosophes des diseurs:
cinq philosophes sont assis sur une table ronde devant un plat de spaghetti bien glisant separant par une fouchette qu'ils sont obliges de les manges avec 2 fouchettes celle a sa gauche puis celle a sa droite.les philosophes passent leurs temps a manger ou a penser.comment ecrire un programme pour que les philosophes se livrent a leurs activites sans jamais etre bloque.
merci je compte sur votre precieux concours pour m'aider a les resoudre ou tout au moins a poser les premieres pierres.
merci.....
A voir également:
- Programme
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
11 réponses
mOI TON PROBL7ME ME FAIT PENSER AU PARTAGE DES RESSOURCES ENTRE PROCESSUS...
Donc inspire toi de ça pour commencer....
Bonne chance ++
Donc inspire toi de ça pour commencer....
Bonne chance ++
Voui, c'est un problème avec les sémaphores et tout ça !
je regarderais demain, je crois que j'ai toujours mes cours là dessus !
je regarderais demain, je crois que j'ai toujours mes cours là dessus !
j'ai besoin d'aide sur la céation d'un MCD puisque notre formation en informatique de gestion demande de rédiger un projet de fin d'etude et j'ai choisi de faire un projetsur mon école qui set à ridiger des bullettin de notes des eléves et j'ai trouve des problemes au nivau de l'analyse MCD.
aidez moi s'il vous plais
MERCI
aidez moi s'il vous plais
MERCI
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Post original >>
Non, ce n'est pas un problème de sémaphore, puisque le philosophe doit OU manger OU penser, mais pas ATTENDRE !!!
Ceci dis, ça y ressemble peut-être.
Tant que infobens aura pas précisé dans un language correct et précis son problème, personne ne pourra le résoudre (ou alors il est très fort... Ou a eu le même prof ;°)
Non, ce n'est pas un problème de sémaphore, puisque le philosophe doit OU manger OU penser, mais pas ATTENDRE !!!
Ceci dis, ça y ressemble peut-être.
Tant que infobens aura pas précisé dans un language correct et précis son problème, personne ne pourra le résoudre (ou alors il est très fort... Ou a eu le même prof ;°)
si j'ai bien compris ils sont 5, ont chacun une fourchette, mais pour manger il leur en faut 2, donc il y en a qui mangent (en empruntant la fourchette du voisin) et les autres pensent. Il nous manque l'unité de temps...
j'ai une intuition, si ceux qui ont les fourchettes font manger ceux qui n'en n'ont pas, on passe de 2 à 3 mangeurs en simultané....
avec tout ça, je vais finir par allez m'en faire des spagghetti et inviter 4 potes,.....
Seb si tu fait rien Samedi ......
@++
j'ai une intuition, si ceux qui ont les fourchettes font manger ceux qui n'en n'ont pas, on passe de 2 à 3 mangeurs en simultané....
avec tout ça, je vais finir par allez m'en faire des spagghetti et inviter 4 potes,.....
Seb si tu fait rien Samedi ......
@++
Ha OUAIS !!!!!
Merci Agnes, j'ai ENFIN compris la problématique !!!
Effectivement, je retire l'intégrale de mon premier post, j'avais vu les choses sous un tout autre angle... (au passage, la prochaine fois, infobens, pose ton PB clairement, ça m'évitera de passer pour un ***).
p.legal >> Si tu met du parmesant dans la sauce, je viens aussi.
J'apporterais mon jeu de dames.
Merci Agnes, j'ai ENFIN compris la problématique !!!
Effectivement, je retire l'intégrale de mon premier post, j'avais vu les choses sous un tout autre angle... (au passage, la prochaine fois, infobens, pose ton PB clairement, ça m'évitera de passer pour un ***).
p.legal >> Si tu met du parmesant dans la sauce, je viens aussi.
J'apporterais mon jeu de dames.
j'ai fait un truc simple basé sur une mise en liste d'attente.
voila le resultat :
Liste d'attente
place Philosophe
1 4
2 2
3 3
4 1
5 5
le philosophe 3 à fini de penser
il se met à manger pendant 900 ms
le philosophe 5 à fini de penser
il se met à manger pendant 100 ms
le philosophe 5 à fini de manger
il est mis en liste d'attente
le philosophe 1 à fini de penser
il se met à manger pendant 900 ms
le philosophe 3 à fini de manger
il est mis en liste d'attente
le philosophe 4 à fini de penser
il se met à manger pendant 700 ms
le philosophe 1 à fini de manger
il est mis en liste d'attente
le philosophe 2 à fini de penser
il se met à manger pendant 100 ms
le philosophe 2 à fini de manger
il est mis en liste d'attente
le philosophe 1 à fini de penser
il se met à manger pendant 500 ms
le philosophe 1 à fini de manger
il est mis en liste d'attente
le philosophe 4 à fini de manger
il est mis en liste d'attente
le philosophe 5 à fini de penser
il se met à manger pendant 400 ms
le philosophe 2 à fini de penser
il se met à manger pendant 100 ms
le philosophe 2 à fini de manger
il est mis en liste d'attente
le philosophe 3 à fini de penser
il se met à manger pendant 400 ms
le philosophe 5 à fini de manger
il est mis en liste d'attente
le philosophe 1 à fini de penser
il se met à manger pendant 800 ms
le philosophe 3 à fini de manger
il est mis en liste d'attente
le philosophe 4 à fini de penser
il se met à manger pendant 500 ms
voila le resultat :
Liste d'attente
place Philosophe
1 4
2 2
3 3
4 1
5 5
le philosophe 3 à fini de penser
il se met à manger pendant 900 ms
le philosophe 5 à fini de penser
il se met à manger pendant 100 ms
le philosophe 5 à fini de manger
il est mis en liste d'attente
le philosophe 1 à fini de penser
il se met à manger pendant 900 ms
le philosophe 3 à fini de manger
il est mis en liste d'attente
le philosophe 4 à fini de penser
il se met à manger pendant 700 ms
le philosophe 1 à fini de manger
il est mis en liste d'attente
le philosophe 2 à fini de penser
il se met à manger pendant 100 ms
le philosophe 2 à fini de manger
il est mis en liste d'attente
le philosophe 1 à fini de penser
il se met à manger pendant 500 ms
le philosophe 1 à fini de manger
il est mis en liste d'attente
le philosophe 4 à fini de manger
il est mis en liste d'attente
le philosophe 5 à fini de penser
il se met à manger pendant 400 ms
le philosophe 2 à fini de penser
il se met à manger pendant 100 ms
le philosophe 2 à fini de manger
il est mis en liste d'attente
le philosophe 3 à fini de penser
il se met à manger pendant 400 ms
le philosophe 5 à fini de manger
il est mis en liste d'attente
le philosophe 1 à fini de penser
il se met à manger pendant 800 ms
le philosophe 3 à fini de manger
il est mis en liste d'attente
le philosophe 4 à fini de penser
il se met à manger pendant 500 ms
Et voila le code en Liberty BASIC.
dim philo(5,3) dim fourch(5) dim listAtt(7) 'placer les philosophes dans un ordre aleatoire dans la liste d'attente for i=1 to 5 [hazard] scan blok=0 hazard=int(rnd(1)*5)+1 for j=1 to i if hazard=listAtt(j) then blok=1 next j if blok=1 then goto [hazard] listAtt(i)=hazard next i print "place Philosophe" for i=1 to 5 print " ";i;" ";listAtt(i) next i [mainloop] if count<25 then timer 100, [boucle] wait [boucle] timer 0 scan count=count+1 oklib=0 gosub [liberation] 'gosub [affichListPhilo] 'gosub [affichListAtt] if oklib<>0 or count=1 then gosub [attribution] end if goto [mainloop] [liberation] for lib=1 to 5 duree=philo(lib,3) if duree>0 then philo(lib,3)=duree-100 if philo(lib,3)<=0 then print "le philosophe ";lib;" à fini de manger" if lib=1 then fourch(5)=0 else fourch(lib-1)=0 end if fourch(lib)=0 oklib=1 gosub [miseListAtt] end if end if next lib return [miseListAtt] for list=1 to 5 latt=listAtt(list) if latt=0 then listAtt(list)=lib print "il est mis en liste d'attente" exit for end if next list return [attribution] for att=1 to 5 philosophe=listAtt(att) if philosophe=0 then exit for fourch1=fourch(philosophe-1) fourch2=fourch(philosophe) if philosophe=1 then fourch1=fourch(5) if fourch1=0 and fourch2=0 then duree=int(rnd(1)*10+1)*100 philo(philosophe,3)=duree gosub [majList] gosub [majFourch] print "le philosophe ";philosophe;" à fini de penser" print "il se met à manger pendant ";duree;" ms" end if next att return [majList] if att<5 then for j=att to 4 listAtt(j)=listAtt(j+1) next j end if listAtt(5)=0 return [majFourch] if philosophe=1 then fourch(5)=1 else fourch(philosophe-1)=1 end if fourch(philosophe)=1 return