Ajuda na solução

2 respostas
C

Ola pessoal blza?
Sou novo no Java e sem bem pouca coisa, e meu professor passou um exercicio que nao consigo fazer a solução que ele quer.
Poderiam me ajudar?

Segue o pedido dele.

Consiste em desenvolver um algoritmo utilizando a técnica de PILHA, que peça ao usuário que informe uma expressão no seguinte formato: [ (A + B) * ( ( C / D) + X ) ]
Apenas os seguintes caracteres devem ser armazenados em uma pilha:(, [ e {
O algoritmo deve validar se a expressão é valida ou não, ou seja, a quantidade de “(” abertas deve ser a mesma de ")? fechadas.
O algoritmo deve validar também se o símbolo de fechamento é correspondente ao símbolo de abertura, ou seja, se o símbolo de fechamento for ] , na pilha tem que estar no topo neste momento o símbolo [. Se isso não ocorrer, deve retornar expressão inválida.
Ao final do processamento da expressão, deve ser exibida a mensagem “Expressão válida” se a pilha estiver vazia e toda a expressão tiver sido processada ou “Expressão Inválida” se o símbolo de fechamento for diferente do que está na pilha.

**** REGRAS GERAIS / ESCOPO ****

  • O MENU DEVE APRESENTAR 2 OPÇÕES APENAS:
      1. INFORMAR EXPRESSÃO
      1. VALIDAR EXPRESSÃO
  • A EXPRESSÃO DEVE SER INFORMADA PELO USUÁRIO, NÃO DEVE SER FIXADA EM CÓDIGO.
  • O USUÁRIO DEVE DIGITAR TODA A EXPRESSÃO DE UMA ÚNICA VEZ.
  • NÃO É PERMITIDO O USO DE IMPORTS DO JAVA. APENAS O java.util.Scanner É PERMITIDO.

2 Respostas

Ruttmann

Qual é a dúvida?

B

Seu problema ñ e tão simples assim. Pelo que eu entendi o usuario fornece a expressão e o algoritmo deve valida-la, isso me parece que ele quer q vs implemente uma automoto com pila. Para resolve-lo sugiro q vc de uma pesquisa sobre “linguagens formais e automotos com pilha”.

Criado 3 de junho de 2015
Ultima resposta 3 de jun. de 2015
Respostas 2
Participantes 3