GUÍA DE LABORATORIO GL-PCS2201-L16O MANEJO DE MATRICES EN VISUAL BASIC CARRERA: 441402 INGENIERÍA DE EJECUCIÓN EN ELECTRICIDAD Y ELECTRÓNICA 444803 TÉCNICO EN ELECTRICIDAD Y ELECTRÓNICA ASIGNATURA: PCS2201 “PROGRAMACIÓN DE COMPUTADORES” SEMESTRE: II PROFESOR: GUILLERMO BADILLO A. 1. Introducción La siguiente actividad tiene como finalidad familiarizar al alumno con el manejo de matrices (arreglos) del lenguaje de programación Visual Basic. 2. Objetivos Al completar esta guía el alumno será capaz de: Conocer el concepto de una matriz Nombrar, declarar, inicializar y utilizar matrices. 3. Duración 90 minutos 4. Prerrequisitos Antes de realizar esta guía el alumno debe haber realizado satisfactoriamente la guía GL-PCS2201 L07M MANEJO DEL ENTORNO DE DESARROLLO INTEGRADO DE VISUAL BASIC 5. Bibliografía previa Autor: Halvorson, Michael. Título: “Aprenda ya Microsoft Visual Basic.Net” Editorial: Madrid: McGraw-Hill, 2002 6. Marco teórico Matrices en Visual Basic (Arreglos) Al utilizar matrices, puede emplear el mismo nombre para hacer referencia a distintos valores gracias a la utilización de un número denominado índice o subíndice que permite distinguirlos. Las matrices pueden reducir y simplificar el código, permitiendo crear bucles que gestionan de forma eficiente cualquier número de elementos. Información general sobre matrices en Visual Basic Una matriz es un conjunto de valores relacionados lógicamente entre sí, como el número 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 número, denominado índice o subíndice, para distinguirlos. Los valores individuales se llaman elementos de la matriz. Son contiguos desde el índice 0 hasta el valor del índice superior. GUÍA DE LABORATORIO Ejemplo En el ejemplo siguiente se declara una variable de matriz para que contenga el número 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 más fácil que declarar 7 variables diferentes. En la siguiente ilustración se muestra la matriz students. Para cada elemento de la matriz: El índice del elemento representa el curso (el índice 0 representa el jardín de infancia). El valor contenido en el elemento representa el número de estudiantes en ese curso. Elementos de la matriz "students" En el ejemplo siguiente se muestra cómo 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 notación Integer() significa una matriz de elementos Integer. 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, Instrucción ReDim (Visual Basic) no puede funcionar en una variable declarada de tipo Array. Por estas razones y para mayor seguridad del GUÍA DE LABORATORIO tipo, es aconsejable declarar cada matriz como un tipo específico, 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 más de un índice o subíndice 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. Cómo: Declarar una variable de matriz Una variable de matriz se declara de la misma manera que cualquier otra variable mediante la instrucción Dim. Se agregan uno o más pares de paréntesis a continuación del nombre de la variable para indicar que es para contener una matriz en vez de una variable escalar (una variable que contiene un solo valor). Declarar variables de matriz Para declarar una variable de matriz unidimensional En su declaración, agregue un par de paréntesis después del nombre de variable. En el ejemplo siguiente se declara una variable para que contenga una matriz unidimensional con elementos de Double (Tipo de datos, Visual Basic). Dim cargoWeights() As Double En el ejemplo anterior se declara una variable de matriz pero no se le asigna una matriz. Todavía debe crear una matriz unidimensional, inicializarla y asignarla a cargoWeights. Para declarar una variable de matriz multidimensional En la declaración, agregue un par de paréntesis detrás del nombre de la variable y coloque comas dentro de los paréntesis para separar las dimensiones. En el ejemplo siguiente se declara una variable para que contenga una matriz de cuatro dimensiones con elementos de Short (Tipo de datos, Visual Basic). Dim atmospherePressures(,,,) As Short En el ejemplo anterior se declara una variable de matriz pero no se le asigna una matriz. Todavía debe crear una matriz de cuatro dimensiones, inicializarla y asignarla a atmospherePressures. Para declarar una variable de matriz escalonada En la declaración, agregue tantos pares de paréntesis después del nombre de variable como niveles haya de matrices anidadas. En el ejemplo siguiente se declara una variable para que contenga una matriz de matrices de matrices (una matriz, cada elemento de la cual es una matriz, cada elemento de la cual es una matriz), en la que la matriz más profunda tiene elementos de Byte (Tipo de datos, Visual Basic). GUÍA DE LABORATORIO Dim inquiriesByYearMonthDay()()() As Byte En el ejemplo anterior se declara una variable de matriz pero no se le asigna una matriz. Todavía debe crear una matriz de matrices de matrices, inicializarla y asignarla a inquiriesByYearMonthDay. declaramos un array de tipo String llamado nombres: podemos indicar el número de elementos que contendrá el array: Dim nombres(10) As String al realizar esta declaración lo que conseguimos es definir un array de 11 elementos: desde cero hasta 10. Lo que podemos hacer en Visual Basic 2005 es usar To para indicar el valor máximo del índice, al menos de esta forma el código resultará más legible: Dim nombres(0 To 10) As String Declarar e inicializar un array de tipo string Esto se realiza indicando los valores a asignar justo después de la declaración y encerrándolos entre llaves: Dim nombres() As String = {"Pepe", "Juan", "Luisa"} Con el código anterior estamos creando un array de tipo String con tres valores cuyos índices van de cero a dos. Si el array es bidimensional (o con más dimensiones), también podemos inicializarlos al declararlo, pero en este caso debemos usar doble juego de llaves: Dim nombres(,) As String = {{"Juan", "Pepe"}, {"Ana", "Eva"}} En este código tendríamos un array bidimensional con los siguientes valores: nombres(0,0)= Juan nombres(0,1)= Pepe nombres(1,0)= Ana nombres(1,1)= Eva Ejemplo Loop a través de un Arreglo Imports System Public Class MainClass Shared Sub Main() 'Declare un array Dim strFriends(4) As String 'inicialize el arreglo strFriends(0) = "R" strFriends(1) = "B" strFriends(2) = "S" strFriends(3) = "S" strFriends(4) = "K" GUÍA DE LABORATORIO 'Enumere el array For Each strName As String In strFriends 'Add the array item to the list System.Console.WriteLine(strName) Next End Sub End Class Ejemplo de declaración e inicialización de un arreglo Shared Sub Main(ByVal args As String()) Dim i As Integer Dim array As Integer() ' declaración de un arreglo Dim array1, array2 As Integer() ' declaracion de dos arreglos array = New Integer(9) {} ' asigna memoria para un arreglo ' inicializa una lista con un valor para cada elemento array1 = New Integer() {32, 27, 64, 18, 95, _ 14, 90, 70, 60, 37} ' asignación al array2 basado en el largo del array1 array2 = New Integer(array1.GetUpperBound(0)) {} ' pone los valores en array2 por medio de un cálculo For i = 0 To array2.GetUpperBound(0) array2(i) = 2 + 2 * i Next Console.WriteLine("Subscript " & vbTab & "Array" & vbTab & _ "Array1" & vbTab & "Array2" & vbCrLf) ' muestra los valores del array For i = 0 To array.GetUpperBound(0) Console.WriteLine(i & vbTab & array(i) & vbTab & _ array1(i) & vbTab & array2(i) & vbCrLf) Next Console.WriteLine(vbCrLf & "El arreglo contiene " & _ array.Length & " elementos.") End Sub GUÍA DE LABORATORIO 7. Actividades a realizar 7.1. Actividad 1: USO DE MATRICES, TIPO, DECLARACIÓN E INICIALIZACIÓN a. Equipos requeridos - 1 Computador PC con sistema operativo Windows XP. Software Microsoft Visual Studio.Net 2005 b. Número de alumnos sugerido por equipo Se recomienda realizar esta actividad en forma individual c. Instrumentos requeridos - No Hay d. Herramientas requeridas - No Hay e. Descripción y procedimiento 1.- Abra Visual Studio .NET 2005. Cree un nuevo proyecto de Visual Basic tipo Consola y grábelo con el nombre “G16A1_mATRICES” en la carpeta por defecto C:\Documents and Settings\.......\Mis documentos\Visual Studio 2005\Projects 2.- Verifique que en el editor de código aparezca el siguiente bloque de código: Module Module1 Sub Main() End Sub End Module 3.- Inserte unas líneas de comentario donde describa el objetivo del programa la fecha de creación y el autor del programa. 4.- Recuerde que los comentarios en Visual Basic van precedidos por una apóstrofe („) 5.- Dentro de Sub Main(), declare: Una variable de nombre i de tipo entero Declare 3 matrices (arreglos de tipo entero) 6.- Escriba la siguiente sentencia para asignar memoria a un arreglo: array = New Integer(9) {} ' asigna memoria para un arreglo 7.- Inicialice el arreglo 1, vea el ejemplo: array1 = New Integer() {32, 27, 64, 18, 95, _ 14, 90, 70, 60, 37} 8.- Asigne el arreglo 2 basado en el largo del arreglo1. vea el ejemplo: array2 = New Integer(array1.GetUpperBound(0)) {} GUÍA DE LABORATORIO 9.- Ponga los valores en el arreglo 2 por medio de un cálculo For i = 0 To array2.GetUpperBound(0) array2(i) = 2 + 2 * i Next 10.- Imprima a consola Console.WriteLine("Subscript " & vbTab & "Array" & vbTab & _ "Array1" & vbTab & "Array2" & vbCrLf) 11.- Muestre los valores del arreglo For i = 0 To array.GetUpperBound(0) Console.WriteLine(i & vbTab & array(i) & vbTab & _ array1(i) & vbTab & array2(i) & vbCrLf) Next Console.WriteLine(vbCrLf & "El arreglo contiene " & _ array.Length & " elementos.") 12.- Salve el proyecto desde la opción Guardar Todo. 13.- ATENCIÓN: En este momento debe llamar al profesor para que corrobore su trabajo, NO DEBE CONTINUAR CON EL PRÓXIMO PASO HASTA QUE EL PROFESOR LO AUTORICE 14.- Arranque la aplicación y verifique la salida a consola con respecto a la figura. 15.- Ahora realice la ejecución del programa paso a paso con el depurador. 16.- Inserte un brek point en la sentencia donde solicita que ingrese el nombre del agente1 17.- Inspecciones las variables del programa. Vea la figura como referencia. GUÍA DE LABORATORIO 18.- ATENCIÓN: En este momento debe llamar al profesor para que corrobore su trabajo, NO DEBE CONTINUAR CON EL PRÓXIMO PASO HASTA QUE EL PROFESOR LO AUTORICE 19.- Realizada la actividad pase a la actividad de evaluación. f. Guía de auto evaluación para el alumno 1.- ¿Cuál es la definición de una matriz en Visual Basic? 2.- ¿Cómo se inicializa una matriz en Visual Basic? De un ejemplo 3.- ¿Qué bucle es el más adecuado para el manejo de datos de las matrices? GUÍA DE LABORATORIO g. Pauta de evaluación de la actividad Actitudes Logrado No Logrado Descripción Orden Realiza un trabajo en forma ordena mientras realiza la actividad. Cuidado Realiza la experiencia cuidando no producir daños físicos y materiales a los componentes, compañeros y a él mismo, los cuales son intrínsicos a la actividad. Seguridad Observa las normas y ocupa los implementos de seguridad al trabajar Autocontrol Se mantiene controlado a pesar de los intentos fallidos y ante la presión del tiempo para realizar las actividades Habilidades Logrado No Logrado Descripción U/ Herramientas Usa correctamente el entorno de desarrollo de visual Basic U/ Instrumentos Usa correctamente las herramientas ayuda P/ Diagnóstico Realiza el diagnóstico ayudado por el depurador (Debugger) U/ Información Utiliza la información técnica para guiar su diagnóstico. Determinación de la falla y/o actividad Primer intento Falla y/o Actividad Segundo intento Tercer intento Descripción Determina una falla o realiza la actividad de forma satisfactoria GUÍA DE LABORATORIO 8. Pauta de evaluación de la guía 16 Rut Nota Alumno Asignatura Programación de Computadores Sigla PCS2201 Sección Programación con matrices en Visual Basic Nº Guía 16 Nombre Descripción Creación de programas, haciendo uso de matrices (arreglos) en Visual Basic 60% Habilidades 7 - Logrado 1 - No Logrado % Descripción P/ Programación 10% P/ Compilación 20% Programa correctamente utilizando las herramientas de programación (matrices) de acuerdo a la estructura del lenguaje de programación Visual Basic. Realiza correctamente la compilación del código fuente y logra interpretar los errores de compilación. P/ Ejecución 15% Realiza correctamente la ejecución del programa y logra interpretar los errores de ejecución. P/ Validación P/ Depuración U/ Ayuda 15% Valida correctamente la entrada de datos al programa. Usa las herramientas de Depuración y de Ayuda del IDE de Visual Basic 40% Configuración solicitada y/o actividad Primer intento: 7 Segundo 4 intento: Tercer 1 intento: Diseño 30% Funcionamiento 10% Descripción Diseña y programa una aplicación para Windows en Visual Basic, de acuerdo a los requerimientos solicitados por el profesor de forma satisfactoria. Realiza la explicación del funcionamiento lógico del código fuente solicitado por el profesor de forma satisfactoria N1: Actitudes : Descuento (si se aplica) en cada ítem - Máximo 3,5 puntos menos de la nota - Logrado - No Logrado Descripción Orden 0.5 Limpieza 0.5 Cuidado 1.0 Mantiene su espacio de trabajo ordenado mientras realiza la experiencia y se comporta en forma ordena mientras realiza las actividades Mantiene su espacio de trabajo limpio mientras realiza la experiencia y se preocupa de que quede limpio al finalizar la actividad Realiza la experiencia cuidando no producir daños físicos a los componentes, compañeros y a sí mismo. Seguridad 1.0 Observa las normas de seguridad al trabajar en un laboratorio de computación. Autocontrol 0.5 Se mantiene controlado a pesar de los intentos fallidos y ante la presión del tiempo para realizar las actividades. Descuento El alumno debe Firma Alumno Repetir la experiencia Pasar a la experiencia siguiente Nota: N1 – N2. GUÍA DE LABORATORIO