Diferenças entre edições de "Palíndromo"
De GNU Octave
(→Mais informação) |
|||
Linha 10: | Linha 10: | ||
=====Mais informação ===== | =====Mais informação ===== | ||
− | [http://pt.wikipedia.org/wiki/Pal%C3%ADndromos] | + | [http://pt.wikipedia.org/wiki/Pal%C3%ADndromos Definição de palíndromo] |
− | [ | + | [https://pt.wikiquote.org/wiki/Pal%C3%ADndromos Lista de Palíndromos] |
<syntaxhighlight> | <syntaxhighlight> |
Edição atual desde as 00h39min de 17 de janeiro de 2018
Um palíndromo é uma palavra ou frase que tem a propriedade de poder ser lida tanto da direita para a esquerda como da esquerda para a direita. Num palíndromo, normalmente não são considerados os sinais ortográficos (acentos ou de pontuação), assim como o espaços entre palavras.
Escreva uma função que verifique se uma frase é um palíndromo, como em:
- Ana
- salas
- A droga gorda
- Luz azul
- Anotaram a data da maratona
Mais informação
function res = ispalindromo(frase) % ispalindromo(frase) % indica se uma determinada frase é um palíndromo. % Isto é, se pode ser lida de trás para a frente. % Para calcular, limpa-se a frase e depois % compara-se a mesma com o reverso desta. limpa = lower(frase(find(isletter(frase)))); res = all( limpa == fliplr(limpa)); endfunction
Em alternativa, podia-se escrever um programa, com um ciclo em que se testa a primeira letra com a última, a segunda com a penúltima, e assim sucessivamente.
frase = input('Introduza uma frase para verificar se é palindromo: ','s') limpa = lower(frase(find(isletter(frase)))) flag = 1; for k = 1:round(length(limpa)/2) printf('%c = %c\n', limpa(k), limpa(end-k+1)); if ( limpa(k) != limpa(end-k+1) ) flag = 0; break; endif endfor if flag disp('É um palíndromo'); else disp('Não é um palíndromo'); endif