Apuntes Informática  VISUAL_BASIC                   Volver a Apuntes Visual Basic

Diferencias con Qbasic


Abre Visual Basic y selecciona Crear un nuevo proyecto EXE estandar.

Para cambiar el tamaño del formulario arrastra el ratón tirando de las esquinas. Para poder introducir código debes insertar un botón haciendo click en la barra de controles y arrastrando sobre el formulario.  Para entrar en ventana de código haz doble click sobre el botón y escribe Print "hola" entre las lineas  Private Sub Command1_Click()  y  End Sub.

Para poner en funcionamiento el programa pulsa sobre el botón Iniciar y verás aparecer la ventana de Windows con el programa. Pulsa el botón del formulario y verás ejecutarse el código, apareciendo en el formulario la palabra "hola"

Añade nuevas instrucciones Print al código del programa

Se ejecutarán al ponerlo en marcha y pulsar sobre el botón Command1.

Para cerrar el programa pulsa sobre el botón Cerrar.

Añade varias órdenes print que muestren números en formato exponencial como Print 3E12 o Print 4E-9 y verás como Visual Basic los convierte automáticamente.

Tambien puedes usar variables de texto (terminadas en $) o numéricas, asi como pedir un valor mediante la instrucción Inputbox() que muestra una ventana de entrada de datos.

Observa que al escribir el paréntesis de la instrucción InputBox, Visual Basic muestra el formato de la instrucción el cual puede llevar un mensaje, un título para la ventana, un valor por defecto, la posición en pantalla, etc.

En el ejemplo escribe simplemente:

Apellido$ = INPUTBOX("DIME TU APELLIDO")

para guardar la respuesta en una variable tipo String.

Añade al programa las lineas:

Print "Hola.." + Nombre$+"  "+Apellido$

El espacio entre las dos variables evita que queden pegados los textos correspondientes.

Tambien puedes definir el tipo de las variables con la instrucción DIM en lugar de utilizar el caracter $

Dim Nombre,Apellido As String

La orden PRINT envia al formulario los mensajes o los cálculos realizados linea a linea. Pero una forma más practica es enviarlos a posiciones fijas del formulario, insertando objetos tipo Label (etiquetas de texto).

Haz click sobre el objeto correspondiente e insértalo en el formulario. Su nombre será: Label1 y la forma de enviarle un texto es :

Label1.Caption="hola.."+Nombre$+"  "+Apellido$

Este es ahora el contenido del código correspondiente al botón insertado en el formulario:

Private Sub Command1_Click()
Print "HOLA"
Print "EL CUBO DE 5 ES.."; 5 * 5 * 5
Print 3000000000000#
Print 0.000000004
Nombre$ = "ANA"
Print "MI NOMBRE ES.."; Nombre$
Apellido$ = InputBox("DIME TU APELLIDO ")
Print "HOLA.."; Nombre$ + " " + Apellido$
Label1.Caption = "hola.." + Nombre$ + " " + Apellido$
End Sub

Inserta un nuevo botón y haz doble click sobre él para introducir el código siguiente:

Private Sub Adivina_Click()
Dim X, n As Integer
X = CInt(Rnd * 10)
Print "DAME UN NUMERO DEL 0 AL 10 "
n = InputBox("Número:")
If X = n Then Print "ACERTASTE" Else Print "FALLASTE"
End Sub

En esta subrutina se definen dos variables numéricas enteras X y N. Se calcula un valor al azar para X y se pide otro mediante una ventana (InputBox). A continuación se comprueba si son iguales enviando al formulario el mensaje correspondiente.

Image21.gif (3845 bytes)

Crea un nuevo proyecto e inserta una etiqueta (Label1) y un botón en él. Haz doble click sobre el botón para introducir el siguiente código que te permitirá ver cómo se usa la función Format()

Private Sub Command1_Click()
Dim micadena As String
Label1.Caption = "Muestras de formatos"
micadena = Format(5459.4, "##,##0.00")
Print micadena
micadena = Format(334.9, "###0.0")
Print micadena
micadena = Format(334.9, "###0.00") ' Devuelve "334,90".
Print micadena
micadena = Format(5, "0.00%") ' Devuelve "500,00%".
Print micadena
micadena = Format("HOLA", "<") ' Devuelve "hola".
Print micadena
micadena = Format("Esto está en mayúsculas ", ">")
Print micadena
End Sub
Image26.gif (3643 bytes)

Crea un proyecto nuevo y añade dos cuadros de texto y una etiqueta. Inserta 3 botones de acción y modifica su nombre y texto. Haz doble clic sobre cada uno de ellos e inserta estas operaciones:

Private Sub Dividir_Click()
Label1 = Text1 / Text2
End Sub

Private Sub Multiplicar_Click()
Label1 = Text1 * Text2
End Sub

Private Sub Potencias_Click()
Label1 = Text1 ^ Text2
End Sub
image28.gif (3502 bytes) Añade un nuevo botón que calcule el logaritmo en base 10 del número introducido en el primer cuadro de texto:

Private Sub Logaritmo_Click()
Label1 = Log(Text1) / Log(10#)
End Sub

Image29.gif (2839 bytes) Crea una nueva función que calcule el logaritmo en cualquier base. Selecciona Agregar procedimiento  y escribe esta función:

Public Function LogaritmoX(ByVal x, y As Integer) As Single
LogaritmoX = Log(x) / Log(y)
End Function

Image30.gif (2608 bytes) Para llamarla hay que pasarle 2 parámetros: X que será el número cuyo logaritmo queremos calcular y Y que representa la base. Introduce un nuevo botón de acción llamado LogBaseX y llama desde él a la función:

Label1 = LogaritmoX(Text1, Text2)

Image39.gif (12339 bytes) Utilización de las funciones generadoras de números aleatorios: RND y RANDOMIZE
Sintaxis:
Randomize [número]
El argumento con nombre número puede ser cualquier expresión numérica válida.

Rnd devuelve un valor entre 0 y 1. Por ejemplo, la instrucción :
MiValor = Int((6 * Rnd) + 1)   
Genera un valor aleatorio entre 1 y 6 y lo guarda en la variable MiValor
(Rnd*6 da un número de 0 a 5 y le sumamos 1)

Abre un proyecto nuevo, introduce un botón de acción y una etiqueta de texto con un tamaño grande de letra y haz doble click sobre el botón para introducir el código siguiente:

image40.gif (5177 bytes)

Ahora ejecuta el programa y observa que con cada pulsación del botón aparece un número distinto (del 1 al 6) en la etiqueta de texto. Modifica el programa para que aparezcan 6 números al azar (del 1 al 49) en cada pulsación, para simular el juego de la primitiva.
En determinados casos necesitaremos usar números enteros con valores altos. Entonces necesitamos trabajar con el tipo Long (entero largo):
Integer    2 bytes    -32.768 a 32.767.
Long (entero largo)    4 bytes    -2.147.483.648 a 2.147.483.647.
La función que convierte el dato de un TextBox a entero largo es Clng() y es equivalente a CInt() para enteros.

En este programa podrás introducir números grandes y el código del botón comprobará si es par (si la división entera es igual a la división con decimales) o impar (si no lo es)

Image43.gif (18930 bytes)

Image41.gif (5604 bytes)

En el siguiente proyecto vas a utilizar la función TIMER
Este ejemplo usa también DoEvents para dar preferencia a otros procesos durante la pausa de cuenta (bucle Do While.. Loop)
Introduce los controles que ves a la izquierda: una etiqueta de texto (Label1) un TextBox, y un botón de acción con el código que ves a continuación:
- se definen tres variables enteras (comienzo, final y total)
- se guarda elnúmero actual del segundero en la variable comienzo
- se crea un bucle que se realiza hasta que la variable total supere el valor establecido en el TextBox.
Image42.gif (8543 bytes) Durante el bucle se va guardando el valor de segundos del Timer en la variable final y se calculan los segundos transcurridos restando a este valor el número de segundos que guardamos, al empezar, en la variable comienzo.
El bucle termina cuando el número de segundos es igual al valor establecido en el TextBox, apareciendo entonces el aviso.

volvera.gif (6294 bytes)