Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
AlanMarcel123

Java Determinar um padrão existente na imagem ou não

Recommended Posts

Boa noite, gostaria de que alguém olhasse meu código e me falasse o que está errado, já tentei de várias maneiras e ele não dá os resultados certos.

 

Enunciado do problema:
Uma imagem em preto e branco, de tamanho m x n, pode ser representada por uma matriz cujos elementos assumem valores no conjunto {0,1}. Dado um padrão representado por uma matriz 3x3 também assumindo valores em {0,1}, escreva um programa que determine se o padrão existe ou não na imagem.

 

Matriz exemplo:
0 0 1 0 0 0 0 1 0
0 1 1 1 1 1 1 0 0
0 0 1 0 1 1 1 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 0 0
0 0 0 0 0 1 0 0 0
1 1 1 0 1 0 1 0 0
1 0 1 0 0 0 0 0 0
1 1 1 0 0 1 1 1 0

 

Matriz padrão:
0 1 0
1 1 1
0 1 0


 

package javaapplication27;
import java.util.Scanner;
public class JavaApplication27 {
    public static void main(String[] args) {
        Scanner dd = new Scanner(System.in);
        int M;
        int N;
        int igual = 0;
        System.out.println("Informe o tamanho da matriz (X,Y)");
        M = dd.nextInt();
        N = dd.nextInt();
        int matriz[][] = new int[M][N];
        System.out.println("Insira a matriz:");
        for (int entrada1 = 0; entrada1 < matriz.length; entrada1++) {
            for (int entrada2 = 0; entrada2 < matriz[entrada1].length; entrada2++) {
                matriz[entrada1][entrada2] = dd.nextInt();
            }
        }
        int padrão[][] = new int[3][3];
        System.out.println("Insira a matriz de consulta:");
        for (int entrada11 = 0; entrada11 < padrão.length; entrada11++) {
            for (int entrada22 = 0; entrada22 < padrão[entrada11].length; entrada22++) {
                padrão[entrada11][entrada22] = dd.nextInt();
            }
        }
        for (int teste1 = 0; teste1 < matriz.length-2; teste1++) { //coloquei menos 2 para ele não ultrapassar a matriz
            for (int teste2 = 0; teste2 < matriz[teste1].length-2; teste2++) { // mesma coisa vale
                if ((matriz[teste1][teste2] == padrão[0][0])
                        && (matriz[teste1][teste2 + 1] == padrão[0][1])
                        && (matriz[teste1][teste2 + 2] == padrão[0][2])
                        && (matriz[teste1 + 1][teste2] == padrão[0][0])
                        && (matriz[teste1 + 1][teste2 + 1] == padrão[1][1])
                        && (matriz[teste1 + 1][teste2 + 2] == padrão[2][2])
                        && (matriz[teste1 + 2][teste2] == padrão[0][0])
                        && (matriz[teste1 + 2][teste2 + 1] == padrão[1][1])
                        && (matriz[teste1 + 2][teste2 + 2] == padrão[2][2])) {
                    igual++;
                }
            }
        }
        if (igual > 0) {
            System.out.println("Existe padrão!" + igual);
        } else {
            System.out.println("Não existe padrão!" + igual);
        }
    }
}

No caso era pra mostrar que existe 1 padrão, mas no programa mostra que não existe padrão, por isso gostaria que alguém revisasse meu código e olhasse o erro. Agradeceria muito!

Editado por DiF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×