Pascal/Turbo Pascal - Ayuda con este ejercicio de palindromos por favor!

 
Vista:

Ayuda con este ejercicio de palindromos por favor!

Publicado por Marcos (1 intervención) el 12/07/2016 08:10:05
Una palabra o conjunto de letras (que puede no tener significado), se llama
palíndromo cuando teniendo más de una letra, se lee lo mismo de izquierda
a derecha ó de derecha a izquierda; por ejemplo, ababa.
También llamaremos i-palíndromo cuando quitando el primer carácter de la
izquierda se convierte en palíndromo, por ejemplo casa.
Se llama d-palíndromo cuando quitando el primer carácter de la derecha se
convierte en palíndromo, por ejemplo amad.
Llamaremos palabras distinguidas a aquellas que son palíndromos, ipalíndromo
ó d-palíndromo.
El problema, cuya solución debes programar, consiste en recibir una
palabra y determinar los posibles cortes que la descomponen en dos
palabras distinguidas, e indicar para cada una de ellas de que tipo son.
La palabra a cortar ingresa por teclado con una longitud máxima de 20
caracteres.
Exhibir, separado por espacios, una palabra distinguida y los tipos a los que
pertenece. Si no hay ninguna descomposición posible se colocará “no se
puede”.
Ejemplo 1:
Si la palabra es azarosos - Debería mostrarse:
azar d-palindromo
osos i-palindromo d-palindromo
Ejemplo 2:
Si la palabra es amarrar - Debería mostrarse:
ama palindromo
rrar i-palindromo
amar d-palindromo
rar palindromo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con este ejercicio de palindromos por favor!

Publicado por ramon (2158 intervenciones) el 19/07/2016 11:02:32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
{Mira esto te alludara a terminar}
 
 program  palindromos;
  uses
     crt;
   type
     cadena = string[20];
   var
     palabra : cadena;
     part1, part2, part3, part4 : cadena;
     l, i, h : integer;
 
   procedure entradapalabra(var pl : cadena);
   begin
      clrscr;
      writeln('   Entre Palabra Max 20 Caracteres');
      writeln;
      write('  Palabra : ');
      readln(pl);
   end;
 
    function espalindromo(s : cadena) : boolean;
    var
      temp : cadena;
    begin
       l := 1;
       for i := length(s) downto 1 do
       begin
          temp[l] := s[i];
          temp[0] := chr(l);
          l := l + 1;
       end;
         if temp = s then
         espalindromo := true
      else
         espalindromo := false;
    end;
 
    function espalindromoi(pi : cadena) : boolean;
    begin
       delete(pi,1,1);
       if espalindromo(pi) then
       espalindromoi := true
    else
       espalindromoi := false;
    end;
 
   function espalindromod(pd : cadena) : boolean;
   begin
      delete(pd,length(pd),length(pd));
      if espalindromo(pd) then
       espalindromod := true
    else
       espalindromod := false;
    end;
 
   procedure particionpalabra(fg : cadena);
   var
     par : boolean;
   begin
       if length(fg) mod 2 = 0 then
       begin
       par := true;
       part1 := copy(fg,1,length(fg) div 2);
       part2 := copy(fg,(length(fg) div 2) + 1,length(fg));
       writeln('  ',part1);
       writeln('  ',part2);
       end
    else
       begin
       par := false;
       part1 := copy(fg,1,length(fg) div 2);
       part2 := copy(fg,(length(fg) div 2) + 1,length(fg));
       part3 := copy(fg,1,(length(fg) div 2) + 1);
       part4 := copy(fg,(length(fg) div 2) + 2,length(fg));
       end;
       if par = true then
       begin
       if espalindromo(part1) then
       writeln('   Es palindromo La Parte 1 = ',espalindromo(part1))
    else
       begin
          writeln('   Es Distinguida La Parte 1');
          writeln;
          writeln('   Es I-palindromo = ',espalindromoi(part1));
          writeln;
          writeln('   Es D-palindromo = ',espalindromod(part1));
       end;
      if espalindromo(part2) then
       writeln('   Es palindromo La Parte 2 = ',espalindromo(part2))
    else
       begin
          writeln;
          writeln('   Es Distinguida La Parte 2');
          writeln;
          writeln('   Es I-palindromo = ',espalindromoi(part2));
          writeln;
          writeln('   Es D-palindromo = ',espalindromod(part2));
       end;
   end
  else
     begin
        if espalindromo(part1) then
       writeln('   Es palindromo La Parte 1 = ',espalindromo(part1))
    else
       begin
          writeln('   Es Distinguida La Parte 1');
          writeln;
          writeln('   Es I-palindromo = ',espalindromoi(part1));
          writeln;
          writeln('   Es D-palindromo = ',espalindromod(part1));
       end;
      if espalindromo(part2) then
       writeln('   Es palindromo La Parte 2 = ',espalindromo(part2))
    else
       begin
          writeln;
          writeln('   Es Distinguida La Parte 2');
          writeln;
          writeln('   Es I-palindromo = ',espalindromoi(part2));
          writeln;
          writeln('   Es D-palindromo = ',espalindromod(part2));
       end;
      if espalindromo(part3) then
       writeln('   Es palindromo La Parte 3 = ',espalindromo(part3))
    else
       begin
          writeln;
          writeln('   Es Distinguida La Parte 3');
          writeln;
          writeln('   Es I-palindromo = ',espalindromoi(part3));
          writeln;
          writeln('   Es D-palindromo = ',espalindromod(part3));
       end;
        if espalindromo(part4) then
       writeln('   Es palindromo La Parte 4 = ',espalindromo(part4))
    else
       begin
          writeln;
          writeln('   Es Distinguida La Parte 4');
          writeln;
          writeln('   Es I-palindromo = ',espalindromoi(part4));
          writeln;
          writeln('   Es D-palindromo = ',espalindromod(part4));
       end;
 
     end;
  end;
 
    begin
       entradapalabra(palabra);
       if espalindromo(palabra) then
       writeln('  Si Es Palindromo')
    else
       particionpalabra(palabra);
       readkey;
    end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar