Programación II - Unidad 2
Programación II - Unidad 2
Programación II - Unidad 2
Stroustrup extendi el lenguaje de programacin C a C++, es decir C con conceptos de clases y objetos, tambin por esas fechas se creo desde sus bases el lenguaje EIFFEL. En 1995 apareci el ms reciente lenguaje OO, Java desarrollado por SUN, que hereda conceptos de C++. El lenguaje de desarrollo ms extendido para aplicaciones Web, el PHP 5, trae todas las caractersticas necesarias para desarrollar software orientado a objetos. Adems de otros lenguajes que fueron evolucionando, como el Pascal a Delphi. Finalmente tambin otros lenguajes script como el ActionScript que si bien no es totalmente orientado a objetos pero s posee las caractersticas. Ejemplos de lenguajes Orientados a Objetos: C++ JAVA JAVA SCRIPT PHP Visual C++ Visual .NET Lenguajes Orientados al Objeto Otro enfoque para la creacin de programas es el paradigma orientado a objetos, OO. El trmino programacin orientada a objetos se refiere a un estilo de programacin por lo que un lenguaje orientado a objetos puede ser tanto imperativo como declarativo; lo que los caracteriza es la forma de manejar la informacin: clase, objeto y herencia. En este enfoque, las unidades de datos se consideran objetos activos, en vez de las unidades pasivas contempladas por el paradigma por procedimientos tradicional. Para aclarar esto, consideremos una lista de nombres. En el paradigma por procedimientos, esta lista no es ms que una coleccin de datos, y cualquier programa que quiera trabajar con ella deber incluir los algoritmos para realizar las manipulaciones requeridas. As, la lista es pasiva en el sentido de que la mantiene un programa controlador, en vez de tener la responsabilidad de mantenerse ella misma. En cambio, en el enfoque orientado a objetos la lista se considera como un objeto formado por la lista misma y por una serie de rutinas para manipularla. Por ejemplo, pueden ser rutinas para insertar una nueva entrada en la lista, para detectar si la lista est vaca o para ordenar la lista. De este modo, un programa que obtiene acceso a esta lista no necesita contener algoritmos para efectuar esas tareas; simplemente aprovecha las rutinas suministradas en el objeto. En cierto sentido, en vez de ordenar la lista como en el paradigma por procedimientos, el programa pide a la lista que se ordene a s misma. Muchas ventajas del paradigma orientado a objetos son consecuencias de la estructura modular que surge como subproducto natural de la filosofa orientada a objetos, pues cada objeto se implanta como un mdulo individual, bien definido, cuyas caractersticas son en gran medida independientes del resto del sistema. As, una vez desarrollado un objeto que representa a una determinada entidad, es posible reutilizar ese objeto cada vez que se requiera dicha entidad. De hecho, un rasgo primoridal de los lenguajes de programacin orientados a objetos es la capacidad de representar definiciones de objetos a modo de esqueletos, clases, que pueden usarse una y otra vez para construir mltiples objetos con las mismas propiedades, herencia, o modificarse para construir nuevos objetos con propiedades similares.
La programacin OO est adquiriendo popularidad a grandes pasos, y muchos creen que dominar el campo de la programacin en el futuro. El lenguaje orientado a objetos ms conocido es Smalltalk, que apareci en 1976. Es un lenguaje de tipo imperativo donde se utiliz por primera vez el vocabulario que se ha hecho caracterstico de este tipo de lenguajes. Un lenguaje que se ha aadido a los llamados orientados a objetos es la extensin de C aparecida en 1986, C++. Aunque es muy diferente a Smalltalk, ha sido muy popular por ser una extensin del lenguaje C. Uno de los ltimos lenguajes OO aparecidos es Java, al que dedicamos el siguiente apartado.
Identificadores Los identificadores son nombres dados a tipos, literales, variables, clases, interfaces, metodos, espacios de nombres y sentencias de un programa. La sintaxis para formar un identificador es la siguiente: Letra _ [letra digito carcter subrayado ].
lo cual indica que un identificador consta de uno o mas caracteres y que el primer carcter debe ser una letra o el carcter de subrayado. No pueden por un digito ni pueden contener caracteres especiales. Si el primer carcter es el carcter de subrayado, debe escribirse, al menos, otro carcter a continuacin. Las letras pueden ser mayusculas o minusculas, pero Visual Basic no diferencia mayusculas de minusculas. Por ejemplo, los identificadores Suma, suma y SUMA son el mismo identificador. Los identificadores pueden tener cualquier numero de caracteres (realmente pueden tener hasta 1023 caracteres). Algunos ejemplos son: Suma Calculo_numeros_primos _ordena VisualizarDatos
Palabras reservadas o palabras clave Las palabras clave o reservadas son identificadores predefinidos que tiene un significado especial para el compilador Visual Basic. Por lo tanto, un identificador definido por el usario no puede tener el mismo nombre que una palabra clave. El lenguaje Visual Basic, tiene las siguientes palabras clave: AddHandler AddressOf AndAlso Alias And
Ansi As Assembly Auto Boolean ByRef Byte ByVal Call Case Catch
Procedimiento Main El procedimiento Main es el punto de entrada de la aplicacin, el primer procedimiento al cual se obtiene acceso al ejecutar el cdigo.
Modulo Estndar.
Un modulo agrupa cdigo fuente de una aplicacin y se almacena en un archivo .vb . Para definir un modulo se utiliza la sintaxis siguiente: [Public] | Friend ] Module nombre_modulo [sentencias] End Module Una aplicacin puede contener varios mdulos. Un modulo declarado Public no tiene limitaciones de acceso. Un modulo declarado Friend (declaracin por omisin) solo puede ser accedido desde la aplicacin donde esta definid. Cada modulo puede contener :
Tipos de Datos En resumen: Los tipos de datos numricos se agrupan en, Byte, Short, Integer y Long. Los tipos de datos de punto flotante son Single y Double. Los tipos de datos Char almacenan un slo caracter en formato Unicode. Los tipos de datos String almacenan una secuencia de caracteres Unicode. Unicode es un sistema internacional de codificacin de 16-bit que cubre valores para ms de 45,000 caracteres. Un caracter Unicode es almacenado como un valor numerico sin signo de 16bit, de 0 a 65535. Los primeros 128 (0-127) caracteres Unicode corresponden al conjunto de caracteres ASCII. Del 32 al 127 corresponden a caracteres alfanumericos y simbolos para un teclado US. Del 128 al 255 representan caracteres especiales. El tipo de dato Boolean es un valor sin signo el cual es interpretado como falso o verdadero. El tipo de dato Date almacena fechas y tiempo, el rango de valores posible es del 12:00:00 AM Enero 1 al 31 de Diciembre del 9999 11:59:59 PM. Los valores para las fechas deben ser encerrados entre el signo # y con el formato m/d/aaaa, por ejemplo #12/7/1971#.
Constantes Una constante es aquella que almacena un valor que no es posible cambiar durante la ejecucin del programa. Se recomienda que el nombre de una constante sea escrito en su totalidad en maysculas. Const PI As Double = 3.14159265 Si desea que la constante est disponible para todos los formularios y mdulos de la aplicacin deber ser declarada en un mdulo y anteponer a su declaracin la palabra reservada Public. REM Escribir en un Mdulo Public Const PI As Double = 3.14159265
Variables Dim es la abreviatura de Dimensin, que sirve para reservar espacio para la variable. La sentencia Dim especifica el nombre de la variable y su tipo de dato asociado. Las variables deben tener un nombre nico llamado Identificador, los identificadores se forman siguiendo las siguientes reglas: Comenzar con una letra o guin bajo (underscore) Deben contener letras, digitos y guiones bajos. No pueden ser palabras reservadas. Sintaxis para la definicin de una variable:
Dim nombre-de-variable as tipo-de dato Ejemplos: Dim Valor as Integer Dim NombreAlumno as string Dim Sexo as string Recomendaciones: El nombre de las variables deberan comenzar con una letra El nombre de las variables deberan distinguir cada nueva palabra escribiendo la primer letra en mayscula El nombre de las variables deberan ser lo suficientemente largo para ser significativo y lo suficientemente corto para ser manejable. Una novedad en Visual Basic .NET es la declaracin e inicializacin de variables, ya que es posible hacer esto al mismo tiempo: Dim nombreVariable as tipoDato = valorInicial Ejemplos: Dim valora as integer = 0 Dim valoriva as double = 0.10 Dim nombreescuela as string = Tecnologico de Matamoros
mbito de las Variables Local, visible nicamente a nivel procedimiento. Pblica y al inicio del formulario, visible nicamente a nivel formulario. Pblica y al inicio del mdulo, visible nicamente a nivel proyecto. InputBox A travs de la funcin InputBox es posible manipular la entrada de datos por parte del usuario, pudiendo almacenar en una variable los datos ingresados por este. Dim Respuesta As String Respuesta = InputBox("Password : ", "Usuario", , 500, 500) If Respuesta = <> vbNullString Then MsgBox("Validacin de usuario y password pendiente...") Else MsgBox("Es necesario proporcionar su password") End If El primer parmetro que recibe esta funcin es un texto indicativo para el usuario, un texto para el ttulo de la ventana, un valor inicial para el campo donde el usuario ingresar datos, un nmero que representa la coordenada X y otro nmero que representa la coordenada los cuales indican la posicin en donde se presentar la ventana de ingreso de datos.
Operadores
Los operadores son smbolos que indican como son manipulados los datos. Se pueden clasificar en los siguientes grupos: aritmticos, relacionales, lgicos, unitarios, a nivel de bits, de asignacin y operador condicional. Operadores lgicos. El resultado de una operacin logica (AND, OR, XOR y NOT) es una valor booleano verdadero o falso (True o False). Los operandos deben ser expresiones que den un resultado lgico. Visual Basic .NET incorpora 2 nuevos operadores lgicos para utilizarlos en las sentencias de control, a continuacin se mostrar la tabla de operadores lgicos anteriores y nuevos: Operadores Lgicos Descripcin And Las 2 expresiones deben ser verdaderas Or Alguna de las 2 expresiones es verdadera Not Negacin del resultado de la expresin Xor Si 1 y slo 1 de las expresiones es verdadera AndAlso Si la primer y segunda condicin son verdaderas OrElse Si la primer o segunda condicin es verdadera
Operadores Aritmticos Los operadores aritmticos requieren operadores numricos (^,*,/,\,Mod,+,-) y producen resultados numricos. Operador Descripcin + Suma - Resta * Multiplicacin / Divisin \ Divisin entera (parte entera de la divisin) Mod Residuo (resto de la divisin entera) ^ Exponenciacin (elevar a una potencia) & Concatenacin de Cadenas
Dim nInc As Integer For nInc = 1 To 10 If nInc Mod 2 = 0 Then txtOutput.Text += nInc & " es par " & vbNewLine Else txtOutput.Text += nInc & " no es par " & vbNewLine End If Next txtOutput.Text += "10/0 = " & CStr(10 / 0)
La divisin entre 0 no est permitida en los clculos matemticos ya que produce un resultado infinito, en la versin Visual Basic 6 hacer esto produce un error de ejecucin 11 "Divisin entre 0", pero en Visual Basic .NET se maneja esta situacin automticamente y muestra un valor de Infinito Operadores String El operador de concatenacin (&) String requiere operadores String y producen resultados String. Operadores Relacionales (Comparativos) Los operadores Comparativos requieren operadores Comparativos (>,<,>=,<=,=,<>) y producen un resultado lgico (True or False). La siguiente tabla contiene una lista con los operadores de comparacin relacionales y las condiciones que determinan si result es True o False. Operador True si False si < (Menor que) expression1 < expression2 expression1 >= expression2 <= (Menor o igual que) expression1 <= expression2 expression1 > expression2 > (Mayor que) expression1 > expression2 expression1 <= expression2 >= (Mayor o igual que) expression1 >= expression2 expression1 < expression2 = (Igual a) expression1 = expression2 expression1 <> expression2 <> (Distinto de) expression1 <> expression2 expression1 = expression2
Estructuras de Desicion. Evaluar expresiones lgicas. El siguiente tema del que vamos a tratar son las expresiones lgicas. Es decir evaluar expresiones cuyo resultado pueda ser un valor verdadero o falso. Hay ocasiones en las que necesitaremos decidir qu hacer dependiendo de algn condicionante, por ejemplo, muestra los datos de los alumnos de sexto semestre. Por tanto podemos decir que para tomar decisiones usaremos: If Then Esta es la forma ms simple, ya que aqu lo que se hace es evaluar la expresin que se indica despus de IF y si esa expresin devuelve un valor verdadero, (es decir es verdad), se ejecutan los comandos que haya despus de THEN y si esa expresin no es cierta, se ejecuta lo que haya en la siguiente lnea. Eso mismo tambin se suele usar de esta otra forma: If Then End If Que para el caso es lo mismo, con la diferencia de que resulta ms claro de leer y que podemos usar ms de una lnea de cdigo, con lo cual resulta ms evidente el que podamos hacer ms cosas... Pero si tambin queremos hacer algo cuando la expresin NO se cumpla, podemos usar la palabra
ELSE y a continuacin el cdigo que queremos usar cuando la expresin no se cumpla. If Then Else (todo en una misma lnea) O mejor an de esta otra forma, que adems queda ms claro y evidente lo que queremos hacer: If Then Else End If Despus de Else podemos usar otro IF si as lo creemos conveniente, esto es til cuando queremos comprobar ms de una cosa y dependiendo del valor, hacer una cosa u otra: If a = 10 Then ' Lo que sea que haya que hacer cuando a vale 10 ElseIf a = 15 Then ' Lo que haya que hacer cuando a vale 15 Else ' Lo que haya que hacer en caso de que a no valga ni 10 ni 15 End If ' Esto se ejecuta siempre despus de haberse comprobado todo lo anterior. Fjate que en medio de cada If / Then he usado lo que se llama un comentario. Los comentarios empiezan por una comilla simple (apstrofe), en los comentarios podemos poner lo que queramos, con la seguridad de que no ser tenido en cuenta por el Visual Basic. Los comentarios slo pueden ocupar una lnea, salvo que dicha lnea al final tenga el signo _ (subrayado bajo), lo cual indica al IDE que se quiere continuar en la siguiente lnea. Ese smbolo se puede llamar "continuador de lnea" y lo podemos usar siempre que queramos, no slo para los comentarios. Los comentarios tambin se pueden hacer con la palabra reservada Rem, pero eso es algo que ya nadie usa. Sigamos con el If. Si tenemos el Option Strict On, la expresin que se use despus de If debe devolver un valor del tipo Boolean, es decir, debe dar como resultado un valor True o False. Si Option Strict est en Off, el VB lo "convertir" en un valor True o False, pero no te acostumbres a que VB haga las cosas medio-automticas, ya que en ocasiones puede ser que ese automatismo no de como resultado lo que nosotros "creamos" que iba a dar... De todas formas, cuando el Visual Basic se encuentra con algo como esto: If i > 25 Then Lo que hace es evaluar la expresin y al comprobar si el valor de i es mayor de 25 y en caso de que as sea, devolver un valor True y si resulta que i no es mayor de 25, devolver False. A continuacin se comprueba ese valor devuelto por la expresin y si es verdadero (True) se hace lo que est despus del Then y si es falso (False), se har lo que est despus del Else, (si es que hay algn Else...) La expresin que se indica despus de IF puede ser una expresin "compuesta", es decir se pueden indicar ms de una expresin, pero para ello hay que usar algunos de los operadores lgicos, tales como AND, OR o NOT. Por ejemplo si queremos comprobar si el valor de i es mayor que 200 o es igual a 150, haramos algo as: If i > 200 OR i = 150 Then
Pero si lo que queremos es que el valor de i sea mayor que 200 y menor de 500, habra que usar AND: If i > 200 AND i < 500 Then Por ltimo, si queremos que la condicin se cumpla cuando i NO sea igual a 100: If Not i = 100 Then Aunque esto mismo podramos haberlo hecho de esta otra forma: If i <> 100 Then Con AND se cumple la verdad si las dos expresiones son verdaderas. Con Or se cumple si cualquiera de las expresiones es verdadera. Por supuesto, podemos usar expresiones en las que se mezclen AND y OR, aunque en estos casos es recomendable el uso de parntesis para separar las expresiones "dudosas". Por ejemplo: If A = 100 Or B > 50 And x = n * 2 Then Que quiere decir esto? Que pasa si A es igual a 100 pero B es menor de 50, y x es igual a n * 2? Que se cumple, igual que si x no fuese igual a n * 2, pero si A no vale 100, slo se cumplira si B fuese mayor de 50. Es decir, la ltima expresin slo se tiene en cuenta si A no vale 100 y B es mayor de 50. Por tanto quedara ms claro de esta otra forma: If A = 100 Or (B > 50 And x = n * 2) Then Aunque si nuestra intencin era otra, podamos haberlo escrito de esta otra forma: If (A = 100 Or B > 50) And x = n * 2 Then En cuyo caso slo se cumplir cuando A sea 100 o B mayor de 50, pero SIEMPRE x debe ser igual a n*2 Es decir, usa los parntesis dependiendo de lo que realmente quieras comprobar... De todas formas, he de aclararte, sobre todo si has usado versiones anteriores de Basic, que en vb.NET las expresiones se van evaluando de izquierda a derecha y se van descartando segn se van encontrando cosas que "cumplan" lo que all se comprueba. Antes se evaluaban todas las expresiones, (con las posibles consecuencias que podan tener si alguna de ellas contena una funcin que haca algn tipo de clculo largo y al final resultaba que no era necesario haberlo calculado...) y despus se empezaba a descartar posibilidades... Ya que estamos, decirte que los smbolos que podemos usar para efectuar comparaciones, son estos: = igual < menor que > mayor que <= menor o igual >= mayor o igual <> distinto Seguramente ya lo sabas, pero... nunca est de ms. Para terminar, decirte que las expresiones que se pueden usar con el IF pueden ser tanto numricas como alfanumricas o de cadena, ya que tambin puede ser conveniente saber si el contendido de la cadena s es mayor que la palabra "hola", aunque en este tipo de expresiones, se evala tal y como si se fuese a clasificar... es decir "ahora" ser menor que "hola", ya que si lo clasificramos, tendramos que la letra A est antes que la H.
Aqu tambin juega un poco el Option Compare Binary ya que, como te dije, se hacen distinciones de maysculas y minsculas, aunque a la hora de clasificar (u ordenar), las minsculas estn despus de las maysculas, por tanto "Amigo" ser menor que "amigo" si es que tenemos puesto el Option Compare Binary. Pero sern iguales si est puesto el Option Compare Text.
Qu es un operador? Un operador es un elemento de cdigo que realiza una operacin en uno o ms elementos de cdigo que contienen valores. Los elementos de valor incluyen variables, constantes, literales, propiedades, valores devueltos de procedimientos Function y Operator y expresiones. 2.- mencione el nombre y el significado de los operadores
Operadores aritmticos, realizan los clculos familiares en valores numricos, incluido el desplazamiento de sus modelos de bits. Operadores de comparacin, comparan dos expresiones y devuelven un valor Boolean que representa el resultado de la comparacin. Operadores de concatenacin, combinan varias cadenas en una sola. Operadores lgicos y bit a bit en Visual Basic, combinan valores Boolean o numricos y devuelven un resultado del mismo tipo de datos que los valores. 3.- mencione el nombre de los operadores de comparacin o comparacion. Todos los operadores de comparacin (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf...Is) Igual, mayor que, igual o mayor que, menor que, menor igual que, es, no es 4.-mencione el nombre de los operadores lgicos. Negacin (Not) Conjuncin (And, AndAlso) Disyuncin inclusiva (Or, OrElse) Disyuncin exclusiva (Xor) El operador = slo es el operador de comparacin de igualdad, no el operador de asignacin. El operador de concatenacin de cadenas (&) no es un operador aritmtico, pero en cuanto a prioridad, se agrupa con los operadores aritmticos. Los operadores Is e IsNot son los operadores de comparacin de referencia de objeto. No comparan los valores de dos objetos; slo comprueban y determinan si dos variables de objeto hacen referencia la mis ma instancia del objeto. 5.-mencione e l nombre y asignacin de las operaciones Las instrucciones de asignacin realizan operaciones de asignacin, que consisten en tomar el valor de la derecha del operador de asignacin (=) y almacenarlo en el elemento de la izquierda.Tipos de datos en instrucciones de asignacin,Adems de valores numricos, el operador de asignacin tambin puede asignar valores String. Tambin se pueden asignar valores Boolean utilizando un literal Boolean o una expresin Boolean. Instrucciones de asignacin compuesta.Las instrucciones de asignacin compuesta realizan primero una operacin en una expresin antes de asignarla a un elemento de programacin. En el siguiente ejemplo se muestra uno de estos operadores, +=, que incrementa el valor de la variable del lado izquierdo del operador con el valor de la expresin de la derecha.
6.-mencione el nombre y significado de conckel 7.- mencione el nombre in 8.- defina el concepto de literales. Un literal es un valor que se expresa a s mismo en lugar de a un valor de variable o el resultado de una expresin. 9.-escriba los caracteres de visual basic. Alfanumricos o numericos Str (nmero) Convierte un nmero a una cadena en numeracin decimal. Val (cadena numrica) Obtiene el valor (el nmero) correspondiente a esa cadena. 10.- elabore una tabla donde enliste los diferentes tipos de datos. 11.-defina el concepto de variable. Visual Basic, al igual que la mayora de los lenguajes de programacin, utiliza variables para almacenar valores. Una variable tiene un nombre (la palabra que se utiliza para referirse al valor que contiene la variable) y un tipo de datos (que determina la clase de datos que puede almacenar la variable). Una variable puede representar una matriz, si es necesario que almacene un conjunto indizado de elementos de datos estrechamente relacionados entre s. 12.- escriba la sintaxis para declarar una variable. Dim variable as tipo 13-14.-explique el uso de las sentencias if then,if. These else, select case, while en while do coup while for next. escriba la sintacis de cada una de ellas Si se cumple una condicin Entonces Realiza estas instrucciones Si no se cumple Realiza estas otras instrucciones Fin de la sentencia. As de fcil es programar en Basic. Lo que ocurre es que esta herramienta habla ingls, y lo descrito anteriormente toma la forma: If condicin Then Instrucciones Else Otras instrucciones End If
En este ejemplo, la condicin era que, o se cumple una condicin y ejecuta unas determinadas instrucciones, o no se cumple, y ejecuta otras condiciones distintas. Puede ocurrir que, caso de no cumplirse la condicione primera, se abra un abanico de dos o tres posibilidades. La sentencia condicional tendra entonces la forma: If condicin 1 Then Instrucciones ElseIf Condicin 2 Otras instrucciones ElseIf Condicin 3 Otro juego de instrucciones Else Instrucciones que debe realizar caso de no cumplir las condiciones 1, 2 y 3. End If Como decamos anteriormente, este es el tipo de sentencia condicional mas usada. Existe otra: Select Case Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones: Select Case variable ' variable es una variable que puede tomar los valores (p.e.) de 1 a 4 Case 1 Instrucciones a ejecutar en caso de que variable = 1 Case 2 Instrucciones a ejecutar en caso de que variable = 2 Case 3 Instrucciones a ejecutar en caso de que variable = 3 Case 4 Instrucciones a ejecutar en caso de que variable = 4 End Select Este procedimiento resulta mucho mas sencillo y rpido que las sentencias If Then Else vistas anteriormente, cuando el margen de eleccin es mayor que 2.
Instruccin For Each...Next (Visual Basic) Repite un grupo de instrucciones para cada elemento de una coleccin.
ejemplo. For Each element [ As datatype ] In group [ statements ] [ Exit For ] [ statements ] Next [ element ]
Partes element. Se requiere en la instruccin For Each. Es opcional en la instruccin Next. Variable. Se utiliza para recorrer en iteracin los elementos de la coleccin. datatype. Es obligatorio, a menos que element no se haya declarado ya. Tipo de datos de element. group. Obligatorio. Variable de objeto. Hace referencia a la coleccin sobre la que se debe repetir la ejecucin de statements. statements. Opcional. Una o ms instrucciones entre For Each y Next que se ejecutan en cada elemento de group. Exit For. Opcional. Transfiere el control fuera del bucle For Each. Next.Obligatorio. Termina la definicin del bucle For Each.
Reglas Tipos de datos. El tipo de datos de element debe ser tal que el tipo de datos de los elementos de group se pueda convertir en l. El tipo de datos de group debe ser un tipo de referencia que hace referencia a una coleccin o una matriz. Esto significa que group tiene que hacer referencia a un objeto que implementa la interfaz IEnumerable del espacio de nombres System.Collections o la interfaz IEnumerable del espacio de nombres System.Collections.Generic. IEnumerable define el mtodo GetEnumerator, que devuelve un objeto enumerador para la coleccin. El objeto enumerador implementa la interfaz IEnumerator del espacio de nombres System.Collections y expone la propiedad Current y los mtodos Reset y MoveNext. Visual Basic los utiliza para recorrer la coleccin.
Los elementos de group normalmente son del tipo Object pero pueden tener cualquier tipo de datos en tiempo de ejecucin. *Declaracin. Si element no se ha declarado fuera de este bucle, se debe declarar en la instruccin For Each. En tal caso, el mbito de element es el cuerpo del bucle. Sin embargo, no se puede declarar element fuera y dentro del bucle. * Nmero de iteraciones. Visual Basic slo evala una vez la coleccin, antes de que comience el bucle. Si el bloque de instrucciones cambia element o group, estos cambios no afectan a la iteracin del bucle. * Bucles anidados. Se pueden anidar bucles For Each colocando un bucle dentro de otro. Sin embargo, cada bucle debe tener una variable element nica. Identificar la variable de control. Opcionalmente, puede especificarse element en la instruccin Next. Esto mejora la legibilidad del programa, sobre todo si se han anidado bucles For Each. La variable que se especifique debe ser igual a la que aparece en la instruccin For Each correspondiente. Transferir fuera del bucle. La Instruccin Exit (Visual Basic) transfiere el control inmediatamente a la instruccin que sigue a Next. Por ejemplo, puede ser conveniente salir de un bucle si se detecta una condicin que hace que sea innecesario o imposible continuar la iteracin, como puede ser un valor errneo o una solicitud de finalizacin. Asimismo, si se detecta una excepcin en una instruccin Try...Catch...Finally, se puede utilizar Exit For al final del bloque Finally. Se puede colocar cualquier nmero de instrucciones Exit For en un bucle For Each. Exit For se suele utilizar despus de evaluar alguna condicin, por ejemplo en una estructura If...Then...Else. Bucles sin fin. Un uso de Exit For es comprobar una condicin que pudiera ocasionar un bucle sin fin; es decir, un bucle que pudiera ejecutarse un nmero extremadamente elevado de veces e incluso infinitamente. Si se detecta este tipo de condicin, se puede utilizar Exit For para escapar del bucle. Ejemplo En el ejemplo siguiente se utiliza la instruccin For Each...Next para buscar todos los elementos en una coleccin de la cadena "Hello". El ejemplo supone que ya se ha creado la coleccin thisCollection y que sus elementos son de tipo String. Dim found As Boolean = False Dim thisCollection As New Collection For Each thisObject As String In thisCollection If thisObject = "Hello" Then found = True Exit For End If
Instruccin For...Next (Visual Basic) Repite un grupo de instrucciones un nmero de veces especificado. Partes counter. Se requiere en la instruccin For. Variable numrica. Variable de control para el bucle. datatype. Obligatorio, a menos que counter ya se haya declarado. Tipo de datos de counter. start. Obligatorio. Expresin numrica. Valor inicial de counter. end.Obligatorio. Expresin numrica. Valor final de counter. step. Opcional. Expresin numrica. Cantidad en la que se incrementa counter cada vez que se recorre el bucle. statements.Opcional. Una o ms instrucciones entre For y Next que se ejecutan un nmero especificado de veces. Exit For.Opcional. Transfiere el control fuera del bucle For. Next. Obligatorio. Termina la definicin del bucle For.
EJEMPLO: En el ejemplo siguiente se muestran estructuras For...Next anidadas con valores de incremento diferentes. Dim words, digit As Integer Dim thisString As String = "" For words = 10 To 1 Step -1 For digit = 0 To 9 thisString &= CStr(digit) Next digit thisString &= " " Next words
Instruccin Do...Loop (Visual Basic) Repite un bloque de instrucciones mientras una condicin Boolean sea True o hasta que la condicin se convierta en True. Partes While. Obligatorio si se utiliza Until. Repite el bucle hasta que condition sea False. Until. Obligatorio a menos que se utilice While. Repite el bucle hasta que condition sea True. condition. Opcional. Expresin Boolean. Si condition es Nothing, Visual Basic la trata como False. statements. Opcional. Una o ms instrucciones que se repiten mientras o hasta que condition sea True. Exit Do. Opcional. Transfiere el control fuera del bucle Do. Loop. Obligatorio. Termina la definicin del bucle Do.
EJEMPLO El ejemplo siguiente ilustra las estructuras Do...Loop anidadas, as como el uso de While y Until, y la comprobacin al principio (instruccin Do) y al final (instruccin Loop) del bucle.
Dim check As Boolean = True Dim counter As Integer = 0 Do Do While counter < 20 counter += 1 If counter = 10 Then check = False Exit Do End If Loop Loop Until check = False End Sub
En el ejemplo anterior, la estructura Do...Loop interior se ejecuta 10 veces, establece el valor del indicador en False y sale de forma prematura utilizando la instruccin Exit Do. El bucle externo sale inmediatamente al comprobar el valor del indicado.
Instruccin Select...Case (Visual Basic) Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin. Partes testexpression:Obligatorio. Expresin. Debe evaluarse en uno de los tipos de datos elementales (Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong y UShort).
expressionlist
Requerido en una instruccin Case. Lista de clusulas de expresiones que representan valores que coinciden para testexpression. Las clusulas de varias expresiones se separan mediante comas. Cada clusula puede tomar una de las siguientes formas:
Utilice la palabra clave To para especificar los lmites de un intervalo de valores que coinciden para testexpression. El valor de expression1 debe ser menor o igual que el valor de expression2. Utilice la palabra clave Is con un operador de comparacin (=, <>, <, <=, > o >=) para especificar una restriccin de los valores coincidentes para testexpression. Si no se escribe, la palabra clave Is se insertar automticamente antes de comparisonoperator. La forma de especificar slo expression se trata como un caso especial de la forma Is donde comparisonoperator es el signo igual (=). Esta forma se evala como testexpression = expression.Las expresiones contenidas en expressionlist pueden ser de cualquier tipo de datos, siempre que sean implcitamente convertibles al tipo de testexpression y el correspondiente comparisonoperator sea vlido para los dos tipos con los que se utilice. statements:Opcional. Una o ms instrucciones posteriores a Case que se ejecutan si testexpression coincide con cualquier clusula de expressionlist. elsestatements:Opcional. Una o ms instrucciones posteriores a Case Else que se ejecutan si testexpression no coincide con ninguna clusula de expressionlist de cualquiera de las instrucciones Case. End Select.Termina la definicin la construccin Select...Case.
En el ejemplo siguiente se utiliza una construccin Select Case para escribir una lnea correspondiente al valor de la variable number. La segunda instruccin Case contiene el valor que coincide con el valor actual de number, por lo que se ejecuta la instruccin que escribe "Between 6 and 8, inclusive". Dim number As Integer = 8 Select Case number Case 1 To 5 Debug.WriteLine("Between 1 and 5, inclusive") ' The following is the only Case clause that evaluates to True. Case 6, 7, 8 Debug.WriteLine("Between 6 and 8, inclusive") Case 9 To 10 Debug.WriteLine("Equal to 9 or 10") Case Else Debug.WriteLine("Not between 1 and 10, inclusive") End Select
MATRIZ matriz es un conjunto de valores relacionados lgicamente entre s, como el nmero de estudiantes de cada curso en una escuela primaria. Una matriz permite hacer referencia a estos valores relacionados mediante un mismo nombre y utilizar un nmero, denominado ndice o subndice, para distinguirlos. Los valores individuales se llaman elementos de la matriz. Son contiguos desde el ndice 0 hasta el valor del ndice superior. Ejemplo
En el ejemplo siguiente se declara una variable de matriz para que contenga el nmero de estudiantes de cada curso en una escuela primaria. Dim students(6) As Integer La matriz students del ejemplo anterior contiene 7 elementos. Los ndices de los elementos van de 0 a 6. Tener esta matriz es ms fcil que declarar 7 variables diferentes. En la siguiente ilustracin se muestra la matriz students. Para cada elemento de la matriz: El ndice del elemento representa el curso (el ndice 0 representa el jardn de infancia). El valor contenido en el elemento representa el nmero de estudiantes en ese curso. Elementos de la matriz "students" Imagen de una matriz que muestra el nmero de estudiantes En el ejemplo siguiente se muestra cmo hacer referencia al primer, segundo y ltimo elemento de la matriz students. Dim kindergarten As Integer = students(0) Dim firstGrade As Integer = students(1) Dim sixthGrade As Integer = students(6) MsgBox("Students in kindergarten = " & CStr(kindergarten)) MsgBox("Students in first grade = " & CStr(firstGrade)) MsgBox("Students in sixth grade = " & CStr(sixthGrade))
Puede hacer referencia a la matriz en conjunto utilizando simplemente el nombre de la variable de la matriz sin ndices. Tipos de matriz y otros tipos Tipos de datos
Cada matriz tiene un tipo de datos pero no es igual que el tipo de datos de sus elementos. Por ejemplo, la matriz students del ejemplo anterior es de tipo Integer(), mientras que cada uno de sus elementos es de tipo Integer. La notacin Integer() significa una matriz de elementos Integer. Para obtener ms informacin, consulte Tipos de datos de matrices en Visual Basic.
Cada matriz hereda de la clase System.Array y puede declarar una variable que sea de tipo Array pero no puede crear una matriz de tipo Array. Asimismo, Instruccin ReDim (Visual Basic) no puede funcionar en una variable declarada de tipo Array. Por estas razones y para mayor seguridad del tipo, es aconsejable declarar cada matriz como un tipo especfico, como por ejemplo Integer en el ejemplo anterior. Dimensiones de matriz
La matriz students del ejemplo anterior utiliza un ndice y se dice que es unidimensional. Una matriz que utiliza ms de un ndice o subndice se denomina multidimensional.
Otro tipo de matriz es el que contiene otras matrices como elementos. Esto se conoce como una matriz de matrices o una matriz escalonada. Una matriz escalonada puede ser unidimensional o multidimensional, y lo mismo sucede con sus elementos. Contrastar tipos
A diferencia de una matriz, una variable que contiene un nico valor se llama variable escalar.