Problema do professor de matemática caxias
Enunciado unificado
O professor de matemática Saixac é considerado pelos colegas e alunos como bastante caxias e exigente. Ele estuda e ensina o uso do parênteses, colchetes e chaves, inclusive recomenda aos alunos a leitura do artigo [1].
Na sua prova, ele solicitou aos alunos que escrevessem e lhe enviassem por e-mail expressões de até 200 caracteres utilizando-se das regras que ensinou em sala de aula.
Nesta avaliação ele não estava interessado em analisar as operações matemáticas em si, mas o uso dos símbolos modificadores de ordem da resolução.
Veja as tarefas dadas aos alunos do ensino fundamental e aos alunos do ensino médio e faça um programa para verificar as expressões imprimindo "1" caso for correta "0" caso errada.
As expressões terão até 200 caracteres, serão informadas uma por linha e não haverá espaço entre seus caracteres. O resultado poderá ser dada logo após um retorno de carro ("enter").
A entrada terminará quando uma expressão com somente um número zero for informada.
Dificuldade 1
No ensino fundamental, ele pediu para que os alunos escrevessem expressões utilizando-se apenas dos parênteses. As exigências eram:
- Todo parênteses que for aberto deve ser fechado.
- Nenhum parêntese pode ser fechado sem antes ser aberto.
As expressões numéricas em si podem ou não existir.
Exemplo 1
Entrada
(1*(2+3)) (1*(2+(3-4))) (1*(2+(3/(4-5)))) (1*(2+(3/(4*(5-6))))) (()) ((())) (((()))) ((((())))) 0
Saída
1 1 1 1 1 1 1 1
Exemplo 2
Entrada
)1*(2+3)) (1*)2+(3-4))) (1*(2+(3/(4-5))))) (1*(2+(3/(4*(5-6)))) )()) ()())) (((())))) ((((()))) 0
Saída
0 0 0 0 0 0 0 0
Exemplo 3
Entrada
(1*2)+(3+4) (1*(1+1))+((1+2)+(2+2)) ()() (())(()()) 0
Saída
1 1 1 1
Exemplo 4
Entrada
)( )()( (( )) 0
Saída
0 0 0 0
Dificuldade 2
No ensino médio, a instrução foi para que os alunos escrevessem expressões utilizando-se de parênteses e/ou colchetes e/ou chaves. As exigências eram:
- Todo parênteses, colchetes ou chaves que for aberto deve ser fechado.
- Nenhum parênteses, colchetes ou chaves pode ser fechado sem antes ser aberto.
- Uma expressão agrupada por chaves só poderá existir se dentro dela existir pelo menos uma expressão agrupadas por colchetes ou pelo menos uma outra expressão agrupada por chaves que atenda ao pré-requisito anterior.
- Uma expressão agrupada por colchetes só poderá existir se dentro dela existir pelo menos uma expressão agrupadas por parênteses.
As expressões numéricas em si podem ou não existir.
Exemplo 1
Entrada
(1+2)+(3+4) [(1+2)+(3+4)] {[(1+2)+(3+4)]} {{[(1+2)+(3+4)]}} 0
Saída
1 1 1 1
Exemplo 2
Entrada
() ()() [()()] {[()()]} {[()]} 0
Saída
1 1 1 1 1
Exemplo 3
Entrada
(( ))() [()()[ {[()))]} {[()]{ {]()))]} }[()]{ 0
Saída
0 0 0 0 0 0 0
Exemplo 4
Entrada
(1+2)( )1+2)+(3+4) ](1+2)+(3+4)[ }[(1+2)+(3+4)]{ 0
Saída
0 0 0 0
Exemplo 5
Entrada
{(1+2)+(3+4)} ([3+4]) [3+4] [({1+2}+{3+4})] 0
Saída
0 0 0 0