Devoir 1
CSI2572 Automne 2004-09-21
Soumission par webCT
Date de soumission: 2004-10-07 23:59
Q1 (4pts):
Un test par ADN compare des échantillons de code génétique entre un
char*
CodeMaman, char**
CodeHommes, int
NombreHommes)
è Retour: {0, 2, 3} Ø
Plus d'examples vous seront fournis plus tard. Ø
Un driver pour votre classe/méthode vous sera aussi fournit plus tard. Ø
Vous devez vous servir de la base de code suivante: |
Q2 (4pts):
Les patrons qui se retrouvent sur certain mollusques tel que le Conus
et le Symbolia (voir ci-dessous) sont générés par des automates cellulaires
organiques simples. Les pigments des mollusques produisent des sécretions qui
produisent à leur tour des pigments en suivant des régles triviales. Pour cette question, vous allez devoir implémenter un automate
* * * * Où les * peuvent être l'un de 3 charactère possibles: '#','O' ou '.' ,
reprèsentant chacun un des trois états possibles de chaque cellule. Par example, la règle suivante, indique que la cellule qui vient après
la première ligne devrait être le charactère 'O' si la cellule qui la précède directement est aussi le
charactère 'O' et que celles à droite
et à gauche sont les charactères '#'
# O # O Comme l'état suivant de la cellule sera déterminé par les trois
cellules qui la précèdent, il y a 27 (3*3*3) états initials possibles. Pour
le devoir, par convention, ces états seront toujours placés dans l'ordre
suivant:
Dans votre programme, les régles seront représentés par un tableau de
27 charactères ('#','O' ou '.'). La position d'un charactère dans le tableau
indique l'état initial auquel il est fait référence. Par example, étant donné l'ensemble de règles suivant :
Le charactère situé dans la case 5 fait référence à la règle suivante:
# O . O Tandis que le charactère à la case 26 fait référence à la régle:
. .
. . Example: Étant donné l'état initial :
et la régle:
Voici l'automate sur trois étape:
class: CellAuto Retour: void Signature de la méthode: void
fillGrid (char** Grid, char rule[27], int numRangees) La méthode est publique. Vous devez aussi implémenter la méthode valide, qui vérifie qu'une
règle est valide, à la fois par les charactères dont elle est composée et
dans sa longueur (la déclaration se trouve dans le fichier lié plus bas). Ø
Lorsque une cellule est sur la bordure de l'automate, la case à
l'extrème gauche (si la cellule est sur la bordure droite) ou à l'extrème
droite (si la bordure est à l'extrème gauche) est considérée pour compléter
la règle (wraparound). Ø
Plus d'examples vous seront fournis plus tard. Ø
Un driver pour votre classe/méthode vous sera aussi fournit. Ø
Vous devez utiliser la base de code suivante: |
Q3 (2pts):
Expliquer les différences et les similarités entre le passage de paramétre
à une fonction par valeur et par addresse. Dans quelle situations
utiliserions nous l'un plutôt que l'autre? |