Ir para conteúdo
Fórum Script Brasil
  • 0

Lógica - Palíndromo


Rodrigo R. Moraes

Pergunta

Srs., bom dia.

Estou com a seguinte dúvida na qual não consigo solução, nem mesmo por onde começar. Podem me ajudar?

Um palíndromo é uma palavra ou frase que poder ser lida tanto da direita para a esquerda como da esquerda para a direita. Desconsiderando espaçamento e acentos gráficos.

O objetivo deste trabalho é captar uma frase digitada pelo usuário e escrevê-la ao contrário.

Como deve ser feito?

O programa deverá ler uma frase digitada pelo usuário. Quebrar a frase em palavras e armazenar em uma matriz de caracteres. Cada linha da matriz representará uma palavra (um caractere por coluna). Imprimir a matriz. Depois realizar a leitura inversa percorrendo a matriz de baixo para cima e da direita para a esquerda e imprimir a frase inversa.

Exemplo:

Socorram me, subi no onibus em Marrocos

Matriz armazenando as palavras:

S O C O R R A M

M E

S U B I

N O

O N I B U S

E M

M A R R O C O S

Resultado final que deverá ser impresso:

SOCORRAM ME SUBINO ON IBUS EM MARROCOS.

----

Alguém alguma idéia ou consegue gerar esse código ai pra mim?

Obrigado pela ajuda. Abs.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

exemplo:

algoritmo "Palindromo" 

var 
palavra1: caractere 
Resp: caractere 
h: logico 
i, j:inteiro 

inicio 
repita 
limpatela 
escreva("Digite uma palavra: ") 
leia(Palavra1) 
i <- 1 
j <- compr(Palavra1) 
h <- verdadeiro 

    enquanto (i<j)  faca 
       escreval(copia(palavra1,i,1)) 
       escreval(copia(palavra1,j,1)) 
       se copia(palavra1,i,1)=copia(palavra1,j,1) então 
          h<-verdadeiro 
       senao 
          h<-falso 
       fimse 
       j<-j-1 
       i<-i+1 
    fimenquanto 

escreval 

se h=verdadeiro então 
   escreval("A palavra informada é um palindromo.") 
senao 
   escreval("A palavra informada não é um palindromo.") 
fimse 
escreval 

    escreva("Continuar (*/n): ") 
    leia(Resp) 
ate Resp = "N" 

fimalgoritmo
codificação usando pascal
uses
 crt, DOS, sysUtils;
var
  receber,NString:string;
  count,qtdeDig:byte;
  palindromo:boolean;
  sair:char;
begin
repeat
  textbackground(lightblue);
  clrscr;
  textcolor(yellow);
  writeln('DIGITE O TEXTO:');
  readln(receber);
  NString:=upcase(receber);
  qtdeDig:=Length(NString);
  repeat delete(NString,pos(' ',NString),1) until pos(' ',NString) = 0; //remover espaços
  repeat delete(NString,pos('-',NString),1) until pos('-',NString) = 0; //remover hífens
  qtdeDig:=Length(NString);
  count:=0;
  repeat
    if NString[count+1]=NString[qtdeDig-Count] then
      begin
      palindromo:=true;
      count:=count+1;
      end
      else
        begin
        palindromo:=false;
        count:=qtdeDig;
        end;
  until count=qtdeDig;
  write('O TEXTO DIGITADO');
  if not palindromo then write(' N',#199,'O');
  writeln(' ',#144,' PAL',#214,'NDROMO!');
  writeln;
  write('OUTRA CONSULTA? [S/N]  >> ');
  repeat
    sair:=upcase(readkey)
    until sair in ['S','N'];
  until sair='N';
end.

outros exemplos:

http://www.daniweb.com/software-developmen...i/threads/49753

http://www.mail-archive.com/delphi-br@yaho...r/msg42847.html

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...