Resumen del lenguaje de programación Visual Basic.NET Contenidos del tema. 1. Datos y Constantes en VBNet....3 Tipos de datos...3 Tipos de Datos definidos por el usuario...5 Declaración de variables... 5 Declaración de constates... 6 Conversiones seguras entre tipos de datos... 6 2. Edicción del código....6 Comentarios...6 Separador de instrucciones...6 Continuación de línea...6 3. Operadores:... 6 Aritméticos... 6 Condicionales... 7 Lógicos... 7 De cadena... 8 Operadores de asignación...8 4. de control...8 if... 8 Sentencia Select...9 Sentencia While...10 Sentecia Do Loop Until...10 Sentecia For...10 5. Colecciones de objetos y Bucles For... Each...11 6. Matrices...12 Unidimensionales... 12 Multimensionales... 12 ReDim... 12 Sentencia For Each...12 LBound y UBound... 13 7. Cadenas de caracteres...13 Compare to... 13 Concat...13 Length...14 ToLower, ToUpper...14 Trim...14 Rtrim...14 Ltrim...14 StartsWith, EndsWith...15 Justo Sáez Arenas _ Dpto Informática _ 1
SubString...15 Chars...15 IntegerAsc(Char)...15 Char Chr(integer)... 15 IndexOf...16 Replace... 16 Insert...16 Split... 16 8. Procedimientos y funciones...17 Procedimientos... 17 Funciones...18 En este tema se presenta un resumen de las principales carácteristicas sintácticas y funciones del lenguaje de programación de Visual Basic.Net. Entre otros contenidos se especifican los tipos de datos y variables que utiliza, los operadores, sentencias de control generales y especificas del lenguaje, así como las principales funciones de tratamiento de cadena. También se comenta al final del capítulo la forma de utilización de procedimientos y funciones. Justo Sáez Arenas _ Dpto Informática _ 2
1. Datos y Constantes en VBNet. Tipos de datos La tabla siguiente muestra los tipos de datos de Visual Basic.NET, los tipos correspondientes de Common Language Runtime (CLR), su asignación de almacenamiento nominal y sus intervalos de valores. Tipo de Visual Basic Estructura de tipo Common Language Runtime Asignación de almacenamient o nominal Intervalo de valores Boolean System.Boolean 2 bytes True o False Byte System.Byte 1 byte 0 a 255 (sin signo) Char System.Char 2 bytes 0 a 65535 (sin signo) Date System.DateTime 8 bytes 0:00:00 del 1 de enero de 0001 a 11:59:59 PM del 31 de diciembre de 9999. Decimal System.Decimal 16 bytes 0 a +/- 79.228.162.514.264.337.593.543.950.335 sin separador decimal; 0 a +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal; el número más pequeño distinto de cero es +/-0,0000000000000000000000000001 (+/- 1E-28). Justo Sáez Arenas _ Dpto Informática _ 3
Double (punto flotante con precisión doble) System.Double 8 bytes -1,79769313486231570E+308 a -4,94065645841246544E-324 para valores negativos; 4,94065645841246544E-324 a 1,79769313486231570E+308 para valores positivos. Integer System.Int32 4 bytes -2.147.483.648 a 2.147.483.647 Long (entero largo) System.Int64 8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 Object System.Object (clase) 4 bytes Cualquier tipo puede almacenarse en una variable de tipo Object. Short System.Int16 2 bytes -32.768 a 32.767 Single (punto flotante con precisión simple) System.Single 4 bytes -3,4028235E+38 a 1,401298E-45 para valores negativos; 1,401298E-45 a 3,4028235E+38 para valores positivos. String (cadena de longitud variable) System.String (clase) En función de la plataforma de implementación De 0 a 2.000 millones de caracteres Unicode aprox. Tipo de datos definido por el usuario (estructur a) (hereda de System.ValueTyp e) En función de la plataforma de implementación Cada miembro de la estructura tiene un intervalo de valores determinado por su tipo de datos e independiente de los intervalos de valores correspondientes a los demás miembros. Justo Sáez Arenas _ Dpto Informática _ 4
Tipos de Datos definidos por el usuario. Se pueden definir estructuras de datos, de tal forma que luego se puede utilizar como un tipo de dato. Por ejemplo: Structure empresa Dim empr As String Dim cont As String Dim tfno As String Dim mail As String Dim nota As String End Structure Pudiendo luego utilizarlo como: Dim cliente As empresa. Declaración de variables Dim a As Integer Declaración simple Dim entero as Integer = 1 Declaración con inicialización Dim entero1, entero2, entero3 as Integer Declaración de varias variables en una sola línea Dim entero as integer = 1, entero2 as integer = 2 Declaración e inicialización Justo Sáez Arenas _ Dpto Informática _ 5
Para declarar variables públicas Public Variable as TipoDato Declaración de constates Const descuento = 16 Declaración de entero Const saludo = hola Declaración de cadena de caracteres Const Tipo = t Declaración de carácter Cosnt prefijo as string = 91 Declaración de constante indicando el tipo Conversiones seguras entre tipos de datos Byte Short Integer Long Decimal Single Double Char String 2. Edicción del código. Comentarios Comienzan con el carácter y continúan hasta el final de la línea Separador de instrucciones En una misma línea podemos tener mas de una instrucción si las separamos con el carácter : Continuación de línea Si una instrucción es muy larga y entra en una sola línea se puede utilizar el carácter _. 3. Operadores: Aritméticos + Suma - Resta * Multiplicación Justo Sáez Arenas _ Dpto Informática _ 6
/ División real. Los operandos pueden ser reales o enteros. \ División entera. Si alguno de los operandos es real es convertido a entero. El resultado es entero ^ Mod Exponenciación a b = a^b Módulo o resto de la división entera. Sólo si los dos operandos son enteros el resultado será entero. Condicionales = Igual <> Distinto < Menor <= Menor o igual > Mayor >= Mayor o igual Lógicos And Or Xor Devuelve verdadero si sólo uno es cierto. Not Justo Sáez Arenas _ Dpto Informática _ 7
De cadena. Para unir cadenas se pueden utilizar dos caracteres + y & aunque suele utilizarse más el último. Operadores de asignación = Simple += Suma -= Resta *= Multiplicación /= División real \= División entero ^= Exponenciación &= Concatenación de cadenas 4. de control if If condición then End if Justo Sáez Arenas _ Dpto Informática _ 8
If condición then Else End if If condición then Elseif condicion End if If condición then If condición then End if Else End if Sentencia Select Select Case variable/expresion Case Valor Justo Sáez Arenas _ Dpto Informática _ 9
Case Valor To Valor2 Rango de valores Case Valor, Valor2, Valor3 Valores concretos [ Case else ] End Select Sentencia While While Condición End While Sentecia Do Loop Until Do Loop Until/While Condición Sentecia For For variable = expresion1 To expresión2 St ep expresion3 con la variable Next [variable] Justo Sáez Arenas _ Dpto Informática _ 10
5. Colecciones de objetos y Bucles For... Each Una colección es un grupo de objetos relacionados entre sí. Por ejemplo cada formulario cuenta con una colección de controles. Podemos declarar variables de tipo Control que representan el objeto activo en cada una de las pasadas del bucle For Each... Next Podrá hacer referencia a los objetos contenidos en una colección, bien de forma individual o bien en grupos. 1. Refrencia individual. Por ejemplo en una instrucción Msgbox(Controls(2).Name) Mostraría el nombre del control cuyo índice es 2, dentro de la colección de controles. 2. Refrencia en grupo. Utilizando un bucle For Each...Next For Each ctrl In Controls ctrl.text = " Púlsame!" Next Los bucles For Each... Next han sido diseñados para procesar colecciones. La propiedad Tag A veces es interesante utilizar la propiedad Tag de los controles, para marcarles con alguna etiqueta que luego puedo chequear dentro del bucle For Each... Next, con la finalidad de poder realizar acciones solo en los controles marcados. También se puede cambiar en tiempo de ejecución. Button1.tag= movible Justo Sáez Arenas _ Dpto Informática _ 11
6. Matrices Unidimensionales Dim matriz (indice_superior) as Tipo Declaración y creación de la matriz a la vez Dim dias_semana() as string = { lunes, martes, miercoles, jueves, viernes, sabado, domingo } Dias_semana(2) = martes Multimensionales Dim tablero(dim1,dim2) as Tipo_Dato p.e: Declaración: Dim tablero(2,3) as Boolean ReDim. Asiganacion de valores: Tablero (0,0) = False Nos permite moficar el tamaño del array. Hay que tener en cuenta que si redimensionamos a un tamaño menor que la cantidad de datos que ya contiene se perderán los dartos que queden fuera de ese tamaño. Sentencia For Each Es especialmente útil con las matrices pues permite tratar todos los elementos de la matriz. For each i in matriz Next Dim num(2, 2) As Integer Justo Sáez Arenas _ Dpto Informática _ 12
Dim enterocorto As Integer For Each enterocorto In num Label1.text= num(enterocorto, enterocorto) Next También es útil para realizar operaciones con todos los elementos que aparecen en un formulario, como por ejemplo moverles por pantalla. LBound y UBound Nos permiten conocer el límite inferior (Lbound) y superior( UBound) de una matriz. 7. Cadenas de caracteres La clase String, que pertenece al espacio de nombre System, proporciona métodos para examinar caracteres individuales de una cadena de caracteres, comparar cadenas, buscar y extraer subcadenas, copiar cadenas, convertir cadenas a mayúsculas, minúsculas, etc. Pero Cuidado: Los objetos String son no modificables. Por tanto las operaciones no se aplican directamente sobre la cadena, sino que producen una cadena nueva. Compare to Devuelve 0 si es igual y 1 si es distinto Cadena = valor cadena.compareto("texto de Prueba") Devolvería 1 Concat Concatena dos cadenas Cadena1= Hola : Cadena2 = Qué tal? CadenaConcatenada = String.Concat(Cadena1, cadena2) ó CadenaConcatenada = Cadena1 & cadena2 Justo Sáez Arenas _ Dpto Informática _ 13
ó CadenaConcatenada = Cadena1 + cadena2 Length Devuelve la longitud de la cadena. Dim longitud as integer Cadena= Ernesto Mate Longitud= cadena.length Longitud contendrá 12 ToLower, ToUpper Convierten a minúsculas y mayúsculas respectivamente una cadena. Cadena1= Hola Cadena2= QUE TAL Cad_Final1 = Cadena1.ToUpper Cad_Final2 = Cadena2.ToLower Cad_Final1 tendrá HOLA Cad_Final2 tendrá que tal Trim Elimina los caracteres en blanco que haya al principio y al final de la cadena. Cadena= Hola Cad_Final = Cadena.Trim Cad_Final = Hola Rtrim Elimina los caracteres en blanco que haya al final de la cadena. Ltrim Elimina los caracteres en blanco que haya al principio de la cadena. Justo Sáez Arenas _ Dpto Informática _ 14
StartsWith, EndsWith Devuelve el valor True si el prefijo o el sufijo coinciden con el argumento indicado. Dim Ok As boolean Ok = Cadena.StartsWith("Ba") Ok = cadena.endswith(".") SubString Devuelve una subcadena desde posición y de una longitud. Desde la posición 0 y de longitud 5" Console.WriteLine(cadena.Substring(3, 15)) Chars Devuelve el carácter indicado en una determinada posición de la cadena. cadena.chars(0) Devuelve la primera posición de una cadena IntegerAsc(Char) Nos devuleve el código ASCII de un carácter dado. Dim Codigo as Integer Codigo = Asc( a ) Char Chr(integer) Nos devuleve el carácter ASCII de un entero dado. Dim letra as Char letra = Chr(65) Justo Sáez Arenas _ Dpto Informática _ 15
IndexOf Devuelve el índice de la primera ocurrencia. Cadena= Bill Gates Pos = cadena.indexof("gates") Pos será 5. Replace Reemplaza todas las ocurrencias por lo que le indiquemos. Cad_final = cadena.replace("e", "E") Insert Inserta una cadena en una posición indicada Cadena= 2014 Cad_Final = cadena.insert(2, "000000") Inserta una secuencia de ceros en la posición 2. Cad_Final será 2010000004 Split Devuelve una matriz con los elementos de la cadena Matriz= cadena.split( ) llena la matriz con las palabras de la cadena, que están separadas por un espacio. Justo Sáez Arenas _ Dpto Informática _ 16
8. Procedimientos y funciones. Procedimientos Se usan para simplificar el código y hacerlo más modular. Su principal función es la de agrupar una serie de instrucciones que realizan una operación concreta y que suele repetirse a lo largo del código. No se utilizan en el caso de que la función a realizar sea obtener y devolver un valor. Declaración de procedimientos [Public Private] Sub Nombre() End Sub [Public Private] Sub Nombre(ByVal var1 as integer, optional ByRef var2 as String) End Sub Tipos de parámetros - ByVal: Por valor, es decir, una copia de la variable. - ByRef: Por referencia, es decir un puntero a la variable con la que se quiere trabajar. - Optional: Opcional, el usuario puede utilizar este parámetro o no. La sintaxis en los procedimientos en los que los parámetros son opcionales es: [Public Private] Sub Nombre(Optional [ByVal ByRef] Nombre As tipo = Valor_def) End Sub Call Nombre_Procedimiento Llamada a los procedimientos Funciones Las funciones son módulos de código cuya función es realizar un cálculo y a partir de los datos de entrada obtener un resultado final. Se utilizan siempre que queramos obtener un valor. Justo Sáez Arenas _ Dpto Informática _ 17
Declaración de funciones [Public Private] Function Nombre() As tipo Sentencia de devolución Return valor o nombre_función= valor End Function Tipos de parámetros Los mismos que en los procedimientos y los mismos modificadores. Llamada a las funciones En las llamadas a las funciones hay que tener en cuenta que éstas devuelven un valor. Por ejemplo: Variable= Nombre_Funcion(Parámetros) Por ejemplo: Dim Resultado as Integer Resultado = Factorial(5) 'Factorial es una función que estará definida en algún lugar del programa. Justo Sáez Arenas _ Dpto Informática _ 18