Métodos y Propiedades de Visual Basic
¿Que es una propiedad?
Las propiedades son como variables que le indican al control o formulario y por extensión a todos los objetos, qué mostrar, cómo mostrarse o hacer cualquier otra cosa.
Veamos más ejemplos, así conocerás algunas propiedades "comunes" a la mayoría de controles:
Width | Indica el ancho del control. Cambiando el valor de esta propiedad, cambiamos el ancho del control... como es de suponer... |
Height | El alto del control, si queremos cambiarlo... |
Top | La posición superior del control. Normalmente hace referencia al control que lo contiene. Un form normal, hará referencia a la posición en la pantalla. |
Left | La posición izquierda del control. Mismo comentario que para Top |
Visible | Si se muestra o no |
Enabled | Si está disponible o no. |
Name | El nombre del control u objeto. |
Tag | Para usos "personalizados", es como una especie de variable que tiene cada control, en el que podemos guardar lo que queramos y no afectará al aspecto y/o funcionamiento del control. |
Caption | Esta no está presente en todos los controles, pero es típico para los botones command y las etiquetas. Sirve para contener el texto a mostrar. |
Text | Esta tampoco es común a todos los controles, pero también sirve para mostrar texto, aunque normalmente los controles que la tienen suelen permitir que ese texto se modifique, el caso típico son los TextBox. |
Los Métodos
Los métodos no son otra cosa que procedimientos (SUB o FUNCTION).
Un método siempre hace algo, a diferencia de las propiedades que, aunque también pueden hacer algo, su papel suele ser parecido a una variable; por ejemplo, si queremos ocultar un formulario, llamamos al método Hide, que queremos mover el formulario, pues usamos Move con los parámetros correspondientes y asunto arreglado.
Es decir, son procedimientos normales y corrientes, pero su comportamiento está relacionado con el objeto, control o formulario, al que pertenece.
Muchas veces a las funciones se las considera propiedades en lugar de métodos, a esta "opinión" no debes darle más importancia de la que tiene y centrarte en lo que realmente te interesa: aprender a usarlas e incluso a crearlas.
Ciclos Repetitivos En Visual Basic
Bucle infinito en programación es aquel ciclo que se repite de forma indefinida ya que su condición para finalizar nunca se cumple.
Por definición un bucle debe contener condiciones que establezcan cuándo empieza y cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia de código de manera repetitiva. En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue ejecutando el segmento de código indefinidamente.
Bucle infinito en Visual Basic (While)
Public function suma2(a, b) As Double
suma2 = a + b
While (suma2 >= 10)
suma2 = suma2 + 1
Wend
Siempre que la suma de a y b sea superior o igual a 10
ejemplo de algoritmo (Suma de dos números)
Algoritmo para calcular la suma de dos números enteros
1: Inicio
2: declarar variables(x, y, z)
3: darle valor a las variables(x= 2, y=3)
4: sumar variables(x+y=z, z= 2+3)
5: Imprimir resultado(z=5)
6: Fin
Este algoritmo está mas orientado hacia la Programación.
Algoritmo para calcular el máximo común divisor
Para ello, lo primero que había que hacer era descomponer cada número en factores primos. Por ejemplo, para calcular el mcd (máximo común divisor) de 756 y 1617:
756 = 7 * 3^3 * 2^2
1617 = 11 * 7^2 * 3
A continuación tomamos los factores comunes elevemos al menos exponente y ese es el mcd; en nuestro ejemplo:
mcd(756,1617) = 7 * 3 = 21
Hacer esto es relativamente sencillo, ahora bien, programarlo ya es otra cosa bien distinta. Lo más complicado sería implementar una función que descomponga un número en sus factores primos.
Se podría hacer, si bien existe un método bastante más sencillo: utilizando el algoritmo de Euclides. ¿En qué consiste? De forma resumida, el pseudocódigo para la función que calcula el mcd quedaría:
function mcd(a, b) {
if (a > b) {
return mcd(a-b, b);
} else if (b > a) {
return mcd(a, b-a);
} else { // a == b
return a;
}
}
Aplicándolo a nuestro ejemplo:
mcd(756,1617) = mcd(756,861) = mcd(756,105) = mcd(651,105) = mcd(546,105) = mcd(441,105) = mcd(336,105) = mcd(231,105) = mcd(126,105) = mcd(21,105) = mcd(21,84) = mcd(21,63) = mcd(21,42) = mcd(21,21) = 21
Por supuesto, este algoritmo es susceptible de ciertas mejoras. Por ejemplo, multiplicar y dividir por 2 es algo sencillo utilizando las operaciones de bits: al desplazar un bit a la izquierda estamos multiplicando por 2 y al desplazarlo a la derecha estamos dividiendo por 2. De esta forma, podríamos ahorrarnos algunos pasos en el ejemplo anterior:
function mcd_mejorado(x, y) {
var mayor = max(x,y);
var menor = min(x,y);
if (mayor > (menor << 1)) {
return mcd_mejorado(mayor - (menor << 1), menor);
} else {
return mcd(mayor,menor); //llamada a la funcion anterior
}
}
Volviendo a nuestro ejemplo:
mcd_mejorado(1617,756) = mcd_mejorado(756,105) = mcd_mejorado(546,105) = mcd_mejorado(336,105) = mcd_mejorado(126,105) = mcd(21,105) = mcd(21,84) = mcd(21,63) = mcd(21,42) = mcd(21,21) = 21
Algoritmo para calcular números primos
La lista tendrá este formato: