Informática, perguntado por LuanPeterlevitz1456, 1 ano atrás

Sua tarefa: Escreva um algoritmo que leia uma expressão com no máximo 80 caracteres e conte quantos
pares abre-fecha parênteses estão validamente definidos, conforme as regras acima. Observe que pares de
parênteses podem estar aninhados dentro de outros pares. Importante: só os caracteres abre e fecha
parênteses devem ser analisados, o restante da expressão não deve ser considerado. Note que estamos
interessados em saber quantos pares são válidos de acordo com as regras e não se a expressão toda está
correta.

Soluções para a tarefa

Respondido por bokomoko
0
Eu faria assim

cadeia[80] de caracter

leia cadeia[]

conta_abres = 0    // quantos abre parenteses abertos 
conta_pares = 0    // quantos pares encontrados
conta_erros = 0     // quantos pares com erro 

para i = 1 até tam(cadeia) faça  // vamos varrer a cadeia 
      pedaco = cadeia[i]     // pegamos o i-ésimo caracter da cadeia 
      se pedaco = "(" então      // se for um "(" abriu um parenteses
            conta_abres = conta_abres +1     // contamos mais um aberto
      senaose pedaco = ")"      // se for um ")" vamos fechar os parenteses
             se conta_abres > 0 então   // mas só se tiver pelo menos 1 aberto
                   conta_pares = conta_pares + 1       // contamos mais um par 
                   conta_abres = conta_abres -1     // menos um aberto
             senao              // não tinha parentese aberto, então é erro
                    conta_erros = conta_erros +1
             fim-se
       fim-se
fim-para

se conta_abres > 0 então   // sobrou algum aberto ?
     conta_erros = conta_erros+1    // sim! então é erro
fim-se

// exibir os resultados
Imprima "Total de pares válidos encontrados", conta_pares
Imprima "total de erros encontrados", conta_erros
Perguntas interessantes