Partage
  • Partager sur Facebook
  • Partager sur Twitter

programme java

    2 mai 2010 à 23:34:20

    Bonjour, en fait je dois faire un programme qui affiche pour chaque case d'un tableau d'entiers le nombre de cases voisines qui ont la même valeur.

    J'avais pensé à un algorithme, mais celui-ci implique une trop grande quantité de if, et donc c'est pas trop pratique.

    Est-ce que quelqu'un aurait une idée de comment le faire?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      2 mai 2010 à 23:44:41

      Il suffit de tester pour toute tes cases les cases [i+1][j], [i-1][j], [i][j+1] et [i][j-1].
      Ca fait donc un double for, et une petite serie de 4 if.

      Si j'ai bien compris... ^^
      • Partager sur Facebook
      • Partager sur Twitter
        3 mai 2010 à 0:02:18

        mais en fait pour une case quelconque, il y aurait 8 cases voisines possibles, non? même si c'est un tableau à deux dimensions. Donc, selon l'algo que j'avais pensé, il faudrait faire 3 types de if (dans l'ensemble de 2 for qui parcourent le tableau): un pour les cases situées aux coins (4 coins en tout), un autre pour celles qui sont au bord mais pas au coin, et un dernier pour celles qui sont au centre.

        Tout ça pour eviter un erreur de IndexOutOfBoundException.

        Quand-même ce sont beaucoups de if.

        Je pense qu'il doit avoir un algo plus simple...

        Qu'est-ce que t'en penses?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          3 mai 2010 à 0:18:46

          Hum.. Non, a moins que tu compte les diagonales, oui il y a donc bien 8 cases.
          ca ferait donc soit 8 if, soit 3 if avec plusieurs conditions oui.
          Je pense que le mieux c'est les 3 if.

          Après, il faudrait réfléchir, voir s'il y a d'autre soluce. J'en vois pas pour l'instant ^^
          • Partager sur Facebook
          • Partager sur Twitter
            3 mai 2010 à 0:23:39

            comment ça trois if avec plusieurs conditions oui? tu veux dire des booléans?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              3 mai 2010 à 0:34:52

              Arf, me suis mal exprimé, je voulais dire 3 if avec plusieurs condition (VIRGULE ^^) , oui.
              En gros, tu fait un if pour les coins :
              if(tab[i-1][j+1] || tab[i+1][j+1] || tab[i-1][j-1] || tab[i+1][j-1])
              //Respectivement pour les cases haut gauche, haute droite, bas gauche, bas droite
              


              Ensuite tu test celle d'au dessus, puis celle des cotés. Je pense que séparer serait le mieux, enfin faire par exemple les trois [i-1] ensemble, les 2 [i] ensemble et les 3 [i+1] ensemble ^^ (trois de gauche, 2 du centre, et 3 a droite)
              • Partager sur Facebook
              • Partager sur Twitter

              programme java

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown