palindromo
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
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.
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.
