Exercícios Resolvidos de Strings

Ver Teoria

Enunciado

Faça um programa que leia uma string do teclado e diga se ela é palíndromo. Uma string é palíndromo quando pode ser lida tanto de trás pra frente quanto de frente para trás e possui exatamente a mesma sequência de caracteres. Considere no desenvolvimento apenas palavras palíndromos.

Passo 1

Vamos começar o nosso desenvolvimento definindo o escopo do programa.

Passo 2

Com o escopo definido, está na hora de declararmos e inicializarmos as variáveis e o vetor que serão essenciais para o programa.

Informações sobre as declarações:

  • i e j são variáveis contadoras;
  • flag variável booleana representativa que marcará se a palavra é ou não um palíndromo, sendo 0 para verdadeiro e 1 para falso;
  • string é um vetor de caracteres que será responsável por armazenar uma cadeia de caracteres inseridas pelo usuário.

Passo 3

Nesse momento, podemos requisitar o dado de entrada do programa ao usuário.

Esse dado nada mais é do que a cadeia de caracteres que será verificada como sendo ou não um palíndromo.

Passo 4

Antes de iniciar a verificação, nós precisamos encontrar o último caractere do vetor string.

Para isso basta utilizarmos um laço de repetição while com a condição: enquanto o conteúdo do vetor string na posição j for diferente do terminador nulo. Tal condição deve ser seguida do incremento da variável j a cada loop, isso fará que ao encerramento do laço o valor armazenado por j seja exatamente uma unidade a mais que a posição onde se encontra o último caractere de string.

Passo 5

Sendo assim, basta utilizarmos a estrutura de repetição for para verificarmos se string é uma palavra palíndromo ou não.

Essa verificação só é possível, pois estabelecemos na inicialização as duas variáveis contadoras dos dois diferentes extremos de string. Além disso, a regra de atualização delas são opostas, enquanto i é incrementada j é decrementada, ambas em 1 unidade.

Tendo em vista o comando condicional nas instruções da estrutura, nós podemos concluir que esse laço de repetição irá verificar a igualdade do primeiro termo de string com o último, do segundo com o penúltimo e assim por diante. Caso alguma verificação de igualdade seja falha, a variável flag é atribuída com o valor 1.

Passo 6

Por fim, é a variável flag que será verificada. Se ela possuir o valor 1, quer dizer que uma das posições extremas correspondentes não são iguais e a palavra não é um palíndromo. No entanto, se flag possuir o valor 0, a palavra se trata de um palíndromo.

Em ambos os casos, uma impressão seguida de uma quebra de linha será feita.

Resposta

Ei, a resposta está no passo a passo :)