Net1 capitulo ii - variables de memoria & array

29
Desarrollo de Desarrollo de Aplicaciones .NET para Aplicaciones .NET para Windows Windows - Sistema de Tipos Comunes - - Sistema de Tipos Comunes - José Luis Ponce Segura [email protected] www.redtacna.edu.pe Tacna - Perú SITELSUR S.A.C. RED EDUCATIVA DE TACNA

Transcript of Net1 capitulo ii - variables de memoria & array

Page 1: Net1   capitulo ii - variables de memoria & array

Desarrollo de Aplicaciones Desarrollo de Aplicaciones .NET para Windows.NET para Windows

- Sistema de Tipos Comunes -- Sistema de Tipos Comunes -

José Luis Ponce [email protected]

Tacna - Perú

SITELSUR S.A.C.RED EDUCATIVA DE TACNA

Page 2: Net1   capitulo ii - variables de memoria & array

Define cómo funcionan los tipos en el Common Language Runtime

Tipos de datos predefinidos

Estructuras definidas por el usuario

Enumeraciones

Cadenas

Matrices

Clases

Tipos valor Tipos referencia

Sistema de tipos comunes

¿Qué es el sistema de tipos comunes?

Page 3: Net1   capitulo ii - variables de memoria & array

Tipo VisualBasic .NET

Tamaño de almacenamiento Rango de valores

Boolean

Date

Decimal

Double

Integer

Single

2 bytes

8 bytes

16 bytes

8 bytes

4 bytes

4 bytes

Verdadero o Falso

0:00:00 del 1 de enero de 0001 a11:59:59 PM del 31 de diciembre de 9999Hasta 29 dígitos significativos, convalores de hasta 7,9228 x 10 (con signo)-4,94065645841246544E-324 a+1,79769313486231570E+308 (con signo)-2.147.483.648 a+2.147.483.647 (con signo)-3,4028235E+38 a 1,401298E-45(con signo)

String Varía 0 a 2.000 millones aproximadamente de caracteres Unicode

Tipos de datos

Page 4: Net1   capitulo ii - variables de memoria & array

Escogertipo de datos… para gestionar… Tipo CTS Ejemplo

Boolean Condiciones de Verdadero o Falso

Valor Verdadero

Short, Integer,Long, Byte

Enteros Valor 23 (Entero)

Single, Double,Decimal

Números con enterosy partes de fracciones

Valor 9456,72(Decimal)

Date Valores fecha y hora Valor 02/12/200312:30:42 A.M.

String Caracteres imprimibles yvisualizables en pantalla

Referencia “Casa”

Object Un puntero al valor deun objeto

Referencia myClassmyPerson

Cómo escoger un tipo de datos

Page 5: Net1   capitulo ii - variables de memoria & array

Analizar los datos de ejemplo

Considerar el tamaño y tipo de datos

Seleccionar el tipo de datos más compacto

Escoger tipos de datos

Page 6: Net1   capitulo ii - variables de memoria & array

• Las variables almacenan valores que pueden cambiar cuando una aplicación se está ejecutando

• Las variables tienen seis elementos básicos:

Elemento DescripciónNombre La palabra que identifica la variable en código

Dirección La ubicación de memoria donde se almacena el valor

Tipo de datos El tipo y tamaño inicial de datos que la variable puede almacenar

Valor El valor en la dirección de la variable

Ámbito El conjunto de todo el código que puede acceder y utilizar la variable

Vida El intervalo de tiempo durante el cual una variable es válida

¿Qué son las variables?

Page 7: Net1   capitulo ii - variables de memoria & array

• Sintaxis para declarar variables– Dim nombreVariable As Tipodato

• Ejemplos de variables de tipo valor

• Ejemplos de variables de tipo referencia

Dim NumeroLibro As IntegerDim valor As Single

Dim Formulario As FormDim NombreUsuario As String

Cómo declarar variables

Page 8: Net1   capitulo ii - variables de memoria & array

•Reglas para poner nombres– Empezar con un carácter alfabético o

guión bajo– No utilizar espacios ni símbolos– No utilizar palabras clave como Integer

•Ejemplos de nombres de variables– NombreCliente (PascalCasing)– numeroCuenta (camelCasing)

Cómo nombrar variables

Page 9: Net1   capitulo ii - variables de memoria & array

• Option Explicit ON : habilitado (predeterminado)– Obliga a declarar explícitamente las variables

antes de utilizarlas– Reduce errores lógicos y facilita el

mantenimiento del código– Produce una ejecución del código más rápida

• Option Explicit OFF : no habilitado– Permite utilizar implícitamente variables sin

declararlas– Aumenta la probabilidad de conflictos de

nombres y comportamiento imprevisto debido a errores de ortografía

– Produce una ejecución del código más lenta

Cómo afecta Option Explicit a las variables

Page 10: Net1   capitulo ii - variables de memoria & array

Podemos:• Asignar un valor a una variable

después de declararla

• Asignar un valor a una variable mientras la declaramos

Dim cumpleaños As Datecumpleaños = #3/9/1974#

Dim cumpleaños As Date = #3/9/1974#

Cómo asignar valores a las variables

Page 11: Net1   capitulo ii - variables de memoria & array

Ejemplos de asignación según tipo

IMPORTANTE: Podemos declarar una variable y asignarle valor en la misma línea de código, como vemos a continuación:

Page 12: Net1   capitulo ii - variables de memoria & array

Podemos utilizar variables para:• Almacenar valores de expresiones• Almacenar entrada del usuario• Almacenar objetos• Almacenar valores de propiedades• Devolver valores• Mostrar la salida

Cómo utilizar variables

Page 13: Net1   capitulo ii - variables de memoria & array

VariableVariable ConstantConstant

Declare with Dim

Values change asapplication runs

Uses more memory thanconstants

Declare with Const

Values stay the same asapplication runs

Uses less memory thanvariables

Variables Constantes

Declarar con Dim

Los valores cambian mientras se ejecuta la aplicación

Utilizan más memoria que las constantes

Declarar con Const

Los valores no cambian mientras se ejecuta la aplicación

Utilizan menos memoriaque las variables

Sintaxis para declarar una constante: Const NombreConstante As Tipodato

Variables frente a Constantes

Page 14: Net1   capitulo ii - variables de memoria & array

Dim Number For Double

Const Val As Date

Dim ErrorMessage As Text

Dim sub As Decimal

Dim 12Count As Integer

Práctica: Encontrar errores

Page 15: Net1   capitulo ii - variables de memoria & array

Módulo o clase Public

Public a As Integer

Módulo o clase Friend

Friend b As Date

Módulo o clase Private

Private c As String

Procedimiento o bloque

Dim d As Integer

Otros proyectos de la solución pueden acceder a la variable a

Puede accederse a la variable b desde cualquier lugar del proyecto

Puede accederse a la variable c desde cualquier lugar del módulo

Sólo puede accederse a la variable d dentro del procedimiento o bloque

Ámbito de una variable

Page 16: Net1   capitulo ii - variables de memoria & array

Nivel de acceso del contenedor de la variable

Dónde declaramos la variable

Factores que afectan al ámbito Bloque

Procedimiento

Módulo, Clase oEstructura

Private

Public

Friend

Definición: Ámbito es el conjunto de código al que se refiere una variable por su nombre

Nivel de acceso de la variable

¿Qué es el ámbito?

Page 17: Net1   capitulo ii - variables de memoria & array

If x < > 0 Then Dim varBloque As Integer varBloque = x + 1End If

Sub ShowMessage_Click( ) Dim miVariable As String ' Insertar código para agregar funcionalidadEnd Sub

Ejemplo de variable local: a nivel de bloque

Ejemplo de variable local: a nivel de procedimiento

Dóndedeclarar

En bloque

Palabra clave

Dim

Modificadorde acceso

Ninguno

Ámbito

Nivel bloque

En procedimiento Dim Ninguno Nivel procedimiento

Cómo declarar variables locales

Page 18: Net1   capitulo ii - variables de memoria & array

Dónde: declarar dentro de un bloque o procedimiento• Sintaxis: utilizar la palabra clave Static (no

modificador de acceso) – Static nombreVariable As Tipodato

• Ejemplo:

Sub AddItem_Click( ) Static items As Integer ' Añadir 1 al contador items += 1 MsgBox(“El contador es ahora: " & str(items))End Sub

Cómo declarar variables estáticas

Page 19: Net1   capitulo ii - variables de memoria & array

Utilizar modificador de accesoPrivate

ÁmbitoMódulo

Friend Proyecto

Public Solución

Private miVarModulo As StringFriend miVarProyecto As StringPublic miVarSolucion As String

• Declarar en un módulo, clase o estructura

• Ejemplos

Cómo declarar variables de módulo

Page 20: Net1   capitulo ii - variables de memoria & array

Examinar el código de inicio para encontrar una variable no declarada

Declarar la variable en varias ubicaciones para conseguir distintos niveles de ámbito

Determinar qué modificador de acceso utilizar, en caso de utilizar alguno, al declarar la variable

Configurar niveles de acceso para variables

Page 21: Net1   capitulo ii - variables de memoria & array

Definición: las funciones de conversión permiten convertir valores de un tipo de datos a otro

Valor Integer 1234

Valor String "1234"CStr

Valor Double 567,9894

Valor Integer 568CInt

Valor String "12 Febrero 1992"

Valor Date #2/12/92#CDate

se convierte en

¿Cuáles son las funciones de conversión?

Page 22: Net1   capitulo ii - variables de memoria & array

Declarar una variable como tipo de datos String Dim MiCadena As String

Convertir el valor string en un valor integerMiEntero = Cint (MiCadena)

Declarar otra variable como tipo de datos Integer Dim MiEntero As Integer

Asignar un valor a la variable string MiCadena = "1234"

11

22

33

44

EjemploEjemplo

Sintaxis: NombreVariable = CFunction(Expression)

Cómo convertir tipos de datos explícitamente

Page 23: Net1   capitulo ii - variables de memoria & array

• Los tipos de datos son convertidos automáticamente• No se requiere sintaxis especial en el código• Ejemplo de conversión de datos implícita:

• Desventajas de la conversión de datos implícita:– Puede producir resultados imprevistos– El código se ejecuta más lentamente

• Option Strict rechaza las conversiones implícitas de tipo estrechas

Dim secuencia As StringDim numero As Integer' ...secuencia = "1234"numero = secuencia' El valor de secuencia lo convierte implíctiamente a

Integer.

Cómo funciona la conversión de datos implícita

Page 24: Net1   capitulo ii - variables de memoria & array

Array y su declaración• Un array/matriz/vector consiste en una lista de valores

asociada a un identificador. Al emplear una variable para contener más de un dato, el modo de acceder a los valores se consigue a través de un índice asociado a la variable, que permite saber con qué elemento o posición de la lista estamos tratando.

• Para declarar un array actuaremos prácticamente igual que para declarar una variable normal. Ver gráfico

Desde la Caja de Herramientas agregamos

controles a un formulario

Page 25: Net1   capitulo ii - variables de memoria & array

Creación de Arrays Unidimensional

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.

Desde la Caja de

Herramientas agregamos

controles a un formulario

Page 26: Net1   capitulo ii - variables de memoria & array

Asignación y obtención de valores Se actúa igual que para una variable normal, pero empleando además el índicepara indicarqué posiciónqueremosmanipular.

nombres(0) = “Ana”nombres(1) = “Pedro”nombres(2) = “Antonio”nombres(3) = “Laura”

Page 27: Net1   capitulo ii - variables de memoria & array

Modificación de tamaño de un array

Page 28: Net1   capitulo ii - variables de memoria & array

Modificación de tamaño de un array

Preserve. Con ello, los valores existentes en el Array a modificar son conservados.

Page 29: Net1   capitulo ii - variables de memoria & array

• Especificar todas las dimensiones y elementos• Total elementos = producto de todos los tamaños• Declarar una variable de matriz multidimensional :

– Añadir un par de paréntesis tras el nombre de la variable

– Colocar comas dentro de los paréntesis para separar las dimensiones

– Iniciar la declaración con la sentencia Dim o un modificador de acceso

• Ejemplo:

Public Array2Dimensiones(3,9) As Double' Bi-dimensional array

Crear un Array multidimensional