Está en la página 1de 5

Nivel de ayudanta? Alumnos ayudantes? Ejercicios pendientes? Clases remotas?

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

Arreglo de 12 reales: Temperaturas


Contenido 31 33 32 30 26 20 18 19 20 26 27 29 0 1 2 3 4 5 6 7 8 9 10 11 ndices
4

Arreglos - Arrays

Uso en C#

Arreglos - Arrays

Uso en C#

Declaracin de un arreglo vaco:

tipo_dato[] nombre_arreglo = new tipo_dato[tamao];

Declaracin de un arreglo con datos:

signica que estamos declarando el arreglo nombre_arreglo de tamao tamao y de tipo tipo_de_datos

tipo_dato[] nombre_arreglo = { dato_1, dato_2, ... , dato_n } ;

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

tipo[] nombre_arreglo = new tipo[tamao]; tipo[] nombre_arreglo = { v1, v2, ..., vn } ;

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#

Declaracin de un arreglo vaco:

9 10 11

tipo_dato[,] nombre_arreglo = new tipo_dato[tamao1, tamao2];

Arreglo de 100x12 reales: Temperaturas 12 columnas


0 1 2 3 4 5 6 7 8

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#

Acceso a un valor: Declaracin de un arreglo con datos:

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

tipo[, , ...,] nombre_arreglo = new tipo[tam1, tam2, ..., tamn];

arreglo.GetLength(dimension)

Acceso a un valor:

Ordenar un arreglo Invertir un arreglo

nombre_arreglo[indice1, indice2, ...., indicen]

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

También podría gustarte