PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC) REPASO (CLASES Y OBJETOS): Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un objeto puede ser una porción de una aplicación, como un control o un formulario. Una aplicación entera también puede ser un objeto. Cuando se crea una aplicación en Visual Basic, se trabaja constantemente con objetos. Se pueden usar los objetos proporcionados por Visual Basic, como controles, formularios y objetos de acceso a datos. También se pueden usar los objetos de otras aplicaciones en la aplicación de Visual Basic. Incluso pueden crearse objetos propios y agregarles propiedades y métodos adicionales. Los objetos actúan como bloques de creación prefabricados para programas: permiten escribir una porción de código y utilizarla una y otra vez. Cada objeto de Visual Basic está definido por una clase. Una clase describe las variables, propiedades, procedimientos y eventos de un objeto. Los objetos son instancias de clases; pueden crearse tantos objetos como sean necesarios una vez que se defina una clase. Para comprender la relación entre un objeto y su clase, piense en los moldes de hacer galletas y en las galletas. El molde es la clase. Define las características de cada galleta, por ejemplo, el tamaño y la forma. La clase se utiliza para crear objetos. Los objetos son las galletas. Debe crear un objeto antes de poder tener acceso a sus miembros. Una clase es simplemente una representación de un tipo de objeto; piense en ella como un plano que describe el objeto. Así como un plano puede utilizarse para construir varios edificios, una clase puede utilizarse para crear varias copias de un objeto. Aunque puede que no se haya dado cuenta, ya ha utilizado las clases. Por ejemplo, el control TextBox lo define una clase TextBox, que define su aspecto y sus funciones. Cada vez que arrastra un control TextBox a un formulario, realmente está creando una nueva instancia de la clase TextBox. Cada control TextBox es una copia exacta, aunque distinta, de la clase que lo define, la clase TextBox. Puesto que cada objeto es una "instancia" independiente de una clase, la acción de crear una clase se denomina creación de instancias. CLASE MATH: Proporciona constantes y métodos estáticos para operaciones trigonométricas, logarítmicas y otras funciones matemáticas comunes. FUNCIONES TRIGONOMÉTRICAS: FUNCIÓN DESCRIPCIÓN Devuelve el ángulo cuyo coseno es el número especificado. Acos Asin Atan Devuelve el ángulo cuyo seno es el número especificado. Devuelve un valor Double que contiene el ángulo cuya tangente es el número especificado. Devuelve el ángulo cuya tangente es el cociente de dos números especificados. Atan2 Cos Cosh Sin Sinh Tan Tanh Devuelve un valor Double que contiene el coseno del ángulo especificado. Devuelve el coseno hiperbólico del ángulo especificado. Devuelve un valor Double que especifica el seno de un ángulo. Devuelve el seno hiperbólico del ángulo especificado. Devuelve un valor Double que contiene la tangente de un ángulo. Devuelve la tangente hiperbólica del ángulo especificado. ALGUNAS OTRAS FUNCIONES MATEMÁTICAS: FUNCIÓN Abs Exp Log Sign Sqrt Max(Byte, Byte) Max(Decimal, Decimal) Max(Double, Double) Min(Byte, Byte) Min(Decimal, Decimal) Min(Double, Double) Round(Decimal) Round(Double) DESCRIPCIÓN Devuelve el valor absoluto de un número especificado. Devuelve un valor Double que contiene e (base de los logaritmos naturales) elevado a la potencia especificada. Devuelve un valor Double que contiene el logaritmo del número especificado. Este método está sobrecargado y puede devolver o bien el logaritmo natural (de base e) del número especificado o bien el logaritmo del número especificado en una base especificada. Devuelve un valor Integer que indica el signo de un número. Devuelve un valor Double que especifica la raíz cuadrada de un número. Devuelve el mayor de dos enteros de 8 bits sin signo. Devuelve el mayor de dos números decimales. Devuelve el mayor de dos números de punto flotante de precisión doble. Devuelve el menor de dos enteros de 8 bits sin signo. Devuelve el menor de dos números decimales. Devuelve el menor de dos números de punto flotante de precisión doble. Redondea un valor decimal al valor integral más próximo. Redondea un valor de punto flotante de precisión doble al valor integral más cercano. Round(Decimal, Int32) Round(Double, Int32) Redondea un valor decimal al número especificado de dígitos fraccionarios. Redondea un valor de punto flotante de precisión doble al número especificado de dígitos fraccionarios. FUNCIONES DE CADENA: Las funciones de cadena, como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres. A continuación, las más importantes de ellas: Función LCASE y UCASE: Estas dos funciones se utilizan para convertir cadenas de texto a minúscula y mayúscula. La función Lcase cambia o convierte una cadena de texto a minúscula y un ejemplo de como utilizarla sería así: Lcase (cadena que queremos convertir a minúsculas) Ejemplo: Dim cadena As String cadena = "HOLA MUNDO" 'Convertimos cadena = LCase(cadena) 'La variable cadena ahora vale "hola mundo" La función Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a mayúsculas. Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente línea: Label1 = UCase(Label1) El control Label1 pasaría a mostrar o mejor dicho contener en su propiedad caption: "PORCENTAJE DE SUELDOS". Función Trim, LTrim y RTrim: Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena. LTrim elimina los espacios vacíos de la parte izquierda de la cadena, RTrim de la parte derecha y Trim de ambas partes. Ejemplos: Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacíos de la izquierda haríamos lo siguiente: ciudad = LTrim(ciudad) Si en un TextBox quisiéramos borrar todos los espacios vacíos de la parte derecha de la cadena: MiText = RTrim(MiText) La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena. Ejemplo: Pais = " Argentina País = Trim(Pais) " Ahora el valor de País es igual a: "Argentina". Función Len: La función Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta función nos devuelve un número. Ejemplo: Len (Aquí va la cadena que queremos averiguar su tamaño) Como la función Len devuelve un número debemos asignar ese número devuelto en una variable de tipo numérica. Ejemplo: Dim TamanoCadena As Long Dim MiCadena As String MiCadena = "Me Llamo Eustaquio" TamanoCadena = Len(MiCadena) El valor de la variable TamanoCadena pasaría a valer 18. Hay que tener en cuenta que la función Len también toma en cuenta los espacios vacíos. Función Asc y Chr: La función Asc nos permite obtener el código ASCII de un de terminado caracter. Ejemplos: Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos hacer lo siguiente: Dim num As Integer num = Asc("a") En definitiva la función Asc lleva un solo parámetro de tipo String del cual queremos obtener dicho número. La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir de un determinado número nos devolverá el caracter ASCII. Obviamente que en vez de pasarle a la función un parámetro String es decir la letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado. Ejemplo: Dim letra As String letra = Chr(97) La variable pasa a valer en este caso el caracter "a" Función InsTr: La función InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena. Si la función encuentra la cadena a buscar devuelve un número que representa la posición donde encontró la cadena, si no la encuentra devuelve un 0. Los parámetros que lleva esta función son: InStr (comienzo, Cadena donde buscar , La Cadena a buscar) Como esta función devuelve un número debemos almacenarla en una variable de tipo numérica para utilizarla. Ejemplo: Dim posicion As Integer posicion = InStr("Estoy tomando mate", "mate") En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que la variable posición pasa a valer 15. Si observamos bien, la función en el primer parámetro, denominado comienzo, nos pide que le digamos desde que posición comenzar a buscar. En nuestro ejemplo, este parámetro lo obviamos, esto quiere decir que comenzará desde la posición 0 de la cadena a buscar. Pero podríamos especificar una posición en particular, por ejemplo desde la 5 , 10 etc..., según lo que necesitemos hacer. Otro ejemplo de InStr : Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a partir de donde esté ubicda la selección. Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresará la frase y otro TextBox llamado Text1 que tendrá el texto. Este ultimo con la propiedad Multiline en True. También colocar dos CommandButton: Command1 y Command2 Colocar el siguiente código fuente en el formulario: Option Explicit Private m_Pos As Integer Sub buscar_cadena(ByVal Posicion As Integer) Dim p As Integer, Frase As String Frase = txt_Buscar p = InStr(Posicion, Text1, Frase) If p > 0 Then m_Pos = p With Text1 .SelStart = m_Pos - 1 .SelLength = Len(Frase) .SetFocus End With Else MsgBox "No se encontró la frase", vbInformation Text1.SetFocus End If End Sub Private Sub Command1_Click() 'Busca a pratir de la primera pocición Call buscar_cadena(1) End Sub Private Sub Command2_Click() 'Busca a partir del valor que tenga m_Pos Call buscar_cadena(m_Pos + 1) End Sub Private Sub Form_Load() Command1.Caption = "Buscar" Command2.Caption = "Buscar siguiente" Me.Caption = "Ejemplo de InStr " End Sub Función Str y Val: La función Val convierte una cadena en un número y la función Str un número en una cadena. Ejemplos: cadena = "123456" cadena = Val(cadena) 'Ahora cadena vale 123456 cadena2 = 123456 cadena2 = Str(cadena2) 'Ahora cadena2 vale "123456"