Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Imguvoss

Erro em algoritmo de contar vogais e consoantes

Recommended Posts

Pessoal, eu fiz esse algoritmo que o objetivo principal é apresentar as vogais e consoantes de uma palavra, após vários testes descobri um erro e que não estou conseguindo solucionar, queria pedir a ajuda de vocês para eu consiga concluir.

O algoritmo:

Algoritmo "Obter palavra e apresentar vogais e consoantes usando função"
Var

   nOpcao1, nOpcao2, nOpcao3, nLetra, nVogais, I: INTEIRO
   cPalavra, cVogal1, cVogal2, cVogal3, cVogal4, cVogal5: CARACTERE

Inicio
   Escreval("----------------")
   Escreval("|1- Ler palavra|")
   Escreval("|2- Sair       |")
   Escreval("----------------")

   Escreva("Digite uma opção: ")
   Leia(nOpcao1)

   Se nOpcao1 = 1 Entao
      Escreval("----------------------")
      Escreval("|1- Contar vogais    |")
      Escreval("|2- Contar consoantes|")
      Escreval("----------------------")

      Escreva("Digite uma opção: ")
      Leia(nOpcao2)

      Escreva("Digite uma palavra: ")
      Leia(cPalavra)

      Se nOpcao2 = 1 Entao
         cVogal1 <- "a"
         cVogal2 <- "e"
         cVogal3 <- "i"
         cVogal4 <- "o"
         cVogal5 <- "u"

         nLetra <- Compr(cPalavra)

         Para I De 1 Ate nLetra Passo 1 Faca

            Se Copia(cPalavra,I,1) = cVogal1 Entao
               nVogais <- nVogais + 1
            FimSe

            Se Copia(cPalavra,I,1)= cVogal2 Entao
               nVogais <- nVogais + 1
            FimSe

            Se Copia(cPalavra,I,1)= cVogal3 Entao
               nVogais <- nVogais + 1
            FimSe

            Se Copia(cPalavra,I,1)= cVogal4 Entao
               nVogais <- nVogais + 1
            FimSe

            Se Copia(cPalavra,I,1)= cVogal5 Entao
               nVogais <- nVogais + 1
            Fimse
         Fimpara

         Escreval("No nome tem: ",nVogais," vogais.")

         Se nOpcao2 = 2 Entao
            cConsoante1 <- "b"
            cConsoante2 <- "c"
            cConsoante3 <- "d"
            cConsoante4 <- "f"
            cConsoante5 <- "g"
            cConsoante6 <- "h"
            cConsoante7 <- "j"
            cConsoante8 <- "k"
            cConsoante9 <- "l"
            cConsoante10 <- "m"
            cConsoante11 <- "n"
            cConsoante12 <- "p"
            cConsoante13 <- "q"
            cConsoante14 <- "r"
            cConsoante15 <- "s"
            cConsoante16 <- "t"
            cConsoante17 <- "v"
            cConsoante18 <- "w"
            cConsoante19 <- "x"
            cConsoante20 <- "y"
            cConsoante21 <- "z"

            nLetra <- Compr(cPalavra)
            
          Para I De 1 Ate nLetra Passo 1 Faca

            Se Copia(cPalavra,I,1) = cConsoante1 Entao
               nConsoantes <- nConsoantes + 1
            FimSe

            Se Copia(cPalavra,I,1)= cConsoante2 Entao
               nConsoantes <- nConsoantes + 1
            FimSe

            Se Copia(cPalavra,I,1)= cConsoante3 Entao
               nConsoates <- nConsoantes + 1
            FimSe

            Se Copia(cPalavra,I,1)= cConsoante4 Entao
               nConsoantes <- nConsoantes + 1
            FimSe

            Se Copia(cPalavra,I,1)= cConsoante5 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
               
            Se Copia(cPalavra,I,1)= cConsoante6 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante7 Entao
               nConsoantes <- nConsoantes + 1
            Fimse

            Se Copia(cPalavra,I,1)= cConsoante8 Entao
               nConsoantes <- nConsoantes + 1
            Fimse

            Se Copia(cPalavra,I,1)= cConsoante9 Entao
               nConsoantes <- nConsoantes + 1
            Fimse

            Se Copia(cPalavra,I,1)= cConsoante10 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante11 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante12 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante13 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante14 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante15 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante16 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante17 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante18 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante19 Entao
               nConsoantes <- nConsoantes + 1
            Fimse
            
            Se Copia(cPalavra,I,1)= cConsoante20 Entao
               nConsoantes <- nConsoantes + 1
            Fimse

            Se Copia(cPalavra,I,1)= cConsoante21 Entao
               nConsoantes <- nConsoantes + 1
            Fimse

         Fimpara

         Escreval("No nome tem: ",nConsoantes," consoantes.")

      Se nOpcao1 = 2 Entao
      Fimse
   Fimse

   Escreval("--------------")
   Escreval("|1- Novamente|")
   Escreval("|2- Terminar |")
   Escreval("--------------")

   Escreval("Digite uma opção: ")
   Leia(nOpcao3)


   Enquanto nOpcao3 = 1 Faca


      Escreval("----------------")
      Escreval("|1- Ler palavra|")
      Escreval("|2- Sair       |")
      Escreval("----------------")

      Escreva("Digite uma opção: ")
      Leia(nOpcao1)

      Se nOpcao1 = 1 Entao
         Escreval("----------------------")
         Escreval("|1- Contar vogais    |")
         Escreval("|2- Contar consoantes|")
         Escreval("----------------------")

         Escreva("Digite uma opção: ")
         Leia(nOpcao2)

         Escreva("Digite uma palavra: ")
         Leia(cPalavra)

         Se nOpcao2 = 1 Entao
            cVogal1 <- "a"
            cVogal2 <- "e"
            cVogal3 <- "i"
            cVogal4 <- "o"
            cVogal5 <- "u"

            nLetra <- Compr(cPalavra)

            Para I De 1 Ate nLetra Passo 1 Faca

               Se Copia(cPalavra,I,1) = cVogal1 Entao
                  nVogais <- nVogais + 1
               FimSe

               Se Copia(cPalavra,I,1)= cVogal2 Entao
                  nVogais <- nVogais + 1
               FimSe

               Se Copia(cPalavra,I,1)= cVogal3 Entao
                  nVogais <- nVogais + 1
               FimSe

               Se Copia(cPalavra,I,1)= cVogal4 Entao
                  nVogais <- nVogais + 1
               FimSe

               Se Copia(cPalavra,I,1)= cVogal5 Entao
                  nVogais <- nVogais + 1
               Fimse
            Fimpara

            Escreval("No nome tem: ",nVogais," vogais.")

            Se nOpcao2 = 2 Entao

            Fimse
         Fimse


         Se nOpcao1 = 2 Entao
         Fimse
      Fimse

      Escreval("--------------")
      Escreval("|1- Novamente|")
      Escreval("|2- Terminar |")
      Escreval("--------------")

      Escreval("Digite uma opção: ")
      Leia(nOpcao3)

   Fimenquanto

Fimalgoritmo

Parâmetros para simular o erro:

 

F9(Executar) -> 1 -> 1 -> (Qualquer palavra) -> 2

 

De acordo com o VisuAlg, esse erro é um erro de sinaxe que diz: "Esperava contrar FIMSE". Mesmo que todos os "SE" que eu abri, eu fechei. Não sei também se não é algum erro na função "Enquanto" mesmo que eu tenha feito certo ao meu ponto de vista. Preciso da ajuda de vocês

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outros parâmetros que também resultam no mesmo erro de sintaxe são:

F9(Executar) -> 1 -> 2 -> (Qualquer palavra)

 

Esse próximo parâmetro, da o resultado errado do número de vogais ou consoantes, mesmo que no primeiro ciclo de execução ele de certo.

F9(Executar) -> 1 -> 1 -> (Qualquer palavra) -> 1 -> 1 -> 1 -> (Qualquer palavra)

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por thiago_tw
      eu to com uma tarefa que preciso de ajuda, já tentei alguns algoritmos que achei por aqui mas nunca dá certo, mandei a imagem do que é para ser feito, agradecido se me ajudarem

    • Por Geralt96
      Bom dia. Alguém pode me dá uma ajuda pra desenvolver essa questão, por gentileza?

      Aqui está ela: https://projecteuler.net/problem=6

      A soma dos quadrados dos primeiros dez números naturais é: 1² + 2² + ... 10² = 385...
      O quadrado da soma dos dez primeiros números naturais é: (1+2+ ... 10)² = 55² = 3025...
      Portanto, a diferença entre a soma dos quadrados dos primeiros dez números naturais e o quadrado da soma é: 3025 - 385 = 2640.
      Encontre a diferença entre a soma dos quadrados dos primeiros cem números naturais e o quadrado da soma.
    • Por Motta
      O algoritmo que procura padrões ocultos na maior base de dados de sonhos do mundo
    • Por Andréia Bürck
      Gostaria de saber se há como fazer o seguinte, em JAVA ou qualquer outra linguagem: personalizar um áudio. Ou seja, tenho um áudio, e em lugares chaves desse áudio, depois dele pronto, um programa inserir nesses pontos-chave, por exemplo, nomes. Eu falo o nome, e o programa insere nos pontos pré-determinados.
    • Por flipmartinz13
      Alguém pode me ajudar nessa questão de C++? não estou conseguindo construir o algorítmo corretamente.

      5.92)    Faça um algoritmo que leia a matrícula, nome, sexo e três notas dos alunos de uma escola e obtenha os seguintes resultados:
      a) A matrícula da aluna que obteve a maior média.
      b) A matrícula do aluno que obteve a menor média.
      c) O percentual de mulheres na turma.
      d) Quantos alunos foram aprovados, independente do sexo.
      e) O percentual de alunas aprovadas.
      Obs.: o flag é uma matrícula igual a 0 (zero).
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.