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

C++ Discussion :

Probleme tableau 2 dimensions


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Par défaut Probleme tableau 2 dimensions
    Bonjour,
    ceci est mon premier post. Je suis en train de faire un projet pour résoudre un mot mystere en c++ avec un tableau de template vector a 2 dimensions: CMatrice <char> m_oMatrice .

    Tout mon tableau est initialisé avec les caracteres lus dans un fichier .txt.
    Quand j'arrive au moment pour verifier la premiere lettre d'un mot dans un tableau, et ensuite verifier si la deuxieme lettre est aux alentours, cela me donne un erreur. J'ai le code suivant :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    string sMotTrouve = "";
    string sPositionPremiereLettre = "";
    int iPosCar = 0;
    //Nombre de lignes du tableau 2 dimensionel
    	for(int i = 0; i < m_oMatrice.GetNbLignes(); i++)
    	{
                    //Nombre de colonnes du tableau 2 dimensionel
    		for(int j = 0; j < m_oMatrice.GetNbColonnes(); j++)
     
    	                 //On trouve la premiere lettre de sNom recu en parametre
    	 while(sMotTrouve.data() !=sNom.data() )
    		{
    			if(sNom[iPosCar] == m_oMatrice.GetCaractere(i,j))
    			{
    				//On ajoute le premier caractere
    				sMotTrouve += m_oMatrice.GetCaractere(i,j);
    				iPosCar++;
     
    				//On verifie si le deuxieme caractere est aux alentours
     
    				if(GetSens(sNom,i ,j,iPosCar))
    				{
    					//On rajoute les autres caracteres
    					sPositionPremiereLettre +=i + "," +j;
    					sMotTrouve += m_oMatrice.GetCaractere(i,j);
    				}
    			}
    		}
    	}
    }
    char GetCaractere(int iLigne, int iColonne)
    {
    	return m_Vecteur[iLigne][iColonne];
     
    }
    bool CMotMystere::GetSens(string &sNom, int &i , int &j, int &iPosCar)
    {
    	bool bATrouveLettre=false;
     
    	if(sNom[iPosCar] == m_oMatrice.GetCaractere(i+1,j) )
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Ouest-Est : OE";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i-1,j) && i > 0 )
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Est-Ouest : EO";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i,j+1) )
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Nord-Sud : NS";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i,j-1) && j > 0 )
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Sud-Nord : SN";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i+1,j+1))
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Nord-Ouest-Sud-Est : NOSE";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i-1,j+1) && i > 0)
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Nord-Est-Sud-Ouest : NESO";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i+1,j-1) && j >0)
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Nord-Ouest-Sud-Est : NOSE";
    	}
    	else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i-1,j-1) && j >0 && i >0)
    	{
    		bATrouveLettre=true;
    		m_sChaineDirection = "Direction Nord-Est-Sud-Ouest : NESO";
    	}
    	return 	bATrouveLettre;
    }

    Il plante au : else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i-1,j) && i > 0 )

    et me dit access violation mais je ne comprend pas pourquoi.

  2. #2
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Citation Envoyé par EmilyRose
    Il plante au : else if(sNom[iPosCar] == m_oMatrice.GetCaractere(i-1,j) && i > 0 )

    et me dit access violation mais je ne comprend pas pourquoi.

    Bonjour et bienvenu sur developpez.net

    Je ne connais pas ton objet CMatrice, mais il permet d'accéder à l'élément -1 ? si i=0 ?
    Cela ne serait pas le problème ?

    ps: penser à la balise CODE, le bouton # merci

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Pour rejoindre Ti-R, la condition est sans doute simplement mal formulée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if( i > 0 && sNom[iPosCar] == m_oMatrice.GetCaractere(i-1,j)  )

Discussions similaires

  1. [Langage] Probleme tableau 3 dimensions
    Par galadorn dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2008, 11h09
  2. Réponses: 7
    Dernier message: 01/12/2006, 21h28
  3. Réponses: 4
    Dernier message: 29/11/2006, 12h00
  4. [Conception] problème tableau 2 dimensions
    Par Tootsi dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 24/01/2006, 18h55

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