palindromo

volovan
14 de Octubre del 2008
hola que tal necesito ayuda para realizar un programa en visual basic 6.0 que me identifique si es un palindromo o no utilizando mid agredeceria tu ayuda gracias

Baltasar
14 de Octubre del 2008
Private Sub Text1_Change()
If Es_Palindromo(Text1.Text) Then
Label1.Caption = "SI"
Else
Label1.Caption = "NO"
End If
End Sub

Private Function Es_Palindromo(MFrase)
Dim Frase_Sin_Espacios
Dim a As Long
Dim b As Long
Dim Palindromo As Boolean
Dim Longitud_Frase_Sin_Espacios

If Len(MFrase) <= 2 Then
Es_Palindromo = False
Exit Function
End If
For a = 1 To Len(MFrase)
If Mid(MFrase, a, 1) <> " " Then
Frase_Sin_Espacios = Frase_Sin_Espacios + Mid(MFrase, a, 1)
End If
Next a

Longitud_Frase_Sin_Espacios = Len(Frase_Sin_Espacios)
Palindromo = True
b = 1
Do While Palindromo And b <= Longitud_Frase_Sin_Espacios / 2
If Mid(Frase_Sin_Espacios, b, 1) <> Mid(Frase_Sin_Espacios, Longitud_Frase_Sin_Espacios - b + 1, 1) Then
Palindromo = False
End If
b = b + 1
Loop
Es_Palindromo = Palindromo
End Function


El código se puede mejorar mucho, eliminar la variable "b", etc etc, pero lo he puesto así para que quede más fácil de entender.

Suerte con las tareas del cole.

Baltasar
14 de Octubre del 2008
Olvidé aclarar algunas cosas:

en el formulario hay que poner un TextBOX llamado text1 y un Label llamado label1

Además, esta rutina fallaría al usar tildes, ya que diría que son diferentes letras la A con y sin tilde, por ejemplo.

Suerte.