Jump to content
Fórum Script Brasil
  • 0

Lógica - Palíndromo


Rodrigo R. Moraes

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...