Salut
Je suis une étudiante en 2 eme année master informatique et je prépare mon mémoire de fin d’étude avec le langage Smalltalk dans la plate forme CORMAS. J'ai besoin d'exemples de projets réalises par ce langage, si vous avez merci.
Salut
Je suis une étudiante en 2 eme année master informatique et je prépare mon mémoire de fin d’étude avec le langage Smalltalk dans la plate forme CORMAS. J'ai besoin d'exemples de projets réalises par ce langage, si vous avez merci.
Bonsoir,
en ce qui me concerne je ne connais pas CORMA.
Cependant une (très très) rapide recherche sur Google permet de trouver ceci : http://cormas.cirad.fr/en/outil/classroom/ ==> tutoriels sur ce qui semble être le site officiel.
D'autre part, pour toute question (plus précise) sur Visual Works ou sur Smalltalk, ne pas hésiter à demander ici ou sur les mailing lists officielles (http://www.cincomsmalltalk.com/userb...ent=ncVersions).
La documentation officielle de Visual Works est extrêmement bien faite également, ne pas hésiter à la consulter (en particulier l'Application Developper's Guide).
A disposition pour toute question =)
Bonsoir et merci pour l'effort fait pour moi
Notre application se déroule dans une cellule et j'ai utilisé 4 agents : médecin, femme, secrétaire et sage femme tel que médecin fait le diagnostique de la grossesse.
Secrétaire va préparer le dossier de la femme diagnostiquée enceinte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 diagnostique self patch state = #médecindisponible ifTrue: [(self patch state: #femmediagnostiqué) ifTrue: [(self patch state: #diagenceinte) | (self patch state: #diagnonenceinte)]]. self patch state = #médecinnondisponible ifTrue: [self patch state: #nondiag]
Dans ce programme la secrétaire envoie le dossier de la femme à la sage femme donc comment programmer ça en Smalltalk.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 préparedossier | distance | (self patch state: #diagenceinte) ifTrue: [distance >= 30 ifTrue: [(self patch state: #femmepriseenchare) ifTrue: [^'secrétaire prépare le dossier']]] ifFalse: [self patch state: #nonprisechare]
Sage femme fait l'accompagnement et accouchement à domicile :
- Accompagnement :
- Accouchement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 accompagnement | recoitdossier | (recoitdossier := 1) ifTrue: [self patch state: #maison]. (recoitdossier := 0) ifTrue: [self patch state: #hopitale]
Et la femme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 accouchement self patch state = #arisque ifTrue: [self patch state = #hopital & (self patch state = #risquefaible ifTrue: [self patch state = #accphisio]). self patch state = #risquefort ifTrue: [self patch state = #accouchecésarienne]] ifFalse: [self patch state = #accadomicile]
Après cette étape, la sage femme reçoit le dossier provenant du secrétaire et doit être déplacé chez la femme dans leur maison de naissance pour faire l'accompagnement et l'accouchement (rq : ces deux méthodes accouchement et accompagnement sont déjà programmées).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 décide self patch state = #disponible & (self patch state = #diagenceinte) ifTrue: [self patch state = #accompadomicile | (self patch state = #accompahopitale)]. self patch state = #accompadomicile ifTrue: [self patch state = #prisecharge | (self patch state = #nonprisecharge)]. self patch state = #prisecharge ifTrue: [self patch state = #maison]
Est-ce que dans Smalltalk on a la possibilité d’appeler une méthode déjà réalisée par un autre agent ?
merci
Bonsoir,
j'aurais deux questions :
- peux-tu éviter les abréviations sms & compagnie ?
- qu'est-ce qu'un agent dans le contexte que tu utilises ? Des classes ?
Il nous faudrait le contexte, est-ce que CORMAS permet de passer des messages entre "agents" ?
Si oui, tu pourrais implémenter une méthode dans "secrétaire", de type sendDossierTo: subscriber qui utiliserait le protocole éventuellement présent dans CORMAS (et subscriber serait ton destinataire).
Le destinataire aurait une méthode "receiveDossier" qui utiliserait également CORMAS pour récupérer ce qu'il attend.
Que veux tu dire par "réalisée" ? Implémentée ?
D'une manière générale, si tu as une classe SageFemme, tu peux créer un objet SageFemme :
| sageFemme status |
sageFemme := SageFemme new.
Tu peux ensuite appeler n'importe quelle méthode de l'objet de la classe instanciée :
status := sageFemme getStatus.
status inspect (permet d'observer le résultat si tu sélectionne tout le code et que tu fais un doIt dessus).
Maintenant il faudrait plus de précisions sur le contexte dans lequel tu veux faire ça :/
Bonsoir, merci pour votre réponse.
Les envois de message dans CORMAS diffèrent de ceux de SMALLTALK.
Ce lien explique comment utiliser CORMAS :
http://cormas.cirad.fr/pdf/CormasTutorial1.pdf
Merci.








Si vous voulez apprendre à développer en Smalltalk, a mon avis vous devez lire un livre comme "Pharo by Example": http://pharobyexample.org/
Même si la version de Smalltalk de Pharo n'est pas la même que celle de VisualWorks, vous allez apprendre les bases du langage.
Une traduction en français est quasiment finie et disponible ici:
https://github.com/SquareBracketAsso...Example-french
Bonjour moi_miya,
(je viens de m'inscrire sur ce forum et je réponds donc un peu en retard)
Le site Cormas propose un forum des utilisateurs sur lequel on peut poser des questions concernant :
- tout aspect informatique relatif à Cormas (bugs, demandes d'explications, suggestions de modifications, contributions sous forme de méthodes génériques, etc.),
- des aspects méthodologiques (sur le processus de construction d'un modèle),
- des annonces de séminaires, des appels à communication ou publication, des propositions de stages, des annonces de postes,
- des ressources bibliographiques intéressantes.
Ca se trouve ici : http://cormas.cirad.fr/fr/reseaux/form/forumCormas.php
Par ailleurs, il y a plusieurs didacticiels disponibles : http://cormas.cirad.fr/en/outil/classroom/
Enfin, il y a les pages biblio sur lesquelles de nombreux articles sur le sujet sont disponibles : http://cormas.cirad.fr/fr/bibliog/bibliog.htm
A+
merci bq pour l'aide Pierbo & SergeStinckwich![]()
Partager