01.01.2015 Views

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Comparaison de trois implémentations du modèle de Schelling. 393<br />

l’observation du modèle, etc. Avant la programmation du modèle, on peut définir<br />

<strong>des</strong> noms pour les différentes plages de cellules comme Domaine qui représente la<br />

plage <strong>des</strong> cellules de l’automate cellulaire, et d’autres noms pour les variables<br />

définies dans le tableau suivant, qui faciliteront l’initialisation <strong>des</strong> variables internes<br />

du programme.<br />

La simulation peut être pilotée depuis quelques boutons qu’on dispose sur la<br />

feuille contenant les cellules (en utilisant la barre d’outils « boîte à outils<br />

Contrôles »). Par un double-clic sur le bouton, on lui associe alors un sousprogramme,<br />

écrit dans la feuille de calcul contenant les cellules, qui contient un<br />

appel à la procédure UnPas. Les gestionnaires de l’événement « clic-souris »<br />

associés à ces boutons peuvent s’écrire de la manière suivante :<br />

' gestionnaire du bouton « initialisation » :<br />

Private Sub ButtonInit_Click()<br />

Call InitDomaine ' ce sous-programme n’est pas décrit ici<br />

End Sub<br />

' gestionnaire du bouton « Un pas » :<br />

Private Sub ButtonUnPas_Click()<br />

Dim nInsatisfaits As Integer<br />

Dim nIter As Integer<br />

nIter = Range("nIter")'on copie la cellule “nIter” dans nIter<br />

Call UnPas(nInsatisfaits, nIter) ' appel au sous-prog “UnPas”<br />

End Sub<br />

' gestionnaire du bouton « Itérer » :<br />

Private Sub ButtonIterer_Click()<br />

Dim nInsatisfaits As Integer<br />

Dim nIter As Integer<br />

Dim MaxIter As Integer<br />

MaxIter = Range("NbMaxIter")<br />

nIter = Range("nIter")<br />

Do<br />

Call UnPas(nInsatisfaits, nIter) ' appel sous-prog “UnPas”<br />

Loop Until (nInsatisfaits = 0) Or (nIter >= MaxIter)<br />

End Sub<br />

Pour écrire la procédure « UnPas », il faut d’abord passer dans l’éditeur Visual<br />

Basic de Excel (Outils > Macro > Visual Basic Editor) puis insérer un nouveau<br />

module de code (Insertion > Module). On peut alors écrire directement le code<br />

Visual Basic suivant.<br />

'déclaration <strong>des</strong> variables globales :<br />

Dim T() As Integer ' domaine cellulaire<br />

Dim V() As Integer ' opérateur de voisinage<br />

Dim nV As Integer<br />

' nbr de voisins

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!