aula 132

Dúvida | Como descobrir se uma palavra é PALÍNDROMA em Portugol

Vamos a mais uma dúvida? E na aula de hoje vamos aprender como identificar uma palavra palíndroma com a linguagem Portugol.

Uma palavra palíndroma é uma palavra que mantêm o mesmo significado quando lida da esquerda para a direita ou da direita para a esquerda. Veja alguns exemplos:
– ama
– arara
– reviver

Há várias abordagens possíveis para identificar se uma palavra é palíndroma ou não. Aqui usaremos índices para percorrer a palavra comparando seus caracteres, comparando o primeiro caracter com o último, o segundo com o penúltimo, e assim por diante, até chegarmos ao meio da palavra.

Ao final, se em todas as comparações os caracteres forem iguais, etão temos uma palavra palíndroma.

palavra palíndroma
Identificando se uma palavra é palíndroma.

Para programar essa lógica precisamos descobrir a posição do último caracter da palavra. Para descobrir esse valor basta descobrirmos o tamanho da palavra e subtrairmos 1, uma vez que o primeiro caracter está no índice 0 e não no índice 1. O tamanho da palavra pode ser descoberto com a função numero_caracteres da biblioteca Texto, como feito a seguir.

		/*
		  Descobrindo o índice do último caracter
		*/
		fim = Texto.numero_caracteres(palavra)
		fim--

Agora que descobrimos o índice do último caracter da palavra, basta percorrermos a palavra com um índice ini que começa com o valor zero e com o índice fim que começa com o índice do último caracter da palavra. O índice ini irá aumentar em direção ao meio da palavra enquanto que o índice fim irá diminuir também em direção ao meio da palavra. Durante esse processo iremos comparar os caracteres das posições ini e fim. Se algum deles for diferente, então a palavra não é palíndroma.

Código completo em Portugol para verificar se uma palavra é palíndroma

programa{

	inclua biblioteca Texto
	
	/*
	 * Como descobrir uma palavra palíndroma em Portugol
	 * 
	 * Código escrito por Wagner Gaspar
	 * Maior de 2021
	 * 
	 * palavras palíndromas
	 * ama
	 * anilina
	 * arara
	 * osso
	 * radar
	 * reviver
	*/
	
	funcao inicio(){
		cadeia palavra
		inteiro fim, ini = 0, eh = 1

		escreva("Digite uma palavra: ")
		leia(palavra)

		fim = Texto.numero_caracteres(palavra)
		fim--

		enquanto(ini < fim){
			se(Texto.obter_caracter(palavra, ini) != Texto.obter_caracter(palavra, fim))
				eh = 0
			ini++
			fim--
		}
		se(eh == 1)
			escreva("Palindroma...\n")
		senao
			escreva("Não é palindroma...\n")
	}
}

Deixe um comentário

7 − quatro =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.