Tema 4. Fundamentos de programación de VB.NET

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos Tema 4. Fundamentos de programación

12 downloads 102 Views 249KB Size

Recommend Stories


TEMA 2: PROCESOS DE CONDICIONAMIENTO: FUNDAMENTOS
TEMA 2: PROCESOS DE CONDICIONAMIENTO: FUNDAMENTOS 2.1.- Condicionamiento instrumental (CI) El condicionamiento instrumental (CI) constituye uno de los

TEMA 4: Análisis de sistemas
Dinámica de Sistemas TEMA 4: Análisis de sistemas 4.1.- Introducción. 4.2.- Efecto de los polos en el comportamiento. 4.3.- Estabilidad 4.4.- Señales

TEMA 4: SISTEMAS DE REFERENCIA
Biomecánica del Movimiento (2º) Facultad de Ciencias del Deporte. Universidad de Castilla la Mancha. 51 TEMA 4: SISTEMAS DE REFERENCIA 1- Relativida

Álgebra de BOOLE. Tema 4
Álgebra de BOOLE Tema 4 1. 2. 3. 4. 5. 6. 7. 8. 9. Definición formal del álgebra de Boole. Leyes y reglas del álgebra de Boole. Operaciones y expres

Story Transcript

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Tema 4. Fundamentos de programación de VB .NET Estructura de un programa en VB .NET Como muestra el diagrama, una aplicación está formada por uno o más ficheros de código, que a su vez contienen módulos de código o clases, dentro de los que se escriben procedimientos que son los elementos que contienen el código base. Cuando creamos una aplicación usando VS.NET, es el propio IDE quién se encarga de crear por nosotros la estructura básica del programa: crea un fichero de código conteniendo un módulo que tiene el procedimiento de entrada, sólo falta el código del programador.

Procedimiento de entrada de un programa - Main () Todo programa necesita una rutina o procedimiento de entrada, que sea el primero que se ejecute. En VB.NET ese procedimiento recibe el nombre especial Main( ), y debe estar contenido dentro de un módulo de código.

En el caso de una aplicación de consola creada desde VS.NET, se crea un módulo de forma automática que contiene un procedimiento Main( ) vacío. Dentro de este procedimiento escribiremos el código.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Tipos de Datos Los tipos de datos que podemos usar en Visual Basic 2005 son los mismos tipos de datos definidos en .NET Framework y por tanto están soportados por todos los lenguajes que usan esta tecnología (C#, J#, C++,…). Estos tipos comunes se conocen como el Common Type System, (CTS), que traducido viene a significar el sistema de tipos comunes de .NET. El hecho de que los tipos de datos usados en todos los lenguajes .NET estén definidos por el propio Framework nos asegura que independientemente del lenguaje que estemos usando, siempre utilizaremos el mismo tipo interno de .NET, si bien cada lenguaje puede usar un nombre (o alias) para referirse a ellos. Esto es una gran ventaja, ya que nos permite usarlos sin ningún tipo de problemas para acceder a ensamblados creados con otros lenguajes, siempre que esos lenguajes sean compatibles con los tipos de datos de .NET. Tipos primitivos En la siguiente tabla se muestra la equivalencia de los tipos de datos definidos en .NET Framework y los usados en Visual Studio 2005.

Las últimas filas de la tabla son tipos especiales que si bien son parte del sistema de tipos comunes (CTS) no forman parte de la Common Language Specification (CLS), es decir la especificación común para los lenguajes “compatibles” con .NET, por tanto, si queremos crear aplicaciones que puedan interoperar con todos los lenguajes de .NET, esos tipos no debemos usarlos como valores de devolución de funciones ni como tipo de datos usado en los argumentos de las funciones, propiedades o procedimientos.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Variables y Constantes Siempre que tengamos que indicar un valor constante, deberíamos usar una constante en lugar de un valor literal, de esta forma si ese valor lo usamos en varias partes de nuestro código, si en un futuro decidimos que dicho valor debe ser diferente, nos resultará más fácil realizar un solo cambio que cambiarlo en todos los sitios en los que lo hemos usado, además de que de esta forma nos aseguramos de que el cambio se realiza adecuadamente y no tendremos que preocuparnos de las consecuencias derivadas de no haber hecho el cambio en todos los sitios que deberíamos. Para declarar una constante lo haremos de la siguiente forma:

Para declarar una variable usamos la instrucción Dim seguida del nombre de la variable y del tipo de datos que esta contendrá. Por ejemplo: •

Declarar una variable de tipo entero



Declarar tres variables de tipo entero en la misma línea



Declarar una variable y asignarle un valor inicial

Nota: En Visual Basic 2005 el valor de una cadena no inicializado NO es una cadena vacía sino un valor nulo (Nothing)

En Visual Basic 2005 podemos declarar valores de tipo Char (carácter Unicode). El problema que podemos encontrarnos es a la hora de indicar un carácter literal. Podemos convertir un valor número en su correspondiente carácter o viceversa.

Según el tipo de dato de la variable, puede ser necesario el uso de delimitadores para encerrar el valor que vamos a asignar.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

☺ Tipos numéricos. Las variables de tipos de datos numéricos no necesitan delimitadores, se asigna directamente el número correspondiente. Si necesitamos especificar decimales, utilizaremos el punto ( . ) como carácter separador para los decimales. ☺ Cadenas de caracteres. En este caso es preciso encerrar la cadena entre comillas dobles ("). ☺ Fechas. Al asignar una fecha a una variable de este tipo, podemos encerrar dicho valor entre el signo de almohadilla ( # ) o comillas dobles ( " ). El formato de fecha a utilizar depende del delimitador. Cuando usemos almohadilla la fecha tendrá el formato Mes/Día/Año; mientras que cuando usemos comillas dobles el formato será Día/Mes/Año. Las fechas pueden contener además información horario que especificaremos en el formato Hora:Minutos:Segundos FranjaHoraria. En el caso de que no indiquemos la franja horaria (AM/PM) y si estamos utilizando el signo almohadilla como separador, el entorno insertará automáticamente los caracteres de franja horaria correspondientes. ☺ Tipos lógicos. Las variables de este tipo sólo pueden tener el valor True (Verdadero) o False (Falso). Además de asignar valores como acabamos de explicar, podemos asignar el contenido de una variable a otra o el resultado de una expresión.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Obligar a declarar las variables con el tipo de datos Visual Basic 2005 nos permite, (lamentablemente de forma predeterminada), utilizar las variables y constantes sin necesidad de indicar el tipo de datos de estas, pero podemos obligar a que nos avise cuando no lo estamos haciendo, ya que es una buena costumbre indicar siempre el tipo de datos que tendrán nuestras variables y constantes. Esa obligatoriedad la podemos aplicar a todo el proyecto o a un módulo en particular, para ello tenemos que usar la instrucción Option Strict On, una vez indicado, se aplicará a todo el código, no solo a las declaraciones de variables, constantes o al tipo de datos devuelto por las funciones y propiedades, sino también a las conversiones y asignaciones entre diferentes tipos de datos. No debemos confundir Option Strict con Option Explicit, este siempre tengamos que declarar todas las variables, mientras hace es obligarnos a que esas declaraciones tengan un tipo de la otra tienen dos estados: conectado o desconectado agreguemos On u Off respectivamente.

último, sirve para que que el primero lo que datos. Tanto una como dependiendo de que

Para configurarlo en general (para cualquier proyecto) iríamos a Herramientas Î Opciones Î Proyectos y Soluciones Î Valores predeterminados de Visual Basic.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Para configurarlos a nivel de proyecto, seleccionaríamos el proyecto Î botón derecho Î propiedades Î Compilar. Desde esta pantalla también podemos indicar que nos avise cuando tenemos declarada una variable que no hemos usado.

En el ejemplo siguiente se muestra como el compilador nos marca un error por no haber declarado una variable. Además podemos ver como aplicar restricciones a un módulo en concreto.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Práctica de Formatos de Fecha 1. Realizar una nueva aplicación de tipo consola “FormatoFecha”. a. Debe pedir el día, el mes y el año y mostrar la fecha con el formato mes/día/año. b. Se debe quedar a la espera de una pulsación de teclado mientras el usuario comprueba los datos que se muestran. c. A continuación deberá pedir el día, mes, año, hora, minutos y segundo y mostrarlo en el formato día/mes/año hora:minutos:segundos. d. El proyecto debe tener activado el Strict on e indicarnos los errores de declaración si existieran.

Enumeraciones Una enumeración es una serie de constantes que están relacionadas entre sí. La utilidad de las enumeraciones es más manifiesta cuando queremos manejar una serie de valores constantes con nombre, es decir, podemos indicar un valor, pero en lugar de usar un literal numérico, usamos un nombre, ese nombre es, al fin y al cabo, una constante que tiene un valor numérico. En Visual Basic 2005 las enumeraciones pueden ser de cualquier tipo numérico integral, incluso enteros sin signo, aunque el valor predefinido es el tipo Integer. Podemos declarar una enumeración de varias formas: 1- Sin indicar el tipo de datos, por tanto serán de tipo Integer: Enum Colores Rojo Verde Azul End Enum

2- Indicando el tipo de datos que realmente tendrá: Enum Colores As Long Rojo Verde Azul End Enum

3- Indicando el atributo FlagsAttibute, (realmente no hace falta indicar el sufijo Attribute cuando usamos los atributos) de esta forma podremos usar los valores de la enumeración para indicar valores que se pueden "sumar" o complementar entre sí, pero sin perder el nombre. _ Enum Colores As Byte Rojo = 1 Verde = 2 Azul = 4 End Enum

El nombre de los miembros de las enumeraciones Tanto si indicamos o no el atributo Flags a una enumeración, la podemos usar de la siguiente forma, con lo que podemos sumar los valores definidos en la enumeración: Dim c As Colores = Colores.Azul Or Colores.Rojo

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Las enumeraciones son constantes con nombres, pero en Visual Basic 2005 esta definición llega más lejos, de hecho, podemos saber "el nombre" de un valor de una enumeración, para ello tendremos que usar el método ToString, (el cual se usa para convertir en una cadena cualquier valor numérico). Por ejemplo: Dim s As String = Colores.Azul.ToString ‘ La variable s contendrá la palabra "Azul" no el valor 4.

¿Qué ocurre cuando sumamos valores de enumeraciones que tienen el atributo Flags? Enum Colores As Byte Rojo = 1 Verde = 2 Azul = 4 End Enum Dim c As Colores = Colores.Azul Or Colores.Rojo Dim s As String = c.ToString

El contenido de la variable s será "5", es decir, la representación numérica del valor contenido: 4 + 1, ya que el valor de la constante Azul es 4 y el de la constante Rojo es 1. ¿Y a las que no se lo hemos aplicado? _ Enum Colores As Byte Rojo = 1 Verde = 2 Azul = 4 End Enum Dim c As Colores = Colores.Azul Or Colores.Rojo Dim s As String = c.ToString

El contenido de la variable s será: "Rojo, Azul", es decir, se asignan los nombres de los miembros de la enumeración que intervienen en ese valor, no el valor "interno". Los valores de una enumeración no son simples números Como hemos comentado, los miembros de las enumeraciones realmente son valores de un tipo de datos entero (en cualquiera de sus variedades). Por tanto, podemos pensar que podemos usar cualquier valor para asignar a una variable declarada como una enumeración, al menos si ese valor está dentro del rango adecuado. En Visual Basic 2005 esto no es posible, al menos si lo hacemos de forma "directa" y con Option Strict conectado, ya que recibiremos un error indicándonos que no podemos convertir, por ejemplo, un valor entero en un valor del tipo de la enumeración. En el siguiente código se puede ver el error que nos daría el IDE al intentar asignar el valor 3 a una variable del tipo Colores (definida con el tipo predeterminado Integer) y que solución nos propone.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

CType es una de las formas que nos ofrece Visual Basic 2005 de hacer conversiones entre diferentes tipos de datos, en este caso convertimos un valor entero en uno del tipo Colores. Si compilamos y ejecutamos la aplicación, ésta funcionará correctamente. Aunque sabemos que es posible que usando CType no asignemos un valor dentro del rango permitido. En este caso, el valor 3 podríamos darlo por bueno, ya que es la suma de 1 y 2 (Rojo y Verde), pero ¿que pasaría si el valor asignado es, por ejemplo, 15? En teoría no deberíamos permitirlo. Estas validaciones podemos hacerlas de dos formas: 1- Con la clásica solución de comprobar el valor indicado con todos los valores posibles. 2- Usando funciones específicas del tipo Enum. Aunque en este último caso, solo podremos comprobar los valores definidos en la enumeración. En el siguiente ejemplo podemos hacer esa comprobación. Sub mostrarColor(ByVal c As Colores) ' comprobar si el valor indicado es correcto ' si no está¡ definido, usar el valor Azul If [Enum].IsDefined(GetType(Colores), c) = False Then c = Colores.Azul End If Console.WriteLine("El color es {0}", c) End Sub

Este código lo que hace es comprobar si el tipo de datos Colores tiene definido el valor contenido en la variable c, en caso de que no sea así, usamos un valor predeterminado.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Arrays

Al declarar un array, todos sus valores son del mismo tipo de dato. Si necesitamos que dichos valores sean de tipos diferentes, debemos declarar el array como tipo Object, ya que al ser este, el tipo de dato genérico en el entorno de .NET, nos permitirá asignar valores de distintos tipos al array.

Asignar y obtener valores de un array Para asignar y obtener valores de los elementos de un array, actuaremos igual que para una variable normal, pero empleando además el índice para indicar qué posición queremos manipular.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Modificar el tamaño de un array Para modificar el tamaño o número de elementos de un array, emplearemos la instrucción ReDim, seguida del array a modificar y el nuevo tamaño.

ReDim no toma el array existente y modifica su número de elementos, sino que internamente crea un nuevo array con el número de elementos indicado, por lo que se pierden los valores del array previo. Para solucionar este inconveniente, debemos utilizar junto a ReDim, la palabra clave Preserve. Con ello, los valores existentes en el array a modificar son conservados.

Array bidimensional

En este código tendríamos un array bidimensional con los siguientes valores: nombres(0,0)= Juan nombres(0,1)= Pepe nombres(1,0)= Ana nombres(1,1)= Eva

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Como podemos ver en la declaración anterior, si definimos arrays con más de una dimensión, debemos indicarlas usando una coma para separar cada dimensión, o lo que es más fácil de recordar: usando una coma menos del número de dimensiones que tendrá el array. En los valores a asignar, usaremos las llaves encerradas en otras llaves, según el número de dimensiones.

Nota: Para continuar líneas de código usamos el guión bajo (_)

Eliminar el contenido de un array Una vez que hemos declarado un array y le hemos asignado valores, es posible que nos interese eliminar esos valores de la memoria, para lograrlo, podemos hacerlo de tres formas: 1. Redimensionando el array indicando que tiene cero elementos, aunque en el mejor de los casos, si no estamos trabajando con arrays de más de una dimensión, tendríamos un array de un elemento, ya que en los arrays de .NET el índice inferior es cero. 2. Usar la instrucción Erase. La instrucción Erase elimina totalmente el array de la memoria. 3. Asignar un valor Nothing al array. Esto funciona en Visual Basic 2005 porque los arrays realmente son tipos por referencia. Los arrays son tipos por referencia Los tipos por referencia realmente lo que contienen son una referencia a los datos reales no los datos propiamente dichos. Veamos el siguiente ejemplo: Dim nombres() As String = {"Juan", "Pepe", "Ana", "Eva"} Dim otros() As String otros = nombres nombres(0) = "Antonio"

En este ejemplo definimos el array nombres y le asignamos cuatro valores. A continuación definimos otro array llamado otros y le asignamos lo que tiene nombres. Por último asignamos un nuevo valor al elemento cero del array nombres. Si mostramos el contenido de ambos arrays nos daremos cuenta de que realmente

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

solo existe una copia de los datos en la memoria, y tanto nombres(0) como otros(0) contienen el nombre "Antonio". ¿Qué ha ocurrido? Que debido a que los arrays son tipos por referencia, solamente existe una copia de los datos y tanto la variable nombres como la variable otros lo que contienen es una referencia (o puntero) a los datos. ¿Cómo solucionarlo?

Si realmente queremos tener copias independientes, debemos hacer una copia del array nombres en el array otros, esto es fácil de hacer si usamos el método CopyTo. Éste método existe en todos los arrays y nos permite copiar un array en otro empezando por el índice que indiquemos. El único requisito es que el array de destino debe estar inicializado y tener espacio suficiente para contener los elementos que queremos copiar. Dim nombres() As String = {"Juan", "Pepe", "Ana", "Eva"} Dim otros() As String ReDim otros(nombres.Length) nombres.CopyTo(otros, 0) nombres(0) = "Antonio"

Recorrer un array Para recorrer todos los elementos de un array emplearemos la estructura de control For...Next, que ejecuta un bloque de código un número determinado de veces, y la función del lenguaje Ubound( ), que devuelve el número de elementos del array pasado como parámetro.

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Práctica de EnumeracionesArrays 2. Crear una nueva aplicación de tipo consola “EnumMusicas” a. Crear una enumeración a la que pertenecen los siguientes elementos: Rock, Blues, NewAge y Funky. b. Para obtener los valores de las constantes de la enumeración se usa GetValues() y los nombres con GetNames(). Se trata de métodos de la clase Enum y reciben como parámetro una variable de enumeración de la que debe obtenerse el tipo ejecutando su método GetType(). Ambos devuelven un array con los datos pedidos. Por ejemplo: listaValores = System.Enum.GetValues(mivariable.GetType()) c. Se requiere que se muestre por pantalla el siguiente mensaje “Valor – Nombre” y a continuación se deben mostrar los valores y nombres de cada uno de los elementos de la enumeración previamente declarada. Para ello deberemos recorrer los arrays que contienen los valores y los nombres. d. A continuación pedir por pantalla un nombre y comprobar si está dentro de la enumeración. Para ello has de usar el método IsDefined. Busca en la ayuda como poder usarlo. Si está definido dentro de nuestra enumeración se mostrará el siguiente mensaje “Elemento dentro de mi lista” en caso contrario, el mensaje sería “Este elemento no lo conozco”. e. Para hacer la comparación hay que usar un condicional del estilo: If condición Then instrucciones Else intrucciones End if

Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos

Operadores Operaciones matemáticas Op. Abreviados de asignación Suma + += Resta -= Multiplicación * *= División real / /= División de entero \ \= Módulo mod No existe Potenciación ^ ^= Asignación = Resto mod Concatenación &: Concatena cadenas. También puede usarse el símbolo + pero no es recomendado ya que nos puede llevar a confusiones. El operador abreviado de asignación sería: &= Comparación

Podemos utilizar los operadores de comparación antes descritos para comparar también cadenas de caracteres. La instrucción Option Compare, junto a sus modificadores Binary/Text, nos permite definir el modo en que se realizarán las comparaciones entre expresiones que contengan cadenas. ☺ Option Compare Binary. Las comparaciones se realizan en base a los valores binarios internos de los caracteres. Esta es la opción por defecto. ☺ Option Compare Text. Las comparaciones se realizan en base a los valores textuales de los caracteres. Podemos configurar Option Compare a nivel de proyecto y de fichero de código. En el caso de configurar a nivel de proyecto, deberemos abrir la ventana de propiedades del proyecto, y en su apartado Compilar, establecer el valor correspondiente en la lista desplegable “Option Compare”. Si configuramos a nivel de fichero de código, escribiremos la siguiente instrucción en la cabecera del fichero con el modificador oportuno: Option Compare Binary

Practica Operadores Básicos 1. Crear un nuevo proyecto de tipo consola denominado “OperadoresBasicos”: a. Para cada operación aritmética mostrada en la pantalla anterior, se han de pedir dos números y mostrar el resultado. b. A continuación se han de pedir dos letras por pantalla y realizar las comparaciones de cadena anteriores. Se mostrará un mensaje del estilo: La comparación X < Y da como resultado VERDADERO” (esto es un ejemplo).

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.