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

avec Java Discussion :

problème remplissage tableaux


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut problème remplissage tableaux
    Bonjour,

    je tente de créer une matrice ou la valeur des mes éléments des lignes paire et colonnes impaire auront la valeur 20

    là ou je bloque c'est lorsque j'entame mon remplissage.
    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
    		int N = 5;
    		int matrice[][] = new int [N][N];
     
    		for(int i=0; i<matrice.length;i++) {
    			for(int j=0;j<matrice.length;++j) {
    				if(i%2==0  && j%2==0 ) {
     
    					matrice[i][j]=4;
    				}
    				else {
    					matrice[i][j]= 20;
    				}
    				System.out.print(matrice[i][j]+ " ");
    			}
    			System.out.println("");
    		}
    	}
    voila le résultat de ce code Nom : Capture.PNG
Affichages : 98
Taille : 1,5 Ko
    je souhaite obtenir ce résultat (les cases jaunes) Nom : cap2.PNG
Affichages : 103
Taille : 12,1 Ko

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tout ceci n'est pas très clair :

    1. Si tu veux pouvoir générer un damier avec deux états de case (blanc et noir, ou 4 et 20, c'est pareil), algorithmiquement, il faut considérer sur les lignes d'index paires, qu'un des deux états, mettons l'état 4 va par exemple sur les cases d'index (de colonne) pair et l'autre état, 20, dans les cases d'index impaires. Mais sur les lignes d'index impaires, pour avoir le décalage dû à la quinconce, il faut inverser les deux états : 4 va dans les cases "impaires" et 20 dans les cases "paires".
      En gros,
      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
      if (i%2==0) { // pair
          if ( j%2==0 ) { // pair
              matrice[i][j]=4;
          }
          else { // impair
              matrice[i][j]=20;
          }
      }
      else {
          if ( j%2==0 ) { // pair
              matrice[i][j]=20;
          }
          else { // impair
              matrice[i][j]=4;
          }
      }
      En l’occurrence, on peut simplifier ça, par une "astuce". Parce i%2 et j%2 valent 0 ou 1. 0 signifiant pair et 1 impair. Or le test ci-dessus pourrait s'écrire de manière synthétique :
      Si on note i%2 a et j%2 b :
      Code synthétique : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
       
      si a est pair alors
         si b est pair alors 4
         si b est impair alors 20
      fin si
      si a est impair alors
         si b est impair alors 4
         si b est pair alors 20
      fin si
      On voit donc que si a est égal à b, ça donne 4 sinon ça donne 20
      donc on peut écrire :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      if(j%2==i%2 ) {
          matrice[i][j]=4;
      }
      else {
          matrice[i][j]= 20;
      }
    2. En revanche, le deuxième tableau, je ne vois pas trop le rapport avec le code. Il y a trois couleurs de cases, et pas de 4 ou de 20 en quinconce.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    le deuxième tableau est le résultat final. pour mes valeurs 4 et 20 ce sont juste des valeur que j'ai introduite pour savoir si le remplissage ce faisait correctement, pour ce qui est du code couleur c'est le suivant
    jaunes = ligne paire et colonne impaire => valeur comprise entre N et 20
    bleu = colonne impaire et ligne paire => valeur comprise entre 0 et N
    blanc= numérotation à partir de 1 => compteur simple.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Donc, en clair, ce n'est pas un damier (deux couleurs) que tu veux obtenir, mais une coloration basée sur trois états. Ta description te donne directement la solution

    1. si ligne paire (donc i%2==0) et colonne impaire (donc j%2!=0) alors jaune, soit (i%2==0 && j%2!=0)
    2. bleu si (i%2!=0 && j%2==0)
    3. sinon blanc


    Tu peux te baser également sur la solution que je t'ai donnée (remplissage d'un damier), basée sur la condition (i%2==j%2), puisque les conditions qui donnent jaune ou bleu sont le else de celle-ci.

    En gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (j%2==i%2) {
       // case blanche
    }
    else if ( i%2==0 ) { // j%2 est forcément !=0 dans ce cas
       // case jaune
    }
    else { // i%2 est forcément != 0 dans ce cas, et donc j%2 forcément == 0
       // case bleue
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 10
    Par défaut
    je comprend mieux le fonctionnement maintenant, merci de ton aide

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

Discussions similaires

  1. [HTML]problème de tableaux imbriqués
    Par tyrann dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 24/03/2006, 15h29
  2. Problème avec tableaux dynamiques et procédure
    Par K20 dans le forum Langage
    Réponses: 11
    Dernier message: 06/01/2006, 20h51
  3. Réponses: 5
    Dernier message: 24/12/2005, 15h40
  4. HTML : problème de tableaux qui se superposent
    Par paprika dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/10/2005, 15h55
  5. [D2005]Problème de tableaux dynamique
    Par Laurent Dardenne dans le forum Delphi .NET
    Réponses: 8
    Dernier message: 26/07/2005, 11h56

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