1 / 23

Tablas

Tablas. Descripción general. Introducción a las tablas Creación de tablas Uso de tablas. Introducción a las tablas. ¿Qué es una tabla? Notación para tablas en C# Rango de una tabla Acceso a los elementos de una tabla Comprobación de los límites de una tabla

gafna
Download Presentation

Tablas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tablas

  2. Descripción general • Introducción a las tablas • Creación de tablas • Uso de tablas

  3. Introducción a las tablas • ¿Qué es una tabla? • Notación para tablas en C# • Rango de una tabla • Acceso a los elementos de una tabla • Comprobación de los límites de una tabla • Comparación de tablas y colecciones

  4. ¿Qué es una tabla? • Una tabla es una secuencia de elementos • Todos los elementos de una tabla son del mismo tipo • Las estructuras pueden tener elementos de distintos tipos • Se accede a elementos individuales usando índices enteros Índice entero 4 (cuatro) Índice entero 0 (cero)

  5. Notación para tablas en C# • Una variable de tabla se declara especificando: • El tipo de elementos de la tabla • El rango de la tabla • El nombre de la variable tipo[ ] nombre; Especifica el nombre de la variable de tabla Especifica el rango de la tabla Especifica el tipo de elementos de la tabla

  6. Rango de una tabla • El rango se conoce también como dimensión de la tabla • El número de índices asociados con cada elemento long[ ] fila; int[,] cuadrícula; Rango 1: Unidimensional Un solo índice asociado concada elemento long Rango 2: Bidimensional Dos índices asociados con cada elemento int

  7. Acceso a los elementos de una tabla • Se indica un índice entero para cada rango • Los índices se cuentan a partir de cero long[ ] fila; ... fila[3]; int[,] cuadrícula; ... cuadrícula[1,2]; 2 3 1

  8. Comprobación de los límites de una tabla • Se comprueban los límites cada vez que se intenta acceder a una tabla • Un índice erróneo lanza la excepción IndexOutOfRangeException • Se usan la propiedad Length y el método GetLength cuadr fila cuadr.GetLength(0)==2 fila.GetLength(0)==6 cuadr.GetLength(1)==4 fila.Length==6 cuadr.Length==2*4

  9. Comparación de tablas y colecciones • Una tabla no puede cambiar su tamaño cuando está llena • Una clase de colección, como ArrayList, puede cambiar su tamaño • Una tabla contiene elementos de un solo tipo • Una colección está diseñada para contener elementos de distintos tipos • Los elementos de una tabla no pueden ser de sólo lectura • Una colección puede tener acceso de sólo lectura • En general, las tablas son más rápidas pero menos flexibles • Las colecciones son algo más lentas pero más flexibles

  10. Creación de tablas • Creación de una tabla • Inicialización de los elementos de una tabla • Inicialización de los elementos de una tabla multidimensional • Creación de una tabla de tamaño calculado • Copia de variables de tabla

  11. Creación de una tabla • ¡Declarar una variable de tabla no es lo mismo que crear una tabla! • Para crear la tabla explícitamente hay que usar new • El valor implícito por defecto de los elementos de una tabla es cero fila long[ ] fila = new long[4]; 0 0 0 0 Variable Tabla int[,] cuad = new int[2,3]; 0 0 0 cuadrícula 0 0 0

  12. Inicialización de los elementos de una tabla • Es posible inicializar explícitamente los elementos de una tabla • Se puede utilizar una expresión abreviada long[ ] fila = new long[4] {0, 1, 2, 3}; long[ ] fila = {0, 1, 2, 3}; Equivalentes 0 1 2 3 fila

  13. Inicialización de los elementos de una tabla multidimensional • También se pueden inicializar los elementos de una tabla multidimensional • Hay que especificar todos los elementos int[,] cuadr = { {5, 4, 3}, {2, 1, 0} }; Nueva tabla int[2,3] implícita  5 4 3 cuadrícula 2 1 0 int[,] cuadr = { {5, 4, 3}, {2, 1 } }; 

  14. Creación de una tabla de tamaño calculado • No es necesario que el tamaño de una tabla sea una constante de tiempo de compilación • Se puede usar cualquier expresión entera válida • El acceso a los elementos es igualmente rápido en todos los casos • Tamaño de tabla especificado por constante entera de tiempo de compilación: • Tamaño de tabla especificado por valor entero de tiempo de ejecución: long[ ] fila = new long[4]; string s = Console.ReadLine(); int tamano = int.Parse(s); long[ ] fila = new long[tamano];

  15. Copia de variables de tablas • Al copiar una variable de tabla se copia sólo la variable de tabla • No se copia la tabla • Dos variables de tabla pueden apuntar a la misma tabla long[ ] fila = new long[4]; long[ ] copia = fila; ... fila[0]++; long valor = copia[0]; Console.WriteLine(valor); 0 0 0 0 fila copia Variable Tabla

  16. Uso de tablas • Propiedades de tablas • Métodos de tablas • Devolución de tablas desde métodos • Paso de tablas como parámetros • Argumentos de línea de comandos • Demostración: Argumentos para Main • Uso de tablas con foreach • Problema: ¿Dónde está el error?

  17. 0 0 0 cuadrícula 0 0 0 0 0 0 0 fila Propiedades de tablas long[ ] fila = new long[4]; 1 fila.Rank fila.Length 4 int[,] cuad = new int[2,3]; 2 cuad.Rank cuad.Length 6

  18. Métodos de tablas • Métodos utilizados frecuentemente • Sort: Ordena los elementos en una tabla de rango 1 • Clear: Asigna el valor cero o null a un rango de elementos • Clone: Crea una copia de la tabla • GetLength: Devuelve la longitud de una dimensión dada • IndexOf: Devuelve el índice de la primera vez que aparece un valor

  19. Devolución de tablas desde métodos • Es posible declarar métodos para que devuelvan tablas class Example { static void Main( ) { int[ ] array = CreateArray(42); ... } static int[ ] CreateArray(int tamano) { int[ ] creada = new int[tamano]; return creada; } }

  20. Paso de tablas como parámetros • Un parámetro de tabla es una copia de la variable de tabla • No es una copia de la tabla class Example2 { static void Main( ) { int[ ] arg = {10, 9, 8, 7};Method(arg); System.Console.WriteLine(arg[0]); } static void Metodo(int[ ] parametro) { parametro[0]++; } } Este método modificarála tabla originalcreada en Main

  21. Argumentos de línea de comandos • El runtime pasa argumentos de línea de comandos a Main • Main puede aceptar como parámetro una tabla de cadenas de caracteres • El nombre del programa no es un miembro de la tabla class Example3 { static void Main(string[ ] args) { for (int i = 0; i < args.Length; i++) { System.Console.WriteLine(args[i]); } }}

  22. Uso de tablas con foreach • La instrucción foreach simplifica enormemente la manipulación de tablas class Example4 { static void Main(string[ ] args) { foreach (string arg in args) { System.Console.WriteLine(arg); } }}

  23. Práctica – Creación y uso de tablas

More Related