Pascal/Turbo Pascal - Por favor necesito resolver este problema!

   
Vista:

Por favor necesito resolver este problema!

Publicado por Magali (9 intervenciones) el 19/07/2016 01:09:37
una palabra o conjunto de letras (que puede no tener significado), se llama palindromo cuando teniendo mas de una letra, se lee lo mismo de izquierda a derecha o de derecha a izquierda; por ejemplo: ABABA

tambien llamaremos i-palindromo cuando quitando el primer caracter de la izquierda se convierte en palindromo, por ejemplo: CASA

se llama d-palindromo cuando quitando el primer caracter de la derecha se convierte en palindromo, por ejemplo: AMAD

llamaremos palabras distinguidas a aquellas que son palindromos, i-palindromos o d-palindromo.

el problema, cuya solucion debes programar, consiste en recibir una palabra y determinar los posiblres cortes que la descomponen en dos palabras distinguidas, e indicar para cada una de ellas que tipoo son.
las palabras a cortar ingresa por teclado con una longitud maxima de 20 caracteres.
exhibir, separado por espacios, una palabra distinguida y los tipos a los que pertenece. si no hay ninguna descomposicion posible se colocara "no se puede".


ejemplo
palabra: azarosos

azar : d-palindromo
osos : i-palindromo , d-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

Por favor necesito resolver este problema!

Publicado por ramon (2072 intervenciones) el 19/07/2016 11:27:22
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 servira para 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
1
Comentar

Por favor necesito resolver este problema!

Publicado por Magali (9 intervenciones) el 19/07/2016 16:29:53
Muchisimas GRacias !!! por ayudarme ! :D
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