Curso Básico de Programación
en Visual Basic

Soluciones de la entrega Dieciséis.
Fecha: 6/Abr/98

 

1- Haz que se muestren los caracteres de una cadena al revés.

    Dim unaCadena As String
    Dim i As Integer

    unaCadena = "Hola Mundo"

    Cls

    For i = Len(unaCadena) To 1 Step -1
        Print Mid$(unaCadena, i, 1);
    Next
    Print

Lo que se hace es un bucle "al revés", es decir: empezando por el último caracter... avanzando hasta el primero.
De eso se encarga el STEP -1

 

2- Usando esta misma cadena, es decir "Hola Mundo", divídela en las dos palabras.

'
    Dim unaCadena As String
    Dim i As Integer
    Dim palabra1 As String
    Dim palabra2 As String

    unaCadena = "Hola Mundo"

    Cls

    For i = 1 To Len(unaCadena)
        If Mid$(unaCadena, i, 1) = " " Then
            palabra1 = Mid$(unaCadena, 1, i)
            'También así:
            'palabra1 = Left$(unaCadena, i)

            palabra2 = Mid$(unaCadena, i + 1)

            'Realmente deberíamos abandonar el bucle
            'Por la tremenda:
            'Exit For
            'Terminando el bucle:
            'i = Len(unaCadena)
        End If
    Next
    Print palabra1
    Print palabra2

En este segundo ejemplo, si no abandonamos el bucle, bien usando EXIT FOR, (algunos me odiarán por esto), bien asignando a la variable i el valor máximo que puede tener: Len(unaCadena); en el caso de que la variable tenga más de un espacio, se asignará a palabra2 la última palabra y a palabra1 todo lo anterior. Si se abandona el bucle, en ese mismo caso: palabra1 tendrá la primera palabra y palabra2 todo el resto.

Para comprobarlo, cambia la asignación por esta otra:
unaCadena = "Hola Mundo desastroso"

Y comprueba lo que te digo...

Más adelante veremos otras formas de "obtener" cada una de las palabras de una cadena...

 

Ya sólo queda esperar a la próxima entrega... en la que "remataremos" lo del acceso aleatorio ese...

Nos vemos.
Guillermo


 

Ir al índice principal del Guille