Ir ao conteúdo
  • Cadastre-se

Cesar Augusto Beletatti

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. 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á.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!