La idea del ejemplo o ejercicio es:
De una palabra mostrar las letras que la forman y contabilizar el número de veces que se repite cada letra.
Public Sub Main()
Dim palabra, letra_actual, plural_singular As String
Dim x, y As Integer
Dim indices As New Integer[], lista_letras As New String[]
' No uso tildes.
palabra = "sarcastico"
indices.Resize(Len(palabra))
For x = 1 To Len(palabra)
'Asignamos a letra actual, la letra que corresponde al indice x
letra_actual = Mid$(palabra, x, 1)
'Si la letra no esta en la lista de letras
If lista_letras.Find(letra_actual) = -1 Then
'La añadimos a la lista de letras
lista_letras.Add(letra_actual)
'Buscamos la letra_actual en cada letra de la palabra para compararla
For y = x To Len(palabra)
'No queremos que se compare la letra consigo misma
If letra_actual = Mid$(palabra, y + 1, 1) Then
indices[x - 1] += 1
Endif
Next
' Si el número de repticiones del valor de indices es 0, 1 o más, la variable plural_singular cambia su valor
If indices[x - 1] > 1 Or indices[x - 1] = 0 Then
plural_singular = " veces"
Else
plural_singular = " vez"
Endif
Print letra_actual & " se repite " & indices[x - 1] & plural_singular
Endif
Next
End
Dim palabra, letra_actual, plural_singular As String
Dim x, y As Integer
Dim indices As New Integer[], lista_letras As New String[]
' No uso tildes.
palabra = "sarcastico"
indices.Resize(Len(palabra))
For x = 1 To Len(palabra)
'Asignamos a letra actual, la letra que corresponde al indice x
letra_actual = Mid$(palabra, x, 1)
'Si la letra no esta en la lista de letras
If lista_letras.Find(letra_actual) = -1 Then
'La añadimos a la lista de letras
lista_letras.Add(letra_actual)
'Buscamos la letra_actual en cada letra de la palabra para compararla
For y = x To Len(palabra)
'No queremos que se compare la letra consigo misma
If letra_actual = Mid$(palabra, y + 1, 1) Then
indices[x - 1] += 1
Endif
Next
' Si el número de repticiones del valor de indices es 0, 1 o más, la variable plural_singular cambia su valor
If indices[x - 1] > 1 Or indices[x - 1] = 0 Then
plural_singular = " veces"
Else
plural_singular = " vez"
Endif
Print letra_actual & " se repite " & indices[x - 1] & plural_singular
Endif
Next
End
He usado dos arrays, una para saber el número de veces que se repite cada letra y otra para almacenar y no repetir el mismo trabajo con la misma letra.
¿ Qué mejorarías vosotros o como lo harías vosotros ?. Puede que con la función Instr también se pueda hacer.
Saludos
Letras_en_palabras.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | Letras_en_palabras.tar.gz | |
Tamaño: | 5.55 KB | |
Descargado: | 16 veces |
Letras_en_palabras.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | Letras_en_palabras.tar.gz | |
Tamaño: | 5.55 KB | |
Descargado: | 16 veces |
Letras_en_palabras.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | Letras_en_palabras.tar.gz | |
Tamaño: | 5.55 KB | |
Descargado: | 16 veces |