visual basic: características del lenguaje (2)

11

Click here to load reader

Upload: lola-cano

Post on 29-Jun-2015

521 views

Category:

Documents


1 download

DESCRIPTION

Introducción a Visual Basic.net Características del Lenguaje

TRANSCRIPT

Page 1: Visual basic: Características del lenguaje (2)

Características del lenguaje VB.

Explicaremos las características de los diferentes tipos de datos, ámbito, operandos y expresiones en VB.

Características del lenguaje VB. ................................................................................................................................................................................... 1 1. TIPOS DE DATOS................................................................................................................................................................................................................ 1 2. DECLARACIÓN DE MATRICES:.......................................................................................................................................................................................... 4 3. ÁMBITO DE LAS VARIABLES............................................................................................................................................................................................... 7 4. TIPOS DEFINIDOS POR EL USUARIO................................................................................................................................................................................... 7 5. COMENTARIOS................................................................................................................................................................................................................. 7 6. OPERADORES................................................................................................................................................................................................................... 7 6. EJERCICIOS:..................................................................................................................................................................................................................... 10

Conocer los rangos de valores de los tipos básicos.

Manejar expresiones.

Diferenciar entre variables y constantes en un programa.

Conocer los diferentes tipos básicos de datos en lenguaje VB. Objetivos

1. TIPOS DE DATOS. En la formula 2πr observamos diferentes tipos de datos. Por un lado los valores 2 y π que son constantes y no podrán ser modificados. Pero 2 es un valor constante literal y π es un valor constante con nombre. En cuanto a r es un valor variable . Estos conceptos son importantes a la hora de trabajar con datos .

1.1. CONSTANTES. Son valores que no cambian durante la ejecución de la aplicación. Las constantes pueden ser numéricas y alfanuméricas.

Constantes literales Las constantes numéricas admiten valores decimales, hexadecimales (base 16) y octales (base 8): Decimales: 10,1784, 28

Hexadecimales: &H3, &HlOA, &HF7

Octales: &055, &0176, &01447

Las constantes alfanuméricas o de caracteres son para cadenas de letras, también pueden almacenar número pero no permiten realizar operaciones aritméticas:

Alfanuméricas: “Visual Basic”, “Fundamentos de programación” 1

Page 2: Visual basic: Características del lenguaje (2)

Constantes con nombre

Const nombre_constante[AS Tipo]=expresión

1.2. VARIABLES Una variable es el campo donde almacenaremos un valor que podrá ser modificado durante la ejecución de la aplicación.

2

En versiones anteriores VB nos permitía utilizar variables sin definición previa. Ahora nos obliga a declarar las variables antes de utilizarlas: Declaración explicita de variables y nos permite especificar si queremos que nos obligue a declarar el tipo datos: Declaración estricta. Podemos desactivar estas dos Opciones, no se recomienda no hacerlo.

Para la declaración estricta de variables: Botón derecho del ratón sobre el nombre del proyecto del Explorador de soluciones ->

Propiedades->Compilar->Option Strict=On Para desactivar la declaración Explicita: Option Expilcit=OF

Las variables son necesarias declararlas con la sentencia Dim, que tiene el siguiente formato: Dim nombre-variable [AS Tipo]........ Ejemplo: Dim Conta AS Integer Las variables han de definirse con un nombre, un tipo y un ámbito. Nombre: Es el nombre que utilizaremos al escribir el programa para referirnos a la variable.Los nombres de variable han de comenzar obligatoriamente por una letra y pueden tener un máximo de 40 caracteres. Estos caracteres serán letras, números y el guión de subrayado, no se admiten símbolos como (%, &, $, ", etc.), ni palabras reservadas que el lenguaje utilice para otros cometidos. Tipo: Determina qué clase de valores podrá almacenar. Sufijo: Se puede indicar el tipo de variable sin la cláusula AS, terminando el nombre en un carácter a modo de sufijo, especifico para cada tipo de variable. Ejemplo: Dim Contador%, Nombre$ La siguiente lista muestra los tipos de variables y el rango de valores que pueden almacenar. La tabla siguiente muestra los tipos de datos de Visual Basic .NET, los tipos correspondientes de Common Language Runtime, su asignación de almacenamiento nominal y sus intervalos de valores.

tipo Tipo de Visual Basic

Estructura de tipo Common Language

Runtime

Asignación de almacenamiento

nominal

Intervalo de valores

lógico Boolean System.Boolean 2 bytes True o False

Page 3: Visual basic: Características del lenguaje (2)

3

caracter Char System.Char 2 bytes 0 a 65535 (sin signo) fecha 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).

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.

Nueros reales

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.

Byte System.Byte 1 byte 0 a 255 (sin signo) 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

enteros

Short System.Int16 2 bytes -32.768 a 32.767 Object System.Object (clase) 4 bytes Cualquier tipo puede almacenarse en una variable de

tipo Object. Cadenas de caracteres

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 (estructura)

(hereda de System.ValueType)

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.

CONSIDERACIONES:

Las variables de tipo Char se almacenan como números de 16 bits (2 byte) sin signo con valores comprendidos entre 0 y 65535. Cada número representa un único carácter Unicode.

Los datos numéricos se pueden convertir a datos lógicos. El valor 0 es False y distinto de cero es True.

Para convertir los lógicos a numéricos False se convierte en 0 y True en -1.

Los valores literales de fechas y horas deben expresarse en un formato reconocible por windows, encerrados por el carácter (#). Ejemplo:

#15/05/95 14:30:15#

#15Mayo1995 14:30#

Si convierte un valor Date a un tipo String, la fecha se procesa en función del formato de fecha corta reconocida por el equipo y la hora se procesa en función del formato de hora que tenga el equipo (12 horas o 24 horas).

Si se agrega el carácter de tipo I a un literal, se convierte el tipo de datos del literal al tipo de datos Integer. Si se agrega el carácter de declaración de tipo % a cualquier identificador, se convierte su tipo de datos al tipo Integer. Ejemplo: Dim Contador%

Los números enteros se especifican por los tipos Byte,Short,Integer y Long según el tamaño.

Para números enteros sin signo de 0 a 255 el tipo Byte

Si se agrega el carácter de tipo L a un literal, se convierte el tipo de datos del literal al tipo de datos Long. Si se agrega el carácter de declaración de tipo & a cualquier identificador, se convierte su tipo de datos al tipo Long. Ejemplo: Dim largo&..

Si se agrega el carácter de tipo S a un literal, se convierte el tipo de datos del literal al tipo de datos Short.

Page 4: Visual basic: Características del lenguaje (2)

4

Si se agrega el carácter de tipo F a un literal, se convierte el tipo de datos del literal al tipo de datos Single. Si se agrega el carácter de tipo de identificador ! a cualquier identificador, se convierte su tipo de datos al tipo Single. Ejemplo Dim area!

Si se agrega el carácter de tipo R a un literal, se convierte el tipo de datos del literal al tipo de datos Double. Si se agrega el carácter de declaración de tipo # a cualquier identificador, se convierte su tipo de datos al tipo Double. Ejemplo: Dim radio#

Cuando se declaran variables, las variables numéricas sé inicializan a 0, las cadenas de longitud variable se inicializan a cadena de longitud cero, y las cadenas de longitud fija se rellenan con ceros.

Ejemplos de declaraciones: Dim x,y,z As Integer, Dim q,w As Single, r as Double

1 . 2 . 1 I N I C I A L I Z A C I Ó N D E V A R I A B L E S .

Asignar valor a una variable después de su definición Dim x As Integer x = 10 'Asignar a x el valor de 10

Puede declarar más de una variable por enunciado separando su declaración con comas:

Dim x As Integer, y as String x = 10 : y = "hola"

Asignar valor en su declaración Dim dato& = 10 Dim dato1 As Integer = 21

2. DECLARACIÓN DE MATRICES: 2..1 Definir Matrices. Para declarar matrices necesitamos: nombre, numero de elementos y tipo de datos.

1. Dim a(9) As Integer ‘ define un array de 10 elementos enteros 2. Dim b() As Double ‘ define un array de números Double sin especificar el

tamaño 3. Dim cadena(11) As String ‘ define un array de 12 elementos de tipo cadena

En .NET se puede definir el segundo ejemplo de la forma: Dim b As Double()

Si conocemos a priori el tamaño de la matriz podemos usar este dato en su definición, ejemplos 1 y 3 ,si no lo conocemos podemos hacerlo como el segundo ejemplo y más adelante lo redefiniremos con su tamaño.

Como se puede apreciar el número de elementos se expresa teniendo en cuenta que el número expresado entre paréntesis es el valor mayor que puede tomar el índice, ya que en Net los arrays van de 0 al valor del índice expresado en su definición. Así el primer ejemplo tiene 10 elementos enteros accesibles con índices del 0 al 9.

Si utilizamos en su definición los limites de los índices, ejemplos1 y 3, no podremos inicializar de forma explicita la matriz.

2.2 Dar valores a matrices. Para dar valores a un a matriz en su definición, tendremos que declararla sin límites

explícitos:

Dim a() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Page 5: Visual basic: Características del lenguaje (2)

5

Dim s() As String = {"hh", "bb"}

Para asignar un valor a un elemento de una matriz:

a(1) = 12 a(i)=1 ‘ i debe ser una variable entera y entre los valores permitidos por su tamaño a(i+2)=1 ‘ la expresión debe ser una variable entera y entre los valores permitidos por su tamaño

2.3. Para definir matrices de más de una dimensión:

Dim b()As Integer Dim c(,) As Integer Dim d(,,) As Integer Dim e(2) As Integer Dim f(1, 6) As Integer Dim g(3, 1, 5, 2) As Integer Dim h() As Integer = {1, 2, 3, 4} Dim j(,) As Integer = {{1, 2, 3}, {4, 5, 6}} ' este array se declararía como K(3, 2, 1) Dim K(,,) As Integer = { _ {{18, 20}, {23, 34}, {12, 6}}, _ {{7, 8}, {19, 16}, {11, 12}}, _ {{13, 15}, {15, 16}, {17, 18}}, _ {{1, 20}, {1, 22}, {25, 43}} _ }

2.4 Redimensionar una matriz Para cambiar el tamaño de una matriz se usa Redim: ReDim a(8) Pero debemos tener cuidado, al redefinir el tamaño, perdemos su contenido a menos que especifiquemos lo contrario: ReDim Preserve a(11) Los elementos añadidos se inicializarán a cero.

En matrices de más de una dimensión, no podremos modificar el número de dimensiones. Con Redim podemos modificar el número de elementos de todas las

dimensiones. Con Redim Preserve solo podremos modificar el numero de elementos de la

última dimensión, incluso ponerlo a cero.

2.5 Propiedades de una matriz

IsFixedSize Obtiene un valor que indica si Array tiene un tamaño fijo.

IsReadOnly Obtiene un valor que indica si Array es de sólo lectura. Length Obtiene un entero de 32 bits que representa el número total de elementos de todas las dimensiones de

Array. a.Length nos dará 10 y a.Length-1 nos dará 9 que es el valor mayor del índice, dato interesante para utilizar el el bucle que recorrerá la matriz.

LongLength Obtiene un entero de 64 bits que representa el número total de elementos de todas las dimensiones de Array.

Rank Obtiene el rango (número de dimensiones) de Array. Ejemplo: K.Rank

Page 6: Visual basic: Características del lenguaje (2)

6

2.6 Métodos para matrices.

BinarySearch

Busca un valor en una matriz Array unidimensional y ordenada utilizando un algoritmo de búsqueda binario.

Clear .

Establece un intervalo de elementos de Array en cero, false o una referencia nula (Nothing en Visual Basic), en función del tipo de elemento.

Clone

Crea una copia superficial de Array.

Copy

Copia una sección de una matriz Array en otra matriz Array y realiza la conversión de tipos y la conversión boxing de tipos necesarias.

CopyTo

Copia todos los elementos del objeto Array unidimensional actual en el objeto Array unidimensional especificado a partir de una posición. Debemos tener la precaución del numero de elementos de los arrays sean correctos. a.CopyTo(b, 0)

CreateInstance

Inicializa una nueva instancia de la clase Array.

Equals (se hereda de Object)

Determina si dos instancias de Object son iguales.

GetEnumerator

Devuelve IEnumerator correspondiente a Array.

GetHashCode (se hereda de Object)

Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash y estructuras de datos como las tablas hash.

GetLength

Obtiene un entero de 32 bits que representa el número de elementos de la dimensión especificada de Array.

GetLongLength Obtiene un entero de 64 bits que representa el número de elementos de la dimensión especificada de Array.

GetLowerBound Obtiene el límite inferior de la dimensión especificada de Array. Siempre será cero

GetType

Obtiene el objeto Type de la instancia actual.

GetUpperBound

Obtiene el límite superior de la dimensión especificada de Array. Ejemplo k.GetUpperBound(1) dará como resultado el numero de elementos de la dimensión 2.

GetValue .

Obtiene el valor del elemento especificado de la matriz Array actual. Los índices se especifican en forma de una matriz de enteros de 32 bits.

IndexOf .

Devuelve el índice de la primera aparición de un valor en una matriz Array unidimensional o en una parte de la matriz Array.

Initialize

Inicializa todos los elementos de la matriz Array de tipo de valor llamando al constructor predeterminado del tipo de valor.

LastIndexOf

Sobrecargado. Devuelve el índice de la última aparición de un valor en una matriz Array unidimensional o en una parte de la matriz Array.

Reverse

Invierte el orden de los elementos de una matriz Array unidimensional o de una parte de Array. b.Reverse(b)

SetValue

Establece el elemento especificado de la matriz Array actual en el valor especificado.

Sort

Ordena los elementos en objetos Array unidimensionales. Array.Sort(a) a.Sort(a) Las dos formas son correctas.

ToString

Devuelve un objeto String que representa al objeto Object actual.

Page 7: Visual basic: Características del lenguaje (2)

3. ÁMBITO DE LAS VARIABLES. Las constantes y variables tienen los siguientes ámbitos:

1. Nivel de bloque: dentro de un bloque de código, ejemplo If….En if 2. Nivel de procedimiento: (Local)dentro de un procedimiento 3. Nivel de módulo. Visible para todos los procedimientos almacenados para el mismo

módulo. Se declara en la sección de Declaraciones.

4. Global: Sustituiremos Dim o Private por Public.

Para declarar variables de ámbito estático: Static a as integer. La variable no se inicializa cada vez que ejecute el procedimiento que la declara.

4. TIPOS DEFINIDOS POR EL USUARIO. VB permite al programador definir sus propios tipos de datos mediante la sentencia Structure , con el siguiente formato: Public Structure Empleado Public EmpNumero As Integer Dim Telefono As String Private TelefonoCasa As String ' Can be made Private inside Structure. End Structure Después de realizada la definición, se pueden declarar variables del tipo definido usando la sentencia Dim. Ejemplo: Dim Ramón AS Enpleado, Pepe AS Empleado Para poder acceder a los valores individuales se hace especificando el nombre de la variables, un punto y el del elemento. Ejemplos: Ramon.telefono=9682345678 Ramon=Pepe

5. COMENTARIOS. Es posible que en ocasiones sea necesario incluir algún comentario en un programa. Un comentario es una línea que Visual Basic ignorará cuando ejecute la aplicación, pero que será muy útil para nosotros al comprobar los listados. Para insertar un comentario basta con colocar una comilla simple delante de la frase. Los comentarios pueden estar situados detrás de una sentencia de Visual Basic: ' esto es un ejemplo de un comentario

6. OPERADORES Un operador suele estar representado por un símbolo y como su nombre indica realiza una operación. Las operaciones pueden ser lógicas, relacionales y aritméticas. Los operadores de Visual Basic son los siguientes: Aritméticos

7

Page 8: Visual basic: Características del lenguaje (2)

+ (Suma) - (Resta) - (Cambio de signo) * (Multiplicación) / (División) ^ (Exponente) \ (División entera) Mod (Resto división entera) Relacionales < (menor que) > (Mayor que) <> (Diferente) = (Igual) <= (Menor igual) >= (Mayor igual) Lógicos

a b a And b A Or b Not a Verdadero Verdadero Verdadero Verdadero Falso Verdadero Falso Falso Verdadero Verdadero

Falso Verdadero Falso Verdadero Falso Falso Falso Falso

Not (No) And (Y) Or (O) Xor (Or exclusivo),su tabla de verdad es:

expresión1 expresión2 expresión1 Xor expresion2 Verdadero Verdadero Falso Verdadero Falso Verdadero

Falso Verdadero Verdadero Falso Falso Falso

Eqv (Equivalencia, opuesto a Xor) su tabla de verdad es: expresión1 expresión2 expresión1 Eqv expresion2 Verdadero Verdadero Verdadero Verdadero Falso Falso

Falso Verdadero Falso Falso Falso Verdadero

Imp (Implicación, falso si el primer operando es verdadero y el segundo operando es falso) expresión1 expresión2 expresión1 Imp expresion2 Verdadero Verdadero Verdadero Verdadero Falso Falso Verdadero Null Null

Falso Verdadero Verdadero Falso Falso Verdadero Falso Null Verdadero Null Verdadero Verdadero Null Falso Null Null Null Null

ejemplos: 5<8 And Not 4>2 (> resultado False) 6=5 Or 6<>5 (>resultado True) 4>=3 Xor 2<=5 (>resultado False 8

Page 9: Visual basic: Características del lenguaje (2)

9

En estos ejemplos se utiliza el operador Imp para ejecutar una implicación lógica con dos expresiones. A = 10: B = 8: C = 6: D = Null ' Inicializa variables. MiPrueba = A > B Imp B > C ' Devuelve True. MiPrueba = A > B Imp C > B ' Devuelve False. MiPrueba = B > A Imp C > B ' Devuelve True. MiPrueba = B > A Imp C > D ' Devuelve True. MiPrueba = C > D Imp B > A ' Devuelve Null.

• Los operadores relacionales dan como resultado los valores True (condición cierta), False (condición falsa) o Null (no válido).

En VB el valor Null indica que la variable no tiene un valor válido. Se pueden comparar cadenas de dos formas: - carácter a carácter. - Ignorando la mayúsculas, minúsculas y los signos de acentuación de vocales. Para esto debe incluirse la sentencia Option Compare Text en la sección de declaraciones del módulo. El modo por defecto es Optión Compare Binary. Option Compare Binary da por resultado comparaciones de cadenas basadas en el criterio de ordenación derivado de las representaciones binarias internas de los caracteres. En Microsoft Windows, el criterio de ordenación depende del código de página. En Macintosh, el criterio de ordenación se determina por el juego de caracteres. En el siguiente ejemplo se ilustra un criterio de ordenación binaria típico: A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø Option Compare Text da por resultado comparaciones de cadenas basadas en el criterio de ordenación determinado por la información local. Los mismos caracteres del ejemplo anterior, ordenados con la opción Option Compare Text, aparecen en el siguiente orden: (A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø) Αaaa= ΑAAA >resultado : True Αááá= ΑAAA > resultado : Trué OTROS & (Enlazar, concatenar) ejemplo: Nombre = “Daniel” print “mi nombre es “ & Nombre resultado : Mi nombre es Daniel Like (Comparar dos expresiones alfanuméricas) Al utilizar estos operadores se han de tener en cuenta algunas cuestiones: - Al comparar valores numéricos de diferente tipo, el resultado será igual al operando de mayor precisión. - Si uno de los operandos tiene el valor Null, el resultado es Null.

Page 10: Visual basic: Características del lenguaje (2)

- El operador Like compara dos expresiones alfanuméricas (caracteres) y permite trabajar con los siguientes patrones: ? Sólo un carácter. * Ninguno o más caracteres. # Sólo un dígito (0-9). [Lista] Sólo un carácter de la lista. [!Lista] Sólo un carácter que no esté en la lista. Ejemplo del operador Like Ejemplos:. M = "aBBBa" Like "a*a" ' Devuelve True. M = "F" Like "[A-Z]" ' Devuelve True. M = "F" Like "[!A-Z]" ' Devuelve False. M es una variable numérica. La siguiente lista muestra algunos ejemplos de patrones del operador Like:

Patrón

True

False

a?a

aaa, a7a, axa

a12a, aaaa

b*b

b12bb, bb, bcdefb

bcde, bcbd

c#c

c1c, c7c, c0c

c12c, cX9c

d[0]d

d0d

ddd, d1d, d*d

[a-z]

a,b,c,d,e

7,9,-,=

[!a-z]

1,3,4,5

a,b,c,d,z

El orden de ejecución de los operandos en una expresión es: 1) Paréntesis más internos de izquierda a derecha 2) ^

Aritméticos 3) * y / 4) \ 5) Mod 6) + y –

Relacionales7) <,>,>=,>=,=,<> 8) Not

10

9) And 10) Or 11) Xor 12) Equ 13) Imp

6. EJERCICIOS:

Lógicos

1) Escribir en expresión Visual Basic las siguientes expresiones algebraicas: a) 3x +5

Page 11: Visual basic: Características del lenguaje (2)

b) x2+y 2 c) (U+V)K-1

d)

4

3 mba c −+

e)

( )

( )cac

ba

n

cba

R−

++

= 1

2

2.78.6

f)

( )⎥⎦⎤

⎢⎣

⎡+

++

=qp

tcab

f31

2 31

2) Evaluar las siguientes expresiones, para los valores: X=1 y=4 z=10 PI=3,141592 E=2,718281 • X + y + z + PI - E + 2,576689 • (Not(2 * x = y / 2 Or (PI- E) >y)) = ( Not y / 2 = 2 *x) And Not y <( PI - E) * z • x>3 And (y =4 Or x+y <= z)

11