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

Collection et Stream Java Discussion :

[D�butant] conna�tre le max d'une valeur dans un tableau � deux dimensions


Sujet :

Collection et Stream Java

  1. #1
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut [D�butant] conna�tre le max d'une valeur dans un tableau � deux dimensions
    Bonsoir tout le monde,

    J'aimerais savoir quel est la valeur la plus grande dans un tableau � deux dimensions.


    Pour cela, j'ai cr�� le tableau en question, j'ai cr�� quelques variables :

    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
    public class MaximumTableau2Dimensions 
    {
    	public static void main (String[] args)
    	{
    		int tableau [][] = new int [5][5];
    		int maximum = 0;
     
     
    		for (int i = 0; i < tableau.length; i++)
    		{
    			for (int j=0; j < tableau.length; j++)
    			{
    				tableau[i][j] = (int) (Math.random()*20+1);
    			}
    		}
     
    		for (int i=0; i < tableau.length; i++ )
    		{
    			for (int j=0; j < tableau.length; j++)
    			{
    				System.out.print(tableau[i][j] + " ");
    			}
     
    		}
     
    		System.out.println();
     
     
     
     
    		for (int i=0; i < tableau.length; i++ )
    		{
    		if (tableau[i] > maximum )
     
    			maximum = tableau[i];
     
     
    			for (int j=0; j < tableau.length; j++)
    			{
    					if (tableau[j] > maxium)
    					maximum = tableau[j];
     
    		}
    		}
     
    		System.out.println();
     
    		//System.out.println("Le maximum vaux :" + maximum);
    	}
    }
    le probl�me vient de cette partie du code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for (int i=0; i < tableau.length; i++ )
    		{
    		if (tableau[i] > maximum )
     
    			maximum = tableau[i];
     
     
    			for (int j=0; j < tableau.length; j++)
    			{
    					if (tableau[j] > maxium)
    					maximum = tableau[j];
     
    		}
    		}
    Voici les messages d'erreur :

    operator > cannot be applied to int[].int
    incompatible types
    cannot resolve symbol variable maximum
    incompatible types
    Qu'en pensez-vous ?

    Merci d'avance pour vortre aide.

    beegees

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par d�faut
    D'abord ta condition d'arr�t de la boucle sur j imbriqu�e n'est pas correcte (l� �a fonctionne parce que ton tableau est "carr�").
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    for (int j=0;j<tableau[i].length;j++)
    est plus correct.

    Deuxi�mement, pour trouver le plus grand entier, tu dois parcourir toutes les cases du tableau, soit tous les tableau[i][j] en refaisant deux boucles imbriqu�es.

    Bon courage !

  3. #3
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Merci pour ta r�ponse,

    est-ce normal que tu mettes un i dans les j ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    for (int j=0;j<tableau[i].length;j++)
    Je continue � chercher.

    Merci encore.

    beegees

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par d�faut
    Euh .. l� je suis quand m�me �tonn� par ta question. A regarder un tutoriel sur les tableaux � plusieurs dimensions � mon avis ce n'est pas tr�s clair dans ta t�te ....

  5. #5
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Re-bonjour,

    Apr�s avoir cherch� pas mal de temps, je pense avoir trouv� une solution, pourriez-vous me dire si celle-ci vous semble correcte ?

    En tout cas le r�sultat est l�:

    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
    for (int i=0; i < tableau.length; i++ )
    		{
    			for (int j=0; j < tableau.length; j++)
    			{
     
    				if (tableau[i][j] > maximum)
    				maximum = tableau[i][j];
     
    		}
    		}
     
    		System.out.println();
     
    		System.out.println("Le maximum vaut" + maximum);
     
    		//System.out.println("Le maximum vaux :" + maximum);
    Merci d'avance pour votre aide.

    beegees

  6. #6
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Citation Envoy� par chtig
    Euh .. l� je suis quand m�me �tonn� par ta question. A regarder un tutoriel sur les tableaux � plusieurs dimensions � mon avis ce n'est pas tr�s clair dans ta t�te ....
    Tout � fait, �a n'est pas tr�s claire dans ma t�te.

    Je dois avouer que c'est la premi�re fois que je vois ta m�thode, pourrais-tu regarder ce que j'ai fais ?

    Merci
    beegees

  7. #7
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par d�faut
    Dans la section que tu donnes, on ne voit pas l'initialisation de maximum, mais je suppose que tu le fait. Attention � la valeur que tu mets, une bonne id�e est de prendre tableau[0][0].
    Sinon, reste toujours la condition d'arr�t de ta deuxi�me boucle qui doit utiliser tableau[i].length pour �tre propre (et fonctionner dans tous les cas de tableaux).
    Mais l� �a va fonctionner...

  8. #8
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Re-bonjour,

    Dans la section que tu donnes, on ne voit pas l'initialisation de maximum, mais je suppose que tu le fait.
    Dans mon premier message, on peut voire que j'ai mis :

    � la valeur que tu mets, une bonne id�e est de prendre tableau[0][0].
    Je ne comprends pas bien ce que tu veux dire par l� ?

    Il faut que je mette tableau[0][0] au lieu de tableau[i][j] ?

    Sinon, reste toujours la condition d'arr�t de ta deuxi�me boucle qui doit utiliser tableau[i].length pour �tre propre (et fonctionner dans tous les cas de tableaux).
    L� j'ai quand m�me une question, si i est inf�rieur � j, tout va s'arr�ter avant que j soit terminer ?

    Disons qu'on est 2 valeurs dans i et 3 dans j

    i: 2,3
    j: 1,2,5

    si on lance la boucle jusque i soit termin�, et qu'on cherche le maximum, on va trouv� que 3 est le plus grand mais on va pas s'occuper de 5 ?

    Merci pour tes explications !

    beegees

  9. #9
    Expert confirm�
    Avatar de le y@m's
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2005
    Messages
    2 636
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 2 636
    Par d�faut
    Citation Envoy� par beegees
    Il faut que je mette tableau[0][0] au lieu de tableau[i][j] ?
    Non, chtig parlait de la valeur d'initialisation de ton maximum. Tu donne 0 comme valeur par d�faut, mais si ton tableau ne contient que des nombre n�gatifs, alors �a ne collera pas.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int maximum = tableau[0][0];
    Citation Envoy� par beegees
    Citation Envoy� par chtig
    Sinon, reste toujours la condition d'arr�t de ta deuxi�me boucle qui doit utiliser tableau[i].length pour �tre propre (et fonctionner dans tous les cas de tableaux).
    L� j'ai quand m�me une question, si i est inf�rieur � j, tout va s'arr�ter avant que j soit terminer ?

    Disons qu'on est 2 valeurs dans i et 3 dans j

    i: 2,3
    j: 1,2,5

    si on lance la boucle jusque i soit termin�, et qu'on cherche le maximum, on va trouv� que 3 est le plus grand mais on va pas s'occuper de 5 ?
    Tu n'as visiblement pas compris comment fonctionnent les tableaux multidimensionnels.
    Ton i sert � parcourir les "�l�ments" de la premi�re dimension, dont le nombre est renvoy� par tableau.length.
    A chaque "�l�ment" de la premi�re dimension correspond une � deuxi�me dimension.
    Ton j sert � parcourir les �l�ments de la seconde dimension correspondant � la premi�re dimension d�sign�e par i (d'o� le tableau[i].length).

    Je suis pas s�r d'�tre clair .

    Voici un code pour illustr� :
    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
     
    // Parcours de la première dimension
    for(int i = 0; i < tableau.length; i ++) {
     
        // On récupère la deuxième dimension correspondant
        // à la première dimension en cours
        int[] deuxiemeDimension = tableau[i];
     
        // Parcours de la deuxième dimension correspondant
        // à la première dimension en cours
        for(int j = 0; j < deuxiemeDimension.length; j ++) {
            // calcul maximum
            if(deuxiemeDimension[j] > maximum) {
                maximum = deuxiemeDimension[j];
            }
        }
    }
    }
    Maintenant remplace deuxiemeDimension par tableau[i] et le tour est jou�.
    Je ne r�pondrai � aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a �t� trouv�e � votre probl�me
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  10. #10
    Membre exp�riment�
    Avatar de beegees
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par d�faut
    Bonjour le y@m's,

    Merci pour ta r�ponse qui m'a permis de comprendre l'utilisation des tableaux � deux dimensions.

    Passe une tr�s bonne soir�e.

    beegees

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [D�butant] Appli avec attribution d'une valeur dans un label
    Par outofspace dans le forum D�veloppement iOS
    R�ponses: 3
    Dernier message: 16/09/2014, 22h54
  2. Conna�tre l'index d'une valeur dans un tableau
    Par chok371 dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 26/01/2011, 19h41
  3. R�ponses: 4
    Dernier message: 29/06/2006, 15h50
  4. Rechercher une valeur dans un tableau
    Par pafi76 dans le forum Access
    R�ponses: 2
    Dernier message: 29/06/2006, 14h23
  5. R�ponses: 21
    Dernier message: 28/02/2006, 15h23

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