Ir ao conteúdo
  • Cadastre-se

Ajuda, maquina de turing em Java


Posts recomendados

Olha, eu preciso saber se tem como colocar para gravar em uma matriz mais de um "atributo", tipo uma struct em c, estou tentando fazer uma maquina de turing em java, e não estou conseguindo fazer a parte da transição, olha o código

package javaapplication2;import java.util.Scanner;public class JavaApplication2 {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int max = 100;        String[] estados = new String[max];        String estadoInicial;        String[] estadosFinais = new String[max];        int qtEstados, qtEstadosF, qtAlfabeto, qtAlfabetoAux;        String[] alfabeto = new String[max];        String[] alfabetoAux = new String[max];        String branco, inicial;        int qtTransicao;        String[][] transicao = new String[max][max];// Quantidade de estados da maquina de Turing        System.out.println("Digite a quantidade de Estados: ");        qtEstados = input.nextInt();        // Pedindo o nome dos estados.        input.nextLine(); // "Limpar" uma linha inteira do buffer        for (int i = 0; i < qtEstados; i++) {            System.out.println("Digite o nome do " + (i + 1) + "º estado: ");            estados[i] = input.nextLine();        }        System.out.println("------------------------------------------------------------------------------------");// Mostrar os valores contidos no vetor        for (int i = 0; i < qtEstados; i++) {            System.out.println("Estado " + (i + 1) + " = " + estados[i]);        }        System.out.println("------------------------------------------------------------------------------------");// Pedir o estado inicial        System.out.println("Digite o estado Inicial: ");        estadoInicial = input.nextLine();        System.out.println("------------------------------------------------------------------------------------");// Pedir a quantidade de estados finais        System.out.println("Digite a quantidade de estados finais existentes: ");        qtEstadosF = input.nextInt();        System.out.println("------------------------------------------------------------------------------------");        if (qtEstadosF > qtEstados) {            // Se a quantidade de estados finais for maior que a quantidade de estados, da erro            System.out.println("Erro: a quantidade de estados finais é maior ou iqual a quantidade de estados.");        } else { /* Se a quantidade de estados finais for menor que a quantidade de estados, pede para informar quais são             os estados finais */            input.nextLine(); // "Limpar" uma linha inteira do buffer            for (int i = 0; i < qtEstadosF; i++) {                System.out.println("Digite os estados finais: ");                estadosFinais[i] = input.nextLine();            }            System.out.println("------------------------------------------------------------------------------------\n");// Mostrar quais são os estados finais            for (int i = 0; i < qtEstadosF; i++) {                System.out.println("Estado Final: " + estadosFinais[i]);            }            System.out.println("------------------------------------------------------------------------------------\n");        }        // Pedir a quantiade de simbolos do alfabeto da maquina de turing        System.out.println("Digite a quantidade de simbolos do alfabeto: ");        qtAlfabeto = input.nextInt();        input.nextLine();        // Pedir os simbolos do alfabeto        for (int i = 0; i < qtAlfabeto; i++) {            System.out.println("Digite o " + (i + 1) + "º simbolo do Alfabeto: ");            alfabeto[i] = input.nextLine();        }        System.out.print("Alfabeto:");        //Mostrando o Alfabeto        for (int i = 0; i < qtAlfabeto; i++) {            System.out.print(alfabeto[i] + ",");        }        System.out.println("");        // Pedir quantidade de simbolos do alfabeto aux        System.out.println("Digite a quantidade de simbolos do Alfabeto Auxiliar: ");        qtAlfabetoAux = input.nextInt();        System.out.println("------------------------------------------------------------------------------------\n");        input.nextLine();        for (int i = 0; i < qtAlfabetoAux; i++) {            System.out.println("Digite o " + (i + 1) + "º simbolo do alfabeto Auxiliar:");            alfabetoAux[i] = input.nextLine();        }        System.out.println("------------------------------------------------------------------------------------\n");        for (int i = 0; i < qtAlfabetoAux; i++) {            // Mostrando o alfabeto aux            System.out.println("Alfabeto Auxiliar:" + alfabetoAux[i]);        }        System.out.println("Quantas transições existem: ");        qtTransicao = input.nextInt();        branco = "ß";        System.out.println("Branco: " + branco);        inicial = "<";        System.out.println("Simbolo Inicial: " + inicial);        }    }

Tipo, o que estou pensando em fazer, é pedir para o usuário informar qual o estado atual, e pra qual estado vai a transição, dai pedir a transição entre esses dois estados para o usuário, e gravar essa transição em uma posição de uma matriz ou um vetor ainda não sei, só que essa transição terá 3 "atributos". Exemplo transição de s1 para s2 e transição ficaria s2,A,D

s2 = significa para que estado vai. A = indica que o "a" do alfabeto mudou para "A" que é o alfabeto auxiliar. D = indica que a a fita andou para a direita.

E tipo como eu faço para ler palavra por palavra, exemplo o usuário quer saber se a palavra "aabb" pertence a maquina que foi inserida, como faço para pegar letra por letra, para poder ler a palavra.

Eu sei que esta meio confuso, mas alguém pode me dar uma ajuda, ou algumas dicas de como eu posso fazer isso, e queria saber se estou no caminho certo para esse trabalho. Obrigado. Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...