Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin y Algoritmos
Arreglos en C#
Felipe Baytelman Abril, 2008 felipe@baytelman.com
Denicin
Estructuras de datos complejas (no son atmicas) Agrupan datos de un mismo tipo (tipo base). El tipo base de un arreglo puede ser cualquiera de los tipos de dato de C#. Un arreglo es una variable compuesta capaz de almacenar uno o ms datos al mismo tiempo.
3
Arreglos
Ejemplo conceptual
Deseo almacenar muchas temperaturas (double) Obtener indicadores (promedio, min, max, etc.) Quero poder hacer un grco Tener 12 variables es engorroso
Arreglos - Arrays
Arreglos - Arrays
Uso en C#
Arreglos - Arrays
Uso en C#
signica que estamos declarando el arreglo nombre_arreglo de tamao tamao y de tipo tipo_de_datos
double[] temperaturas = new double[12]; /*Arreglo de reales de tamao 12 */ int[] edad = new int[1]; /* Qu hace esto? */ double[] notas_tareas = new double[4];
signica que estamos declarando el arreglo nombre_arreglo de tamao n y de tipo tipo_de_datos, inicialmente lleno co los datos dato_1, dato_2, ... , dato_n
string[] meses = { Enero, Febrero, Marzo, ... , Diciembre); string[] dias = { Lunes, Martes, Mircoles, ... , Domingo);
Arreglos - Arrays
Uso en C#
Arreglos - Arrays
Resumen
Acceso a un valor:
Declaracin:
nombre_arreglo[indice]
signica que nos referimos al valor nmero ndice del arreglo nombre_arreglo
temperaturas[6] = -5; /* asigna 5 al 7 valor de temperatura */ Console.WriteLine(temperaturas[2]); /* imprime el 3er valor */ Qu ocurrira con: temperaturas[12] = 33; ????
Acceso a un valor:
nombre_arreglo[indice]
Funciones ms comunes
Largo de un arreglo:
Arreglos - Arrays
arreglo.Length
Ordenar un arreglo:
Array.Sort(arreglo)
Arreglos
Invertir un arreglo:
Array.Reverse(arreglo)
Multidimensionales
Deseo representar tablas (matrices) Deseo representar arreglos de arreglos
Arreglos - Arrays
Arreglos - Arrays
Uso en C#
9 10 11
signica que estamos declarando el arreglo nombre_arreglo de tamao1 x tamao2 y de tipo tipo_de_datos
double[,] temperaturas = new double[100,12]; /*Arreglo de 100x12 reales */ int[,] edad = new int[1,1]; /* Qu hace esto? */ double[,] notas = new double[3,4]; /*Almacenar mis notas del curso */
100 las
0 31 33 30 30 26 20 18 20 20 26 27 29 1 30 30 32 29 24 22 19 19 18 25 28 29 2 29 34 31 28 25 23 18 21 20 24 25 27 3 31 31 33 31 25 24 20 18 19 25 25 28 4 30 33 30 39 26 23 18 19 20 23 24 26
11
12
Arreglos - Arrays
Uso en C#
Arreglos - Arrays
Uso en C#
nombre_arreglo[indice1,indice2]
tipo_dato[,] nombre_arreglo = { {dato_1.1, dato_1.2, ... , dato_1.n}, {dato_2.1, dato_2.2, ... , dato_2.n}, ..., {dato_m.1, dato_m.2, ... , dato_m.n},
signica que nos referimos al valor nmero ndice1 en la primera coordenada, e indice 2 de la segunda de la matriz nombre_arreglo
signica que estamos declarando el arreglo nombre_arreglo de tamao n,m y de tipo tipo_de_datos, inicialmente lleno.
temperaturas[50,6] = -5; /* asigna 5 a la temperatura 51 la,7columna */ Console.WriteLine(temperaturas[99, 2]); Qu ocurrira con: temperaturas[101,5] = 33; ????
14
13
Resumen Multidimens.
Declaracin:
Arreglos - Arrays
Funciones ms comunes
Largo de un arreglo:
Arreglos - Arrays
arreglo.GetLength(dimension)
Acceso a un valor:
15
16
Arrelgos en C#
Ejercicios
Buscaminas
Pregunte tamao del tablero Pregunte el nmero de bombas Programa reparta bombas al azar Muestre el tablero Permita jugar
Profesor
Escriba un programa que pregunte el tamao de un tablero (2 dimensiones). Luego, parta con ese tablero todo en 0. Muestre el tablero. Luego pregunte por las coordenadas, y aada uno a dicha celda. Vuelva a mostrar el tablero y repita la pregunta una y otra vez, actualizando cada vez el tablero.
Alumno
Una semana
17