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

Algorithmes et structures de données Discussion :

Parcours d'une matrice


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Par défaut Parcours d'une matrice
    Bonjour,

    Dans le cadre d'un jeu que je dois programmer, j'ai besoin de faire un sous-programme ( en ADA ) qui va vérifier si la partie est terminée ou non.
    Pour que le jeu soit fini, il faut que une ligne entière ou colonne soit complétée d'un même pion ( mes pions sont des '#' et des 'o' ).
    Seul problème : je n'arrive pas à trouver un moyen de vérifier toutes les lignes et toutes les colonnes d'un tableau à 2 dimensions.
    Si quelqu'un a une idée, ça serait gentil !

    Merci

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    Tu es étudiant... en informatique je suppose.
    Tu as dû apprendre la notion de boucle, non ?
    Peut être même que tu as déjà fait des exercices avec 2 boucles imbriquées ?

    Si on ne t'a jamais parlé des boucles , alors tu ne peux pas t'en sortir. Mais si on t'a déjà expliqué cette notion, et si tu as déjà fait des exercices avec des boucles imbriquées, alors c'est un exercice très facile.

  3. #3
    Inactif
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2016
    Messages : 22
    Par défaut
    Bonjour.
    C'est pas deux boucle imbriquer qu'il faut ici, mais deux fois une boucle.
    Une pour les ligne et une pour les colone.

    Pour accéder à un élément dans un tableau à deux dimmensions c'est Tableau(indice1, indice2).

    Pour faire une boucle dans l'indice1 du tabeleau c'est for indice in Tableau'range(1) loop
    Pour faire une boucle dans l'indice2 du tabeleau c'est for indice in Tableau'range(2) loop

    A toi de savoir comment est orientés la matrice pour savoir où sont les lignes et les colonnes.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Par défaut
    Bonjour,

    Oui j'avais déjà l'idée de faire 2x2 boucles imbriquées pour vérifier premièrement les colonnes et deuxièmement les lignes. Malheureusement je n'ai aucune idée du code que je dois insérer à l'intérieur d'où mon post.

    J'ai eu des idées pour vérifier que la valeur suivante était égale à cette valeur, elle même égale à mon pion ('#' ou 'o') mais ça ne semble pas marcher.
    Si quelqu'un a un début de code (algorithme) pouvant me faire comprendre le principe, ça serait cool !

  5. #5
    Membre chevronné
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Par défaut
    Bonjour.

    Supposons que la matrice soit notée A, possède n lignes et p colonnes, et que l'on accède à un de ses éléments sous la forme A(i,j) avec i = numéro de ligne et j = numéro de colonne.

    Notons "fini" une variable booléenne.
    Notons "a" une variable de type caractère ; elle va recevoir '#' ou 'o'.

    L'algorithme pourrait se présenter ainsi :

    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
     
    pour i de 1 à n faire              # étudier toutes les lignes
        fini <- vrai                           
        a <- A(i,1)                    # premier élément de la ligne i
        pour j de 2 à p faire          # étudier les autres éléments de la ligne i
            si A(i,j) <> a alors 
                fini <- faux           # il y a deux éléments différents dans la ligne i
                break                  # inutile d'étudier les autres éléments de la ligne
            fin_si
        fin_pour                       # fin de l'étude de la ligne i
        si fini alors break            # si la ligne i est bonne, inutile d'étudier les autres lignes
        fin_si
    fin_pour                           # fin d'étude des lignes
     
    si fini alors retourner(vrai)      # si une ligne est bonne, inutile d'étudier les colonnes
    fin_si
     
    pour j de 1 à p faire              # étudier toutes les colonnes
        fini <- vrai                           
        a <- A(1,j)                    # premier élément de la colonne j
        pour i de 2 à n faire          # étudier les autres éléments de la colonne j
            si A(i,j) <> a alors 
                fini <- faux           # il y a deux éléments différents dans la colonne j
                break                  # inutile d'étudier les autres éléments de la colonne
            fin_si
        fin_pour                       # fin de l'étude de la colonne j
        si fini alors break            # si la colonne j est bonne, inutile d'étudier les autres colonnes
        fin_si
    fin_pour                           # fin d'étude des colonnes
     
    retourner(fini)
    J'ai noté "break" l'instruction qui permet de sortir d'une boucle avant la fin.
    Elle est notée "exit" en ADA.

    Notez que, si la fonction retourne vrai, le contenu de la variable a permet de savoir qui a gagné.
    Il est alors possible de modifier la fonction afin qu'elle retourne a quand la partie est finie ou le caractère nul dans le cas contraire.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Par défaut
    Merci beaucoup !

    J'y étais presque, mais je n'avais pas vu qu'on pouvait stocker la valeur de M(I,J) dans une variable pour pouvoir la comparer avec toutes les valeurs de la ligne ou de la colonne...
    Merci !!

Discussions similaires

  1. concernant parcours d'une matrice
    Par zied_m dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/01/2012, 14h14
  2. parcours d'une matrice
    Par doudi20 dans le forum Général Java
    Réponses: 5
    Dernier message: 17/03/2009, 15h51
  3. Parcours d'une matrice/tableau à deux dimensions
    Par yal001 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 20/11/2008, 14h59
  4. Parcours d'une matrice
    Par LordPeterPan2 dans le forum MATLAB
    Réponses: 5
    Dernier message: 30/07/2008, 09h00
  5. Parcours d'une matrice(Gantt)
    Par asmiti dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 17/01/2008, 10h40

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