Ir ao conteúdo

Posts recomendados

Postado

Olá, preciso fazer uma matriz em java que reconheça um padrão, por exemplo

1|1

1|0

O objetivo é que a matriz seja preenchida com números aleatórios e depois de preenchida faça uma reconhecimento desse padrão acima e me devolva quantos padrões foram encontrados, segue abaixo o código que fiz até agora, porém está dando erro se alguém poder me dar um auxilio eu agradeço.

package Códigos;

import java.util.Random;

public class Matriz {
    public static void main(String[] args) {
       // O programa deve ser possível ler no mínimo uma matriz 10x10 e encontrar ou não o padrão.
        //A matriz pode ser preenchida de forma automática de forma aleatória.
    
        int tam=10;
        int matriz [][]= new int[tam][tam];
        int l,c;
        int padrão=0;
        int cont=0;
        l=0;
        c=0;

        for ( l=0;l<tam;l++){
            for (c=0;c<tam;c++){
                Random rand= new Random();
                matriz[l][c]=rand.nextInt(2);
            }
        }
        for (l=0;l<tam;l++) {
            for (c=0;c<tam;c++) {
                if (matriz[l][c] == 1 && matriz[l][c + 1] == 1 && matriz[l+1][c]==0) {
                    cont++;
                    padrão+= cont;
                }

            }
        }
        System.out.println(padrão);
    }
}

 

  • 6 meses depois...
Postado

Desculpe pela demora, mas como diz o ditado: "Antes tarde do que nunca".

 

Acho que é isso que você precisa, ou precisava:

import java.util.Random;

public class PadroesMatrizTest {
    public static void main(String[] args) {
        int tamanho = 10;
        int[][] matriz = new int[tamanho][tamanho];

        int padraoOI = 0;
        int padraoOO = 0;
        int padraoIO = 0;
        int padraoII = 0;

        // Preencher matriz com valores binários aleatórios
        for (int c = 0; c < tamanho; ++c)
            for (int l = 0; l < tamanho; ++l)
                matriz[l][c] = new Random().nextInt(2);

        // analisar em busca dos padrões
        for (int l = 0; l < tamanho; ++l) {
            for (int c = 0; c < tamanho - 1; ++c) {
                if (matriz[c][l] == 0 && matriz[c + 1][l] == 0)
                    ++padraoOO;
                else if (matriz[c][l] == 0 && matriz[c + 1][l] == 1)
                    ++padraoOI;
                else if (matriz[c][l] == 1 && matriz[c + 1][l] == 0)
                    ++padraoIO;
                else if (matriz[c][l] == 1 && matriz[c + 1][l] == 1)
                    ++padraoII;
            }
        }

        // Exibição de relatório
        System.out.println(">> Matriz");
        for (int l = 0; l < tamanho; ++l) {
            for (int c = 0; c < tamanho; ++c)
                System.out.print(matriz[c][l] + " ");

            System.out.println();
        }

        System.out.println();
        System.out.println(">> Padrões");
        System.out.println("Padrão OO: " + padraoOO);
        System.out.println("Padrão OI: " + padraoOI);
        System.out.println("Padrão IO: " + padraoIO);
        System.out.println("Padrão II: " + padraoII);
    }
}

 

  • 3 anos depois...
Postado

boa tarde podia me ajudar e quase igual a esta sua :

 

1   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 33 também assumindo valores em {0,1}, escreva uma função, ou trecho de código, que determine se o padrão existe ou não na imagem.

(8 pontos)

using System;

using System.IO;


 

namespace Testes

{

            class Program

            {

                        static void Main(string[] args)

                        {

                                    CriaMatriz("A.txt", 200, 350);

                                    CriaMatriz("B.txt", 3, 4);


 

                                    int[,] A = LerMatriz("A.txt");

                                    int[,] B = LerMatriz("B.txt");


 

                                    Console.WriteLine(NumeroDeOcorrencias(A, B));

                        }


 

                        static int NumeroDeOcorrencias(int[,] matriz, int[,] padrão)

                        {

                                    int N = matriz.GetLength(0), M = matriz.GetLength(1);

                                    int n = padrão.GetLength(0), m = padrão.GetLength(1);

                                    int contador = 0;

                                   

                                    ///////////////////////////////////////////////////////

                                    //

                                    //  Escreva seu código aqui

                                    //

                                    ///////////////////////////////////////////////////////

                                   

                                    return contador;

                        }


 

                        static int[,] LerMatriz(string fileName)

                        {

                                    FileStream f = new FileStream(fileName, FileMode.Open);

                                    StreamReader sr = new StreamReader(f);

                                    string[] tamanho = sr.ReadLine().Split(' ');

                                    int n = int.Parse(tamanho[0]);

                                    int m = int.Parse(tamanho[1]);

                                    int[,] ret = new int[n,m];

                                    for(int i=0; i<n; ++i)

                                    {

                                               string linha = sr.ReadLine();

                                               for (int j = 0; j < m; ++j)

                                                           ret[i, j] = linha[j] == '0' ? 0 : 1;

                                    }

                                    sr.Close();

                                    return ret;

                        }


 

                        static void CriaMatriz(string fileName, int n, int m)

                        {

                                    Random r = new Random();

                                    FileStream f = new FileStream(fileName, FileMode.Create);

                                    StreamWriter sw = new StreamWriter(f);

                                    sw.Write($"{n} {m}\r\n");

                                    for (int i = 0; i < n; ++i)

                                    {

                                               for (int j = 0; j < m; ++j)

                                                           sw.Write(r.Next(2) == 0 ? '0' : '1');

                                               sw.Write("\r\n");

                                    }

                                    sw.Close();

                                    f.Close();

                        }

            }

}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!