IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Evolution des cellules


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Par défaut Evolution des cellules
    Bonjour,
    je suis étudiant débutant sur Visual.net 2010 je dois faire un projet et j'aurais besoin de votre aide pour m'aider à démarrer le projet.
    Une cellule est décrite par huit informations binaires et obéit aux 16 règles d’évolution qui définissent la théorie évolutionniste. Ces règles explicitent l’évolution de la cellule par tranche de quatre positions binaires. Elles sont exposées dans la partie gauche du tableau 1 donné ci-dessous.

    Si par exemple on considère la cellule 01001001 et les règles d’évolution décrites ci-dessous, la cellule est devenue 10000010 après 3 itérations. Le détail de l’évolution de la cellule est donné tableau 1.

    0000 -> 0001
    0001 -> 0010
    0010 -> 0011
    0011 -> 0100
    0100 -> 0110
    0101 -> 0110
    0110 -> 0111
    0111 -> 1000
    1000 -> 1001
    1100 -> 1101
    1101 -> 1110
    1110 -> 1111
    1111 -> 0000
    1010 -> 1011
    1011 -> 1100
    1001 -> 0000

    Tableau 1 : Règles d’évolution et Evolution d’une cellule
    1ère Itération
    01001001 -> 01100000
    d’après les règles
    0100 -> 0110 et 1001 -> 0000

    2ème Itération
    01100000 -> 01110001
    d’après les règles
    0110 -> 0111 et 0000 -> 0001

    3ème Itération
    01110001 -> 10000010
    d’après les règles
    0111 -> 1000 et 0001 -> 0010

    On vous demande d’écrire une application Visual Basic qui permet la saisie d’une cellule et la simulation de son évolution sur un nombre d’itération saisi par l’utilisateur. L’application doit afficher le résultat de l’évolution après chaque itération. Elle doit également expliciter cette évolution comme indiqué dans le tableau 1.

    Voila le sujet, donc il faut mettre 2 textbox avec dans la premier les 4 chiffres binaires et dans la deuxième la suite et voir ensuite son évolution. Il ne s'agit pas de faire des additions binaire mais une comparaison.

    Je demande un peu d'aide pour savoir comment construire mon algo je pense qu'il faut faire 2 boucles mais pour l'instant je vois pas trop comment
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    A mon avis, le plus simple est de considérer les différents états binaires comme des nombres entiers (que tu pourras reconvertir en binaire pour l'affichage si besoin).

    Il te faut une fonction qui te renvoie l'état suivant à partir de l'état courant. Tu peux implémenter ça avec un Select Case, ou alors un Dictionary si tu veux pouvoir rendre les transitions configurables.

    Voilà une implémentation toute simple de la fonction de transition avec Select Case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Function GetNextState(ByVal currentState As Integer) As Integer
      Select Case currentState
        Case 0
          Return 1
        Case 1
          Return 2
        Case 2
          Return 3
        Case 3
          Return 4
        Case 4
          Return 6
        Case 5
          Return 6
        Case 6
          Return 7
        Case 7
          Return 8
        Case 8
          Return 9
        Case 12
          Return 13
        Case 13
          Return 14
        Case 14
          Return 15
        Case 15
          Return 0
        Case 10
          Return 11
        Case 11
          Return 12
        Case 9
          Return 0
        Case Else
          Throw New Exception("Etat non valide")
      End Select
    End Function
    Pour convertir l'état d'une cellule en binaire, tu peux utiliser Convert.ToString(state, 2)

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    le dictionary de tomlev me semble bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim Dic As New Dictionary(Of String, String)
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dic.Add("0000", "0001")
            Dic.Add("0001", "0010")
            Dic.Add("0010", "0011")
            'etc...
    et une fonction du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Function Evolution(ByVal cle As String, ByVal nbrItération As Integer) As String
     
            For i As Integer = 1 To nbrItération
                cle = Dic.Item(cle)
                MessageBox.Show(cle)
            Next
            Return cle
     
        End Function

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Par défaut
    Merci de vos réponses, mais je ne sais pas utiliser le dictionary, je pensais faire ça plutôt avec des tableaux. Un peu comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    dim Tab1erepartie
    Tab(0)"000"
    Tab(1)"0001"
    ...
    Tab(15)"1001"
     
    dim Tab2emepartie
    Tab(0)"0001"
    ...
    Tab(15)"0000"
    Qu'en pensez vous ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par lemano Voir le message
    Merci de vos réponses, mais je ne sais pas utiliser le dictionary, je pensais faire ça plutôt avec des tableaux. Un peu comme ceci
    C'est pas très compliqué d'utiliser un Dictionary, tu peux apprendre...

    Sinon tu peux effectivement le faire avec un tableau, mais je te conseille de stocker la valeur décimale plutôt que la représentation binaire, ce sera plus pratique

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Par défaut
    Je n'arrive pas à bien comprendre comment son stockées les clés dans le dictionary en fait ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par lemano Voir le message
    Je n'arrive pas à bien comprendre comment son stockées les clés dans le dictionary en fait ?
    En fait, un Dictionary c'est un peu comme un tableau, sauf que tu peux utiliser n'importe quoi comme "index" (nombre, chaine de caractères, objet...)

    Chaque valeur dans le dictionnaire est associé à une clé, par laquelle tu peux accéder à la valeur. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ' Clés de type String, valeurs de type Integer
    Dim dict As New Dictionary(Of String, Integer)()
     
    ' Ajout d'une valeur avec la clé "hello"
    dict.Add("hello", 123)
    dict.Add("hello", 456) ' Erreur : la clé "hello" existe déjà
     
    ' Récupération de la valeur associée à la clé "hello"
    Dim valeur As Integer = dict("hello")
    Dim oops As Integer = dict("blabla") ' Erreur : la clé "blabla" n'existe pas
     
    ' Changement de la valeur associée à la clé "hello"
    dict("hello") = 42
     
    ' Suppression de la valeur associée à la clé "hello"
    dict.Remove("hello")

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Par défaut
    Merci de ton aide, mais je me suis renseigné et il faut utiliser des tableaux j'ai donc choisit de faire 2 tableaux à 2 dimensions, merci quand même.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/12/2004, 11h51
  2. Colorier le fond des cellules d'une stringrid
    Par ORLIK dans le forum C++Builder
    Réponses: 7
    Dernier message: 09/11/2004, 21h22
  3. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  4. [JTable]Aligner le contenu des cellules
    Par )3lade dans le forum Composants
    Réponses: 2
    Dernier message: 09/03/2004, 13h24
  5. [] [Excel] Fusionner des cellules
    Par SamyD dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/12/2002, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo