Tema: Arreglos en C#.

Documentos relacionados
Tema: Vectores en C#.

Tema: Vectores en C#

Tema: Matrices en C#.

Tema: Matrices y Cadenas en C#.

Guia#9: Punteros en C#.

Tema: Estructuras en C#.

Tema: Estructuras de Repetición en C# [For].

Guia#11: Tema: Estructuras en C#.

Tema: Estructuras en C#.

Tema: Estructuras de Repetición en C# [For].

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Estructuras de Repetición en C#.

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Tema: Estructuras de Repetición en C#.

Tema: Estructuras de Selección en C#.

Tema: Funciones y Procedimientos en C#.

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

Tema: Estructuras de Repetición en C# [While y Dowhile].

Tema: Estructuras de Selección en C#.

Introducción ARREGLOS ARREGLOS ARREGLOS. Introducción Definición de arreglos. Tipos de arreglos. Arreglos unidimensionales Y bidimensionales.

Un array se compone de elementos de igual tamaño, almcenando linealmente en posiciones de memoria consecutiva. Array (Arreglo) Primer elemento

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Tema: Estructuras de Repetición en C# [While y Dowhile]

Qué son los arreglos

Tema: Cadenas en C#.

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Entorno a C# En el primer ejercicio se inicia el entorno de programación de Visual Studio.NET y se enseña a crear una aplicación en consola.

Tema: Entorno a C# Objetivos. Introducción. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación Estructurada

Guia#12: Tema: Archivos en C#.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Tema: Estructuras de Selección en C#.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Funciones, Procedimientos y Recursividad en C#.

GUIA 1: Repaso sobre uso de C#. Funciones, procedimientos y arreglos.

UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA FUNDAMENTOS DE PROGRAMACIÓN ARREGLOS (ARRAYS)

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C#

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Tema: Entorno a C# En el primer ejercicio se inicia el entorno de programación de Visual Studio.NET y se enseña a crear una aplicación en consola.

Matriz A Matriz B Matriz C C [1,1]=A [1,1]+B [1,1]=1+15= 16; C [1,2]=A [1,2]+B [1,2]=3+12= 15;

TEMA 7. ARRAYS (LISTAS Y TABLAS).

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACION

Tema: Arreglos de objetos en C#.

Así, Juan se halla en la posición cero (0), Carlos en la posición tres (3), etc.

ARREGLOS (ARRAYS)- MATRICES.

Práctica Guiada: Vectores y Matrices

Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACION

Programación Estructurada

Estructura de Datos ARREGLOS

Lenguaje de Programación: C++ Arreglos

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Diseño Estructurado de Algoritmos

ARREGLOS UNIDIMENSIONALES

Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com

o Los arreglos son colecciones ordenadas de datos del mismo tipo. o Ejemplos: 2

Aprender los conceptos, manejo, usos y aplicación de heaps a fin de utilizarlos para el desarrollo de aplicaciones

Tema: Sobrecarga. Objetivos. Materiales y Equipo. Introducción Teórica. Programación II. Guía No. 7

ARREGLOS EN. Nota: El autor.

CURSO SUPERIOR EN PROGRAMACIÓN DE AUTÓMATAS

MATRICES ARREGLOS BIDIMENSIONALES

Tema 10: Arreglos estáticos en C

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales

PRACTICA Nº Realizar una aplicación que calcule el volumen de una esfera, que viene dado por la fórmula:

Tema: Plantillas en C++.

Tema 14: Arreglos estáticos en C

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES

Columnas

Tema: Estructuras de Selección en C#

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Objetivos. Introducción

Algoritmos y Programación I

Tipo de Dato: Arreglos

Tema: Grafos en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Programación IV. Guía 7

Transcripción:

Programación1, Guia#7 1 Tema: Arreglos en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Introducir al estudiante a los conceptos de estructura de datos. Conocer la sintaxis de creación y definición de arreglos. Conocer los tipos de arreglos que se utilizan en la programación. Implementar arreglos en una y dos dimensiones. Resolver problemas aplicando arreglos. Los arreglos son estructuras de datos que consisten en elementos de datos del mismo tipo relacionados. Los arreglos son entidades de longitud fija; conservan la misma longitud una vez que se crean, aunque puede reasignarse una variable tipo arreglo de tal forma que haga referencia a un nuevo arreglo de distinta longitud. Arreglos Introducción Un arreglo es un grupo de variables (llamadas elementos) que contienen valores y todos son del mismo tipo. Recordemos que los tipos se dividen en dos categorías: por valor y por referencia. Los elementos de un arreglo pueden ser tipos por valor o referencia. Para referirnos a un elemento en especial dentro de un arreglo, especificamos el nombre de la referencia al arreglo y el número de la posición de este elemento en el arreglo. Al número de la posición se le conoce como índice del elemento. Una aplicación hace referencia a cualquier elemento del arreglo mediante una expresión de acceso al arreglo, la cual incluye el nombre del arreglo, seguido el índice del elemento específico entre corchetes ([ ]). El primer elemento en cualquier arreglo tiene el índice cero, el cual se conoce como elemento cero. En la figura siguiente, se muestra una ilustración de un arreglo: El nombre del arreglo anterior es C. El índice del elemento en el arreglo C se denota por: C[0], C[1],, C[9]. Si un arreglo tiene n posiciones, la última posición tiene el índice o subíndice n-1. Declaración y Creación de Arreglos Las instancias de los arreglos ocupan espacio en memoria. Al igual que los objetos, los arreglos se crean con la palabra clave new. Para crear una instancia de un arreglo, se especifica el tipo y el número de elementos del arreglo, y el

Programación1, Guia#7 2 número de elementos como parte de una expresión de creación de arreglos, que utiliza la palabra clave new. Dicha expresión devuelve una referencia que puede almacenarse en una variable tipo arreglo. La siguiente expresión de declaración y creación de arreglos crea un objeto que contiene 12 elementos int, y almacena la referencia al arreglo en la variable C. Int[ ] C = new int[12] Cabe mencionar, que la expresión anterior puede dividirse en dos partes, así: Int [ ] C; C = new int[12]; Ejemplo 1. Se desea guardar los sueldos de 5 empleados de una fábrica X. Según lo que hemos estudiado hasta el momento, deberíamos definir 5 variables si queremos tener en un cierto momento los 5 sueldos almacenados en memoria. Empleando un vector, solo se requiere definir un único nombre y accedemos a cada elemento por medio del subíndice. 1 namespace Guia7_Ejemplo1 7 Double[] Sueldos; 8 Sueldos = new Double[5]; 9 for (int i = 0; i < 5; i++) 10 { 11 Console.WriteLine("Ingrese el sueldo del empleado" + (i + 1) + ":"); 12 Sueldos[i] = Double.Parse(Console.ReadLine()); 13 } 14 Mostrar(Sueldos); 15 Console.ReadKey(); 16 } 17 static void Mostrar (Double[] Sueldos) 18 { 19 Console.WriteLine("Los sueldos ingresados son:"); 20 for (int i=0;i<5;i++) 21 { 22 Console.Write("\t" + Sueldos[i]); 23 } 24 } 25 } 26 }

Programación1, Guia#7 3 Ejemplo 2. En este ejemplo veremos cómo trabajar con un arreglo unidimensional que ha sido previamente inicializado. Vamos a conocer la forma de especificar los elementos que contiene la estructura de datos. 1 namespace Guia7_Ejemplo2 7 Console.Title = "Ejemplo2 de vectores con la funcion Lenght"; 8 Double SumaNotas = 0, Promedio; 9 Double[] Notas = { 10, 7.2, 8.5, 9.1, 6.5 }; 10 String[] Alumnos = {"Juan Perez","Toño","Chepe","Rodrigo", "Marisol"}; 11 for ( int i=0; i<notas.length; i++) 1 13 Console.WriteLine("\nLa nota de {0} es: {1}", Alumnos[i], Notas[i]); 14 } 15 for ( int i=0; i<notas.length; i++) 1 17 SumaNotas = SumaNotas + Notas[i]; 18 } 19 Promedio = (SumaNotas / 5); 20 Console.WriteLine("-----------------------------------------"); 21 Console.WriteLine("\n\tLa suma de todas las notas es: " + SumaNotas); 22 Console.WriteLine("\n\tEl promedio de las notas es: " + Math.Round(Promedio,2)); 23 Console.ReadKey(); 24 } 25 } 26 } Anotaciones

Programación1, Guia#7 4 Ejemplo 3. En este ejemplo, aprenderemos a encontrar el mayor elemento de un arreglo así como también el menor elemento del mismo. 1 namespace Guia7_Ejemplo3 7 Console.Title = "Ejemplo3 el mayor y menor en un vector"; 8 int[] n; 9 int tam, menor, mayor; 10 Console.WriteLine("Dame el tamaño del vector"); 11 tam = int.parse(console.readline()); 12 n = new int[tam]; 13 for (int i = 0; i < tam; i++) 1 15 Console.WriteLine("Digite el elemento" + (i+1) + " : "); 16 n[i] = int.parse(console.readline()); 17 } 18 mayor = n[0]; 19 menor = n[0]; 20 for (int i = 0; i < tam; i++) 21 { 22 if (n[i] > mayor) 23 { 24 mayor = n[i]; 25 } 26 else if (n[i] < menor) 27 { 28 menor = n[i]; 29 } 30 } 31 Console.WriteLine("El menor de los elementos es: " + mayor ); 32 Console.WriteLine("El mayor de los elementos es: " + menor); 33 Console.ReadKey(); 34 } 35 } 36 }

Programación1, Guia#7 5 La instrucción foreach En ejemplos anteriores, demostramos cómo utilizar las instrucciones for controladas por un contador para iterar a través de los elementos de un arreglo. Ahora comenzamos el estudio del foreach, que itera a través de los elementos de un arreglo o colección completa. La sintaxis de una instrucción foreach es la siguiente: foreach (<tipoelemento> <Elemento> in <NombreArreglo>) { <Instrucciones> } Donde, el tipo y el identificador son el tipo y el nombre (por ejemplo int numero) de la variable de iteración y NombreArreglo es al arreglo a través del cual se va a iterar. El tipo de la variable de iteración debe concordar con el tipo de los elementos del arreglo. La instrucción foreach es una variante de la instrucción for, pensada principalmente para compactar la escritura de códigos donde se realiza un tratamiento a todos los elementos de un arreglo o lista. Ejemplo 4. En este ejemplo, haremos uso de la instrucción foreach para realizar una sumatoria de edades de estudiantes. Se crea un arreglo de 5 posiciones de memoria para almacenar datos de tipo entero. 1 namespace Guia7_Ejemplo4 7 Console.Title = "Ejemplo4 utilizando la instruccion foreach"; 8 int[] Edades = new int[5]; 9 Array(Edades); 10 Console.ReadKey(); 11 } 12 static void Array(int[] Edades) 13 { 14 int Total = 0; 15 Edades = new int[5]; 16 for (int x = 0; x < Edades.Length; x++) 17 { 18 Console.WriteLine("Ingresa la edad del estudiante" + (x + 1) + ":"); 19 Edades[x] = int.parse(console.readline()); 20 } 21 foreach (int element in Edades) 2 23 Total = Total + element; 24 } 25 Console.WriteLine("La sumatoria de las edades es: " + Total); 26 } 27 } 28 }

Programación1, Guia#7 6 Arreglos Multidimensionales Los arreglos multidimensionales de dos dimensiones se utilizan con frecuencia para representar tablas de valores, que consisten en información ordenada en filas y columnas. Para identificar una tabla en particular debemos especificar dos índices. Por convención, el primero identifica la fila del elemento y el segundo su columna. Los arreglos que requieren dos índices para identificar un elemento específico se llaman arreglos bidimensionales. Sintaxis para declarar y crear los arreglos bidimensionales Aprendamos la declaración de matrices a través de un ejemplo. Como recordamos, cuando trabajamos con arreglos vamos a hacer uso de los signos de agrupación llamados corchetes, ya que con ello le especificamos al compilador que estamos trabajando con variables de tipo arreglo que han sido instanciados mediante la palabra clave new. Los tipos de datos que se pueden utilizar en los arreglos son los que hemos estudiando en las prácticas anteriores, por lo tanto en este ejemplo utilizamos un tipo de dato int: int[, ] b; b = new int[ 3, 4 ] En el ejemplo anterior estamos creando una matriz de 3 filas y 4 columnas. Al igual que en los arreglos de una dimensión se utilizaba un bucle (generalmente for) para cargar u operar los elementos de un vector, así también en las matrices vamos a utilizar bucles, con la diferencia que ahora utilizaremos un for para las filas y otro for para las columnas (for anidados). Material y Equipo Guía de laboratorio No. 7. Computadora con Visual Studio 2013 o superior. Dispositivo de almacenamiento (USB).

Programación1, Guia#7 7 Procedimiento Ejemplo 1. Programa que carga una matriz de una dimensión establecida y muestra los valores en pantalla. 1 namespace Matrices_Ejemplo1 7 Console.Title = "Ejemplo1 de una matriz 3x4"; 8 int[,] Matrix; 9 Matrix = new int[3, 4]; 10 //Cargar y visualizar una matriz 11 for (int filas = 0; filas < 3; filas++) 1// for externo para filas 13 for (int columnas = 0; columnas < 4; columnas++) 1// for interno para columnas 15 Console.Write("Ingrese el valor de la posicion [" + filas + "," + columnas + "]: "); 16 Matrix[filas, columnas] = int.parse(console.readline()); 17 } 18 } 19 Console.Write("\n"); 20 Console.Write("Ahora visualizamos la matrix digitada..."); 21 Imprimir(Matrix); 22 Console.ReadKey(); 23 } 24 static void Imprimir(int[,] Matrix) 25 { 26 for (int filas = 0; filas < 3; filas++) 27 { 28 Console.Write("\n"); 29 for (int columnas = 0; columnas < 4; columnas++) 30 { 31 Console.Write("\t" + Matrix[filas, columnas] + "\t"); 32 } 33 } 34 } 35 } 36 }

Programación1, Guia#7 8 Ejemplo 2. Programa que suma dos matrices de 2 x 3. 1 namespace Matriz_Ejemplo2 7 Console.Title = "Ejemplo2 Sumando 2 matrices 2x3"; 8 //Declarando las matrices 9 int[,] Matriz1 = new int[2,3]; 10 int[,] Matriz2 = new int[2,3]; 11 int[,] Matriz3= new int[2,3]; 12 //Digitamos la primer matriz 13 Console.Write("Digitamos la primer matriz [1]"); 14 Console.Write("\n"); 15 for (int i = 0; i < 2; i++) 1// for externo para filas 17 for (int j = 0; j < 3; j++) 18 {// for interno para columnas 19 Console.Write("Ingrese el elemento [" + i + "," + j + "]: "); 20 Matriz1[i,j] = int.parse(console.readline()); 21 } 22 } 23 Console.Write("\n"); 24 //Digitamos la segunda matriz 25 Console.Write("Digitamos la segunda matriz [2]"); 26 Console.Write("\n"); 27 for (int i = 0; i < 2; i++) 28 {// for externo para filas 29 for (int j = 0; j < 3; j++) 30 {// for interno para columnas 31 Console.Write("Ingrese el elemento [" + i + "," + j + "]: "); 32 Matriz2[i, j] = int.parse(console.readline()); 33 } 34 } 35 Console.Write("\n"); 36 //Realizamos el calculo de la suma de las 2 matrices 37 Console.Write("Sumando las 2 matrices anteriores"); 38 Console.Write("\n"); 39 for (int i = 0; i < 2; i++) 40 {// for externo para filas 41 for (int j = 0; j < 3; j++) 4// for interno para columnas 43 Matriz3[i,j] = Matriz1[i,j] + Matriz2[i,j]; 44 } 45 } 46 //Llamamos a un procedimiento para visualizar el resultado 47 Mostrar(Matriz3); 48 Console.ReadKey(); 49 } 50 static void Mostrar(int[,] Matriz3) 51 { 52 for (int i = 0; i < 2; i++) 53 { 54 Console.Write("\n"); 55 for (int j = 0; j < 3; j++)

Programación1, Guia#7 9 5 57 Console.Write("\t" + Matriz3[i,j] + "\t"); 58 } 59 } 60 } 61 } 62 } Análisis de Resultados 1. Desarrollar una aplicación que pida al usuario la dimensión de una matriz, la cargue y le diga cuántos de los elementos ingresados fueron positivos, negativos o nulos. 2. Desarrollar una aplicación que busque el mayor y el menor elemento en una matriz. 3. Cargar un vector y solicitarle al usuario un valor que quiera buscar en un arreglo de una dimensión, luego el programa debe decirle si se encuentra o no. Si se encuentra, debe mostrarse la posición del elemento. Investigación Complementaria 1. Desarrollar una aplicación utilizando funciones o procedimientos para buscar cualquier elemento dentro de una matriz. 2. Desarrollar una aplicación que cargue una matriz y muestre su inversa. 3. Desarrollar una aplicación que ordene los elementos de un vector (ascendente y descendente). Bibliografía Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.