Anda di halaman 1dari 19

Profesor.

Luis Umaa, Guatemala 2013

Pgina 1 de 19

Mdulos de Cdigo
El cdigo en Visual Basic se almacena en mdulos. Hay tres tipos de mdulos: de formulario, estndar y de clase. Para nuestro estudio, trabajaremos con los mdulos estndar. Mdulos Estndar Los mdulos estndar pueden contener cdigo que es comn a varios formularios en su aplicacin. Este cdigo es por omisin pblico o global, lo cual significa (disponibles para toda la aplicacin) o a nivel de mdulo de variables, constantes, tipos, procedimientos externos y procedimientos globales. Los mdulos estndar son contenedores de los procedimientos y declaraciones a los que tienen acceso otros mdulos de la aplicacin. El cdigo que se escribe en un mdulo estndar no est ligado necesariamente a una aplicacin determinada; si tiene cuidado de no hacer referencia a controles o formularios por su nombre, puede reusar un mdulo estndar en distintas aplicaciones. Variables Locales v Globales Las variables que intervienen en una aplicacin, pueden ser de dos tipos: variables locales o privadas y variables globales o pblicas. Las variables globales se declaran en un mdulo estndar, al estar declaradas en el mdulo, dichas variables se pueden utilizar (mandar a llamar) en cualquier momento, en cualquier control y en cualquiera de los formularios que contenga la aplicacin, Mientras que las variables locales se declaran en la seccin: Public Class Form1, permitiendo que las variables solo se puedan utilizar en un mismo formulario,tal y como lo hemos estado prcticando hasta el momento en el curso de programacin. Pasos para crear un mdulo estndar: 1) Men Proyecto 2) Agregar Nuevo Elemento 3) En la ventana de Agregar un nuevo elemento, seleccionar la opcin de Mdulo. 4) Dar un nombre al mdulo (o bien dejar el que define VB). 5) Dar clic en el Botn Agregar. 6) En la ventana del Explorador de soluciones (Ctrl + R) verificar que el mdulo se encuentre ah (Module1.vb). Dentro del mdulo para iniciar la declaracin de las variables, no utilizaremos la instruccin reservada Dim (dimensin) sino que emplearemos la instruccin reservada Public (pblico) para que las variables se puedan utilizar en cualquier formulario (se vuelven pblicas o globales). Por ejemplo:

Comparacin de las variables en VB, con respecto a los conjuntos en Matemticas

Conjunto

Contadores Acumuladores y

Profesor. Luis Umaa, Guatemala 2013

Pgina 2 de 19

Estructuras Repetitivas en Visual Basic


Estructuras de Bucle: Las estructuras de bucle o sentencias repetitivas, le permiten ejecutar una o ms lneas de cdigo repetidamente. Las estructuras de bucle que acepta Visual Basic son: a. ForNext b. DoLoop c. WhileEndWhile Definiciones Bsicas: Ciclo, lazo o bucle (loop). Secuencia de instrucciones repetida continuamente hasta que se cumple una determinada condicin de salida del bucle. Iteracin (iteration).Repeticin. En informtica, cualquiera de las acciones realizadas por un bucle en el desarrollo de un programa. Iterar(itrate).Repetir. Las variables que por lo general se utilizan para los ciclos (iteraciones) son las letras: i, j, x, z, as como las palabras; contador (counter), ndice (index). Observacin: en VB .Net se recomienda utilizar palabras y no letras para las variables, ya que algunas letras representan una funcin o palabra reservada.

a. Ciclo For:
siguiente. Sintaxis:

Repite un grupo de instrucciones un nmero de veces especificado. Su formato es el

Forcounter [ As datatype ] = start To end[ Step step ] [ statements ] [ Exit For ] [ statements ] Next[ counter ]

Observacin:

Para facilitar la comprensin de este tema, a continuacin se muestra de otra forma la Sintaxis anterior, la cual utilizaremos en clase (con el Profesor Luis Umaa).

For contador =valor_inicial To valor_final [Step incremento] Instruccin1 Instruccin2 . . InstruccionN Next [contador]

Profesor. Luis Umaa, Guatemala 2013

Pgina 3 de 19

Partes Counter (contador) 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. ExitFor Opcional. Transfiere el control fuera del bucle For. Next Obligatorio. Termina la definicin del bucle For. Comentarios Utilice una estructura For...Next cuando desee repetir un conjunto de instrucciones un nmero fijo de veces. Una InstruccinWhile...EndWhile o una Instruccin Do...Loop funciona bien cuando no se sabe de antemano cuntas veces se necesita ejecutar las instrucciones del bucle. Sin embargo, cuando espere ejecutar el bucle un nmero concreto de veces, For...Next es una mejor eleccin. Determina el nmero de iteraciones cuando se entra en el bucle por primera vez. El valor de step puede ser positivo o negativo. Determina el procesamiento del bucle como sigue: Valor de step Positivo o cero El bucle se ejecuta si counter<= end

Negativo
Si no se especifica, el valor predeterminado de step es 1.

counter>= end

Profesor. Luis Umaa, Guatemala 2013

Pgina 4 de 19

Ejemplo 1: Disear la aplicacin que muestre los nmeros del 0 al 10, empleando para ello la Estructura ForNext.

Solucin; Cuando escribe un programa, debe repetir las acciones con frecuencia. Por ejemplo, suponga que est escribiendo un mtodo que muestra una serie de nmeros en pantalla. Desear repetir la lnea de cdigo que muestra el nmero, las veces que sea necesario. El bucle For...Next le permite especificar un nmero y repetir un cdigo contenido dentro de ese bucle para el nmero especfico de veces. Para programar el ciclo For, primero necesitamos disear el formulario con un Control Button1 (activara el cdigo) y un Control Label1 (mostrar los nmeros en pantalla).

Despus

de

haber

agregado

los

controles, le damos doble Mtodo Clic.

clic al

control Button1 y programamos en el

Al ejecutar el cdigo anterior (F5) al darle clic al botn, podemos apreciar que en el Label1, solo se puede leer el nmero 10 y no todo el rango de 0 a 10 y esto es debido a que el ciclo For, ejecuto por cada iteracin el nmero siguiente que le corresponda a

Profesor. Luis Umaa, Guatemala 2013

Pgina 5 de 19

la variable i, pero en la misma posicin del control Label1, y de una forma muy rpida que ni siquiera el usuario pudo ver pasar todos los nmeros, si lo que se quiere es ver todo el rango numrico, entonces ejecute el siguiente cdigo, empleando la concatenacin de cadenas. Ejemplo 2: Disear la aplicacin que muestre el abecedario en minscula, en un control Label1. Emplear la Estructura ForNext. Solucin; Para poder mostrar el abecedario, utilizando la estructura For, es necesario comprender que la variable de Control del For, ha de ser numrica y no de tipo carcter (string) es por ello que para la solucin de este programa, utilizaremos la funcin Chr (convierte el valor numrico ASCII a su equivalente en carcter) la cual nos permitir mostrar las letras. Para este caso, el abecedario en minscula en la Tabla ASCII, est comprendido por los cdigos del 97 al 122 y el abecedario en mayscula por los cdigos del 65 al 90. Al igual que en el ejemplo 1, se necesita un Control Button1 y un Control Label1 y la programacin es:

Ejemplo 3: Disear la aplicacin que solicite al usuario ingrese una palabra, una frase o un carcter como el (cadena), nmero as de

veces que quiere que se repita dicha expresin. Solucin; Almacenar en diferentes

variables los datos introducidos por el usuario (cadena y nmero) con los datos ya almacenados en la sintaxis de la Estructura For es necesario establecer como valor_inicial 1 y como valor_final la variable numero. Los controles a utilizar son: Al control TextBox3 modificarle las propiedades: Multiline = True (Controla si el texto puede abarcar ms de una lnea). ScrollBars= Vertical (Habilita barras de desplazamiento).

Profesor. Luis Umaa, Guatemala 2013

Pgina 6 de 19

Contadores Acumuladores y Banderas


Contador (counter): En programacin una variable tipo contador es aquella que va incrementando o decrementando su valor de modo constante. La instruccin que representa a un contador es la siguiente: Contador = Contador + 1 (incremento) bien Contador = Contador 1 (decremento) Acumulador (accumulator): Un acumulador o totalizador es una variable cuya misin es almacenar cantidades variables resultantes de sumas sucesivas. Realiza la misma funcin que un contador, con la diferencia de que el incremento o decremento de cada suma o resta es variable en lugar de ser constante. Se representa por la instruccin: Acumulador = Acumulador + N (incremento) bien Acumulador = Acumulador - N (decremento) {donde N es un valor diferente a 1} Regla: Cuando se utiliza un Contador o un Acumulador en un 90% se ha de inicializar a cero (0) dichas variables. Esto puede variar, segn las especificaciones del programa o bien el anlisis realizado por el programador. Para realizar dicha inicializacin se le recomienda que lo programe en el Mtodo Form_Load(). Ejemplo: Public Class Form1 Dim contador As Byte Dim acumulador As Double Private Sub Form1_Load() contador = 0 acumulador = 0 End Sub Private Sub Button1_Click() Label1.Text = contador contador = contador + 1 Label2.Text = acumulador acumulador = acumulador + 10 End Sub End Class Bandera (flag): Es una variable de tipo boolean (true or false) o bien con un valor de 1 o 0 (encendido y apagado). Cuando en un Programa una condicin se cumple, la bandera se activa (1) y por lo tanto si no se cumple la condicin la bandera no se activara y queda con (0).

Control CheckBox
El control CheckBox de los formularios Windows Forms indica si una condicin determinada est activada o desactivada. Se utiliza habitualmente para presentar al usuario una seleccin de tipo S/No o Verdadero/Falso. Puede utilizar grupos de casillas para mostrar mltiples opciones entre las cuales el usuario puede elegir una o ms. Ejemplo: Insertar un control CheckBox1, el cual al darle clic, deber de cambiar su mensaje (propiedad text) segn el estado actual (seleccionado o no seleccionado). La programacin quedara as:

Profesor. Luis Umaa, Guatemala 2013 Public Class Form1 Private Sub CheckBox1_CheckedChanged() If CheckBox1.Checked = True Then CheckBox1.Text = "Checked" Else CheckBox1.Text = "Unchecked" End If End Sub End Class Control RadioButton

Pgina 7 de 19

Los controles RadioButton de formularios Windows Forms presentan al usuario un conjunto de dos o ms opciones excluyentes entre s. Aunque puede parecer que los botones de opcin y las casillas de verificacin funcionan de forma parecida, existe una diferencia importante: cuando un usuario selecciona un botn de opcin, no puede seleccionar ninguno de los otros botones de opcin del mismo grupo sin perder la seleccin de este botn. En cambio, es posible activar tantas casillas de verificacin como se desee. Al definir un grupo de botones de opcin, se indica al usuario que "tiene este conjunto de opciones entre las que puede elegir una y solamente una".

Para crear una tecla de acceso para un control


Establezca la propiedad Text como una cadena que incluya un signo de Y comercial (&) antes de la letra que se convertir en acceso directo. Ejemplo: Radiobutton1.Text = Pastel de &Fresa Radiobutton2.Text = Pastel de &Chocolate Radiobutton3.Text = &Helado Para lo anterior las letras que aparecern subrayadas son la F la C y la H. Al presionar la Tecla Alt + la letra subrayada, la opcin queda seleccionada

Si se establece la propiedad Appearance en Button, el control RadioButton puede tener la apariencia de un botn de comando, que parece estar presionado cuando est seleccionado. Los botones de opcin tambin muestran imgenes mediante las propiedades Image y ImageList. Para agrupar controles RadioButton en un conjunto, de modo que funcionen de forma independiente 1. Arrastre un control GroupBox o Panel de la seccin de Controles Contenedores del Cuadro de herramientas, hasta el formulario. 2. Dibuje los controles RadioButton en el control GroupBox o Panel. Ejemplo:

GrpupBox1

RadioButton1 RadioButton2 RadioButton3

Label1

Profesor. Luis Umaa, Guatemala 2013 Public Class Form1 Dim cuenta As Double Private Sub RadioButton1_CheckedChanged() If RadioButton1.Checked = True Then cuenta = cuenta + 7.25 Label1.Text = "Q" & FormatNumber(cuenta, 2) Else cuenta = cuenta - 7.25 Label1.Text = "Q" & FormatNumber(cuenta, 2) End If End Sub Private Sub RadioButton2_CheckedChanged() If RadioButton2.Checked = True Then cuenta = cuenta + 9.5 Label1.Text = "Q" & FormatNumber(cuenta, 2) Else cuenta = cuenta - 9.5 Label1.Text = "Q" & FormatNumber(cuenta, 2) End If End Sub Private Sub RadioButton3_CheckedChanged() If RadioButton3.Checked = True Then cuenta = cuenta + 4 Label1.Text = "Q" & FormatNumber(cuenta, 2) Else cuenta = cuenta - 4 Label1.Text = "Q" & FormatNumber(cuenta, 2) End If End Sub Private Sub Form1_Load() cuenta = 0 End Sub End Class Control ComboBox

Pgina 8 de 19

El control ComboBox de los formularios Windows Forms se utiliza para mostrar datos en un cuadro combinado desplegable. De forma predeterminada, el control ComboBox aparece en dos partes: la parte superior es un cuadro de texto que permite al usuario escribir un elemento de la lista. La segunda parte es un cuadro de lista que muestra una lista de elementos, de los cuales el usuario puede seleccionar uno. La propiedad SelectedIndex devuelve un valor entero que corresponde al elemento seleccionado en la lista. Para cambiar mediante programacin el elemento seleccionado, cambie el valor de SelectedIndex en el cdigo; el elemento correspondiente de la lista aparecer en la parte de cuadro de texto del cuadro combinado. Si no se selecciona ningn elemento, el valor de SelectedIndex es -1. Si se selecciona el primer elemento de la lista, el valor de SelectedIndex es 0. La propiedad SelectedItem es similar a SelectedIndex, pero devuelve el elemento en s, normalmente un valor de cadena. La propiedad Count refleja el nmero de elementos de la lista. El valor de la propiedad Count es siempre una unidad ms que el mximo valor posible para SelectedIndex, ya que SelectedIndex est basada en cero. Para agregar o eliminar los elementos en un control ComboBox, utilice el mtodo Add, Insert, Clear o Remove. Tambin puede agregar elementos a la lista mediante la propiedad Items en el diseador.

Profesor. Luis Umaa, Guatemala 2013

Pgina 9 de 19

Para agregar elementos: Agregue la cadena u objeto a la lista mediante el mtodo Add.. Se hace referencia a la coleccin mediante la propiedad Items.

ComboBox1.Items.Add("Tokyo")
Para quitar un elemento: Llame al mtodo Remove o RemoveAt para eliminar elementos. Remove tiene un argumento que especifica el elemento que se va a quitar. RemoveAt quita el elemento con el nmero de ndice especificado.

' Elimina al elemento con posicin 0 ComboBox1.Items.RemoveAt(0) ' Elimina el elemento que fue seleccionado directamente ComboBox1.Items.Remove(ComboBox1.SelectedItem) ' Elimina el elemento "Tokyo" ComboBox1.Items.Remove("Tokyo")
Para quitar todos los elementos: Llame al mtodo Clear para quitar todos los elementos de la coleccin:

ListBox1.Items.Clear()
Para ordenar la lista: Establezca la propiedad Sorted en true. Esta configuracin cambia de posicin todos los elementos de lista existentes de forma ordenada.

Control ListBox
Un control ListBox de formularios Windows Forms muestra una lista de elementos entre los que el usuario puede seleccionar uno o ms. Si el nmero total de elementos supera el nmero que se puede mostrar, se agrega automticamente una barra de desplazamiento al control ListBox. Cuando la propiedad MultiColumn se establece en true, el cuadro de lista muestra elementos en varias columnas y aparece una barra de desplazamiento horizontal. Cuando la propiedad MultiColumn se establece en false, el cuadro de lista muestra los elementos en una sola columna y aparece una barra de desplazamiento vertical. Cuando ScrollAlwaysVisible se establece en true, la barra de desplazamiento aparece, independientemente del nmero de elementos. La propiedad SelectionMode determina cuntos elementos de la lista pueden seleccionarse a la vez.

Nota: Para agregar o eliminar los elementos en un control ListBox (al igual que en el control ComboBox),
utilice el mtodo Add, Insert, Clear o Remove. Tambin puede agregar elementos a la lista mediante la propiedad Items en el diseador. Ejemplo: Se le solicita que disee la aplicacin que predeterminadamente tenga los nombres de los pases de Centroamrica, agregados en un Control ComboBox, y que al darle clic a cualquiera de los elementos de la lista (tems) los pase (agregue) a un Control ListBox.

ComboBox1 ListBox1

Ejemplo

Profesor. Luis Umaa, Guatemala 2013


Public Class Form1 Private Sub Form1_Load() 'Programe en el Mtodo Form_Load para 'agregar predefinidamente los elementos que 'necesita, al control ComboBox ComboBox1.Items.Add("Guatemala") ComboBox1.Items.Add("El Salvador") ComboBox1.Items.Add("Honduras") ComboBox1.Items.Add("Nicaragua") ComboBox1.Items.Add("Costa Rica") ComboBox1.Items.Add("Panam") End Sub Private Sub ComboBox1_SelectedIndexChanged()
'Programe en el Mtodo ComboBox_SelectedIndexChanged

Pgina 10 de 19

'o en el Mtodo Click para comparar el 'elemento seleccionado y asi ejecutar cierta accin If ComboBox1.SelectedIndex = 0 Then ListBox1.Items.Add("Guatemala") End If If ComboBox1.SelectedIndex = 1 Then ListBox1.Items.Add("El Salvador") End If If ComboBox1.SelectedIndex = 2 Then ListBox1.Items.Add("Honduras") End If If ComboBox1.SelectedIndex = 3 Then ListBox1.Items.Add("Nicaragua") End If If ComboBox1.SelectedIndex = 4 Then ListBox1.Items.Add("Costa Rica") End If If ComboBox1.SelectedIndex = 5 Then ListBox1.Items.Add("Panam") End If End Sub End Class

Funcin MsgBox
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn y devuelve un entero que indica el botn utilizado. Los cuadros de mensaje ofrecen un modo simple y rpido de consultar a los usuarios por informacin simple o para permitirles tomar decisiones sobre el camino que su programa debe tomar. Puede usar esta funcin para mostrar diferentes tipos de mensaje y botones con los cuales el usuario da una respuesta. Parte Prompt Descripcin Obligatorio. Expresin de tipo String que se muestra como mensaje en el cuadro de dilogo. La longitud mxima de Prompt es de aproximadamente 1024 de caracteres, segn el ancho de los caracteres utilizados. Si prompt consta de ms de una lnea, puede separar las lneas mediante un carcter de retorno de carro (Chr(13) ) o un carcter de avance de lnea (Chr(10)), o una combinacin de caracteres de retorno de carro - avance de lnea (Chr(13 y Chr(10) ) entre cada lnea. Opcional. Expresin numrica que corresponde a la suma de los valores que especifican el nmero y el tipo de los botones que se han de mostrar, el estilo de icono que se va a usar, la identificacin del botn predeterminado y la modalidad del cuadro de mensaje. Si se omite Buttons, el valor predeterminado ser cero. Opcional. Expresin de tipo String que se muestra en la barra de ttulo del cuadro de dilogo. Si se omite Title, en la barra de ttulo aparecer el nombre de la aplicacin.

Buttons

Title

Profesor. Luis Umaa, Guatemala 2013

Pgina 11 de 19

Valores: En la siguiente tabla se incluyen los valores de enumeracin de MsgBoxStyle: Constante Valor Descripcin OKOnly 0 Muestra solamente el botn Aceptar. OKCancel 1 Muestra los botones Aceptar y Cancelar. AbortRetryIgnore 2 Muestra los botones Anular, Reintentar y Omitir YesNoCancel 3 Muestra los botones S, No y Cancelar. YesNo 4 Muestra los botones S y No. RetryCancel 5 Muestra los botones Reintentar y Cancelar. Critical 16 Muestra el icono de Mensaje crtico. Question 32 Muestra el icono de Consulta de advertencia. Exclamation 48 Muestra el icono de Mensaje de advertencia. Information 64 Muestra el icono de Mensaje de informacin. DefaultButton1 0 El primer botn es el predeterminado. DefaultButton2 256 El segundo botn es el predeterminado. DefaultButton3 512 El tercer botn es el predeterminado. DefaultButton4 768 El cuarto botn es el predeterminado. ApplicationModal 0 Aplicacin modal; el usuario debe responder al cuadro de mensajes antes de continuar trabajando en la aplicacin actual. SystemModal 4096 Sistema modal; se suspenden todas las aplicaciones hasta que el usuario responda al cuadro de mensajes. MsgBoxSetForeground 65536 Especfica la ventana del cuadro de mensaje como ventana de primer plano. MsgBoxRight 524288 Texto alineado a la derecha. MsgBoxRtlReading 1048576 Especfica que el texto debe aparecer para ser ledo de derecha a izquierda en los sistemas rabe y hebreo. El primer grupo de valores (0 a 5) describe el nmero y el tipo de los botones mostrados en el cuadro de dilogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512, 768) determina qu botn es el predeterminado. El cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes. El quinto grupo especifica si el cuadro de mensaje es la ventana de primer plano, junto con la alineacin y la direccin del texto. A la hora de sumar nmeros para crear el valor final del argumento Buttons, se deber utilizar nicamente un nmero de cada grupo. Nota: Estas constantes las especifica Visual Basic. Por tanto, el nombre de las mismas puede utilizarse en cualquier lugar del cdigo en vez de sus valores reales. Valores devueltos Constante Valor Ok Cancel Abort Retry Ignore Yes No 1 2 3 4 5 6 7

Descripcin Aceptar Cancelar Anular Reintentar Ignorar S No

Cuadro de Dilogo de la Funcin MsgBox

Profesor. Luis Umaa, Guatemala 2013

Pgina 12 de 19

Ejemplo:
Public Class Form1 Dim usuario As String, contrasea As String, Respuesta As String Private Sub Button1_Click() If (usuario = TextBox1.Text) And (contrasea = TextBox2.Text) Then Me.Hide() Form2.Show() Else Respuesta = MsgBox("Datos Incorrectos - Intente de Nuevo", MsgBoxStyle.OkCancel + MsgBoxStyle.Critical, "Error" If Respuesta = 1 Then TextBox1.Text = "" TextBox2.Text = "" TextBox1.Focus() End If If Respuesta = 2 Then End End If End If End Sub Private Sub Form1_Load() usuario = "programacin" contrasea = "123" End Sub End Class

Esto va en una sola lnea

Estructuras de Datos
ESTRUCTURAS DE DATOS Una estructura de datos es una coleccin de datos que pueden ser caracterizados por su organizacin y las operaciones que se definen en ella. Las estructuras de datos son muy importantes en los sistemas de computadora. Los tipos de datos ms frecuentes utilizados en los diferentes lenguajes de programacin son: Datos estructurados ** Dinmicos ** ** Estticos ** Listas (pilas/colas) Arrays (vectores/matrices) Listas enlazadas Registros (record) rboles Ficheros (archivos) Grafos Conjuntos (set) Cadenas (string) En muchas situaciones se necesita, sin embargo, procesar una coleccin de valores que estn relacionados entre s por algn mtodo, por ejemplo, una lista de calificaciones, una serie de temperaturas medidas a lo largo de un mes, etc. El procesamiento de tales conjuntos de datos, utilizando datos simples, puede ser extremadamente difcil y por ello la mayora de los lenguajes de programacin incluyen caractersticas de estructuras de datos. Las estructuras de datos bsicas que soportan la mayora de los lenguajes de programacin son los arrays concepto matemtico de <vector> y <matriz>-. Un array o arreglo en Latinoamrica es una secuencia de posiciones de la memoria central a las que se puede acceder directamente, que contiene datos del mismo tipo y pueden ser seleccionados individualmente mediante el uso de subndices.

Profesor. Luis Umaa, Guatemala 2013

Pgina 13 de 19

Arrays
Un array es un conjunto finito y ordenado de elementos homogneos. La propiedad <ordenado> significa que el elemento primero, segundo, tercero, , ensimo de un array puede ser identificado. Los elementos de un array son homogneos, es decir, del mismo tipo de datos. Un array puede estar compuesto de todos sus elementos de tipo cadena, otro puede tener todos sus elementos de tipo entero, etc. Los arrays se conocen tambin como matrices en matemticas- y tablas en clculo financieros-.

A r r a y s U n i d im e n s io n a l e s : Los Vectores o Listas

El tipo ms simple de array es el array unidimensional o vector (dicho de otra manera, una matriz de una dimensin). Un vector de una dimensin denominado Personal que consta de 5 elementos se puede representar grficamente de la siguiente manera: Formato 1 (horizontalmente)

Vector Personal

Mauricio

Gabriela

Samuel

Andrea

Oscar

3 ndice o subndice

Formato 2 (verticalmente)

1 ndice o subndice 2 3 4 5

Mauricio Gabriela Samuel Andrea Oscar


Vector Personal

El subndice o ndice de un elemento (1, 2, . . . , n) designa su posicin en la ordenacin del vector. Obsrvese que slo el vector global tiene nombre (Personal). Los elementos del vector se referencian por su subndice o ndice (<<subscript>>), es decir, su posicin relativa en el valor. El valor mnimo permitido de un vector se denomina lmite inferior del vector (L) y el valor mximo permitido se denomina lmite superior (U). En el ejemplo del vector Personal el lmite inferior es 1 y el superior 5. Los Arreglos se utilizan para almacenar un conjunto de variables, que sean del mismo tipo de dato, y todas estas bajo un mismo nombre. Por ejemplo imaginemos que tenemos 20 variables de tipo String que almacenan nombres (nombre1, nombre2, etc..). si yo ahora quisiera pasar todas estas cadenas a minsculas tendra que utilizar la funcin Lcase con cada variable: nombre1 = Lcase(nombre1), nombre2 = Lcase(nombre2), etc.. En cambio si utilizara un arreglo solucionara mi problema solo a esto

Profesor. Luis Umaa, Guatemala 2013

Pgina 14 de 19

Dim nombres (29) As String For x = 0 To 29 nombres(x) = LCase(nombres(x)) Next


Siguiendo el ejemplo anterior: en vez de escribir la sentencia Lcase 30 veces para cada variable, hemos utilizado un arreglo llamado nombres con un nmero de ndice 29, es decir que almacena 30 datos de tipo String. Los vectores se almacenan en memoria central de la computadora en un orden adyacente . As, un vector de cincuenta nmeros denominado NUMEROS se representa grficamente por cincuenta posiciones de memoria sucesiva. Cada elemento de un Vector se puede procesar como si fuese una variable simple al ocupar una posicin de memoria.

1.1 Declaracin de los arreglos en el cdigo en Visual Basic .Net


Para crear un arreglo se debe en primer lugar declararlo como cualquier otra variable, la nica diferencia es que debemos indicar la cantidad de elementos que contendr el arreglo, colocando el nmero de ndice entre parntesis. Por ejemplo: Lo siguiente crea un arreglo de 15 elementos o datos de tipo integer

Dim miArreglo (0 to 14) as integer


Esto crea un arreglo de 11 elementos o datos de tipo String

Dim Alumnos (10) as string


Como podemos ver en el primer ejemplo hemos declarado un arreglo llamado miArreglo y entre parntesis hemos declarado el rango de capacidad del mismo, es decir la cantidad de datos que podr contener El primer nmero, el 0, indica el lmite inferior del mismo, y el nmero 14 indica el lmite mximo del arreglo, conformando de esta manera un arreglo que podr almacenar 15 datos de tipo string. En el segundo ejemplo, declaramos un arreglo de 11 elementos de tipo string. Como se puede ver, hemos indicado solo un nmero que representa el valor mximo del mismo. Cabe aclarar que hemos puesto de ndice el nmero 10, pero en realidad el arreglo contiene 11 elementos ya que cuando NO indicamos el lmite inferior, se asume que el mismo comienza desde el 0.

1.2 - Acceder a los datos de un arreglo


Para acceder a los datos de un arreglo o vector, debemos hacerlo mediante el ndice o nmero del elemento del mismo. Por ejemplo:

Dim alumnos (0 To 3) As String alumnos(0) = "juan" alumnos(1) = "micaela" alumnos(2) = "mara" alumnos(3) = "ignacio"

Profesor. Luis Umaa, Guatemala 2013

Pgina 15 de 19

Primero declaramos un arreglo llamado alumnos, de tipo string y que contendr 4 elementos. Luego le asignamos un valor de cadena como a cualquier otra variable de tipo string, pero con la diferencia que para referirnos al elemento utilizamos el n de ndice del mismo. Otro ejemplo:

Dim pases (2) As String ' Llena el vector con datos paises(0) = "Argentina" paises(1) = "Per" paises(2) = "Brasil" ' Recorre los elementos del vector For x = 0 To 2 MsgBox "Nombre del pas : " & paises(x) Next x
En este ltimo ejemplo, declaramos y creamos un vector de 3 elementos que contendr el nombre de 3 pases. Luego en un bucle For utilizamos la funcin MsgBox para mostrar los elementos del arreglo, pasndole como parmetro del ndice la variable x del bucle For. Las operaciones que se pueden realizar con vectores durante el proceso de resolucin de un programa son: Asignacin, Lectura/escritura, Recorrido (acceso secuencial), Actualizar (aadir, borrar, insertar), Ordenacin, Bsqueda.

A r r a y s d e V a r i a s D i m e n s i o n es : Matrices y Tablas.
Los vectores examinados hasta ahora se denominan arrays unidimensionales y en ellos cada elemento se define o referencia por un ndice o subndice. Estos vectores son elementos de datos escritos en una secuencia. Sin embargo, existen grupos de datos que son representados mejor en forma de tablas o matrices con dos o ms subndices. Ejemplos tpicos de tablas o matrices son: tablas de distancia kilomtricas entre ciudades, cuadros horarios de trenes o aviones, informes de ventas peridicas (mes/unidades vendidas o bien mes/ventas totales), etc. Se pueden definir tablas o matrices como arrays multidimensionales, cuyos elementos se pueden referenciar por dos, tres o ms subndices. Los arrays no unidimensionales los dividiremos en dos grandes grupos: Arrays Bidimensionales (2 dimensiones) Conocidos como Matrices Arrays Multidimensionales (3 o ms dimensiones) Conocidos como Tablas

Arrays Bidimensionales (Matrices)


El array bidimensional se puede considerar como un vector de vectores. Es, por consiguiente, un conjunto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y en el que se necesita especificar dos subndices para poder identificar cada elemento del array. Si se visualiza un array unidimensional, se puede considerar como una columna de datos; un array bidimensional es un grupo de columnas, como se ilustra en la imagen de abajo. El diagrama representa una tabla o matriz de treinta elementos (5 X 6) con 5 filas y 6 columnas. Como en un vector de treinta elementos, cada uno de ellos tiene el mismo nombre. Sin embargo, un subndice no es suficiente para especificar un elemento de un array bidimensional; por ejemplo, si el subndice no es suficiente para especificar un elemento de un array bidimensional; por ejemplo, si el nombre del array es M, no se puede

Profesor. Luis Umaa, Guatemala 2013

Pgina 16 de 19

indicar M(3), ya que no sabemos si es el tercer elemento de la primera fila o de la primera columna. Para evitar la ambigedad, los elementos de un array bidimensional se referencian con dos subndices: el primer subndice se refiere a la fila y el segundo subndice se refiere a la columna. Por consiguiente, M(2, 3) se refiere al elemento de la segunda fila, tercera columna. En nuestra tabla de ejemplo M(2, 3) contiene el valor 18.

18

Un array bidimensional M, tambin denominado matriz (trminos matemticos) o tabla (trminos financieros), se considera que tiene dos dimensiones (una dimensin por cada subndice) y necesita un valor para cada subndice para poder identificar un elemento individual. En notacin estndar, normalmente el primer subndice se refiere a la fila del array, mientras que el segundo subndice se refiere a la columna del array. Ejemplo de matriz de 2 dimensiones Matriz bidimensional de 6 x 8 (de 2 dimensiones). Dim personas (1 to 6, 1 to 8) as string Si luego quisiera acceder a los datos de la misma basta con referirnos a los subndices Por ejemplo: personas (1, 1) = "Natalia" personas (2, 1) = "pedro" personas (1, 7) = "valeria" personas (1, 8) = "jos" personas (2, 2) = "carolina" personas (4, 1) = "raquel" personas (6, 2) = "eustaquio" personas (6, 5) = "maria" personas (6, 8) = "mariana" El total de ndices posibles para almacenar datos o valores en el ejemplo anterior es de 48 datos, ya que si multiplicamos 6 x 8 nos da como total 48 valores posibles para utilizar en la matriz bidimensional. Un ejemplo tpico de un array bidimensional es un tablero de ajedrez. Se puede representar cada posicin o casilla del tablero mediante un array, en el que cada elemento es una casilla y en el que su valor ser un cdigo representativo de cada figura del juego.

Profesor. Luis Umaa, Guatemala 2013


Los diferentes elementos sern: elemento(i, j) = 0 si no hay nada en la casilla (i, j) elemento(i, j) = 1 si el cuadro (casilla) contiene un pen blanco elemento(i, j) = 2 un caballo blanco elemento(i, j) = 3 un alfil blanco elemento(i, j) = 4 una torre blanca elemento(i, j) = 5 una reina blanca elemento(i, j) = 6 un rey blanco

Pgina 17 de 19

y los correspondientes nmeros, negativos para las piezas negras. AHORA VEAMOS UN EJEMPLO de un ARREGLO MULTIDIMENSIONAL de 3 DIMENSIONES de 3 x 3 x 3 Dim cubo (1 to 3, 1 to 3, 1 to 3) as integer Para acceder a los datos sera exactamente de la misma manera, que se explico anteriormente, pero debemos utilizar un ndice ms. Ejemplo: cubo (1, 1 , 1) = 50 cubo (1, 1 , 2) = 50 cubo (1, 1 , 3) = 50 cubo (1, 2 , 1) = 50 cubo (1, 2 , 2) = 50 cubo (1, 2 , 3) = 50 cubo (1, 3 , 1) = 50 cubo (1, 3 , 2) = 50 cubo (1, 3 , 3) = 50 etc En el ejemplo anterior, que es un poco extenso, es para que veas todos los posibles valores que puedes almacenar en una matriz de 3 x 3 x 3, y que da como resultado un arreglo de 27 valores posibles. Ejemplo de un Arreglo Multidimensional de 3 dimensiones:

As podramos visualizar un arreglo tridimensional de 5x8x6. Como ven es un arreglo de tablas que estaran todas bien pegadas formando un prisma. Nosotros debemos indicar en qu fila y columna est nuestra celda y en cual tabla de todas. Siempre indicamos (fila, columna, tabla). El punto rojo correspondera a la posicin (4,8,3) por estar en la cuarta fila, octava columna de la tercera tabla. El azul correspondera a la posicin (1,3,6).

Profesor. Luis Umaa, Guatemala 2013

Pgina 18 de 19

Ejemplo 1: Se le pide que disee la solucin de la aplicacin que permita el Ingreso de los Nombres de 5 trabajadores de una empresa que se dedica a la Venta de Software. La informacin ha de ser almacenada en un Arreglo Unidimensional (Vector) llamado Empleados, con un lmite superior (ndice) de 4 posiciones (recuerde que el lmite inferior empieza en 0). Agregar un botn para Almacenar (guardar) los nombres en cada posicin o casilla del Array y un botn de Reporte, el cual mostrara la informacin almacenada, en un Control ListBox. Al llenarse el Vector, utilizar la funcin MsbBox para indicarlo, as como deshabilitar el botn de almacenar (ya que no habr ms espacio en el Vector y por lo tanto, marcaria error el programa). Solucin: Se necesita 2 Label, 1 TextBox, 2 Button y un control ListBox.

Public Dim Dim Dim

Class Form1 Empleados(0 To 4) As String contador As Integer counter1 As Byte

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text = "" Then MsgBox("Ingrese un Nombre Por Favor") TextBox1.Focus() Else contador = contador + 1 Label2.Text = "Nombre almacenado en el ndice: " & contador If contador >= 0 And contador <= 4 Then Empleados(contador) = TextBox1.Text TextBox1.Clear() TextBox1.Focus() End If If contador = 4 Then Button1.Enabled = False MsgBox("Vector lleno, con 5 Empleados") End If End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load contador = -1 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Clear() For counter = 0 To contador ListBox1.Items.Add(Empleados(counter)) Next End Sub End Class

No importando si el Vector est lleno o no si se le da clic al botn de Reporte, se mostrara en el ListBox la informacin.

Profesor. Luis Umaa, Guatemala 2013

Pgina 19 de 19

Ejemplo 2: Se le pide que disee la solucin de la aplicacin que permita el Ingreso de los Nombres de 5 estudiantes de la Carrera de Ingenieria en Sistemas. La informacin ha de ser almacenada en un Arreglo Unidimensional (Vector) llamado Alumnos, con un lmite superior (ndice) de 4 posiciones (recuerde que el lmite inferior empieza en 0). A diferencia del ejemplo anterior, se le solicita que no coloque ningn botn para almacenar o para indicar que se visualice la informacin, para ello es necesario que programe el mtodo PreviewKeyDown del control TextBox1 para que por cada nombre ingresado, se presione la Tecla Enter, permitiendo as: Almacenar el nombre en el ndice correspondiente (casilla). Visualizar en un Control ListBox, el nombre almacenado. Adicional a ello, cuando el Vector este lleno, indicarlo a travs de la Funcin MsgBox. Solucin: Se necesita 1 Label, 1 TextBox, y un control ListBox. Public Class Form1 Dim Alumnos(0 To 4) As String Dim contador As Byte Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows. Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown If e.KeyCode = Keys.Enter Then Alumnos(contador) = TextBox1.Text ListBox1.Items.Add(Alumnos(contador)) contador = contador + 1 TextBox1.Clear() TextBox1.Focus() If contador > 4 Then TextBox1.Enabled = False MsgBox("Vector de Alumnos lleno") End If End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load contador = 0 End Sub End Class

Anda mungkin juga menyukai