programacion

Page 1

Tablas


D escr ipción gener al

I ntr oducción a las tablas

Cr eación de tablas

U so de tablas


 I ntr oducción a las tablas

¿Qué es una tabla?

N otación par a tablas en C#

Rango de una tabla

Acceso a los elementos de una tabla

Compr obación de los límites de una tabla

Compar ación de tablas y colecciones


¿Qué es una tabla?

U na 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 0 (cero)

Índice entero 4 (cuatro)


N otación par a tablas en C#

U na var iable de tabla se declar a especificando: 

El tipo de elementos de la tabla

El rango de la tabla

El nombre de la variable tipo[ ] nombre; tipo[ ] nombre; Especifica el nombre de la variable de tabla Especifica el rango de la tabla Especifica el tipo de elementos de la tabla


Rango de una tabla

El r ango se conoce también como dimensión de la tabla

El númer o de índices asociados con cada elemento long[ ] fila; int[,] cuadrícula; long[ ] fila; int[,] cuadrícula; Rango 1: Unidimensional Un solo índice asociado con cada elemento long

Rango 2: Bidimensional Dos índices asociados con cada elemento int


Acceso a los elementos de una tabla

Se indica un índice enter o par a cada r ango 

Los índices se cuentan a partir de cero

long[ ] fila; long[ ] fila; ... ... fila[3]; fila[3];

int[,] cuadrícula; int[,] cuadrícula; ... ... cuadrícula[1,2]; cuadrícula[1,2];

22 33 11


Compr obación de los límites de una tabla 

Se compr ueban 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 L ength y el método GetL ength

fila fila

fila.GetLength(0)==6 fila.GetLength(0)==6 fila.Length==6 fila.Length==6

cuadr cuadr

cuadr.GetLength(0)==2 cuadr.GetLength(0)==2 cuadr.GetLength(1)==4 cuadr.GetLength(1)==4 cuadr.Length==2*4 cuadr.Length==2*4


Compar ación de tablas y colecciones 

U na tabla no puede cambiar su tamaño cuando está llena  Una clase de colección, como ArrayList, puede cambiar su tamaño

U na tabla contiene elementos de un solo tipo  Una colección está diseñada para contener elementos de distintos tipos

L os elementos de una tabla no pueden ser de sólo lectur a  Una colección puede tener acceso de sólo lectura

En gener al, las tablas son más r ápidas per o menos flexibles  Las colecciones son algo más lentas pero más flexibles


 Cr eación de tablas

Cr eación de una tabla

I nicialización de los elementos de una tabla

I nicialización de los elementos de una tabla multidimensional

Cr eación de una tabla de tamaño calculado

Copia de var iables de tabla


Cr eación de una tabla 

¡D eclar ar una var iable de tabla no es lo mismo que cr ear 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]; long[ ] fila = new long[4]; Variable

int[,] cuad = new int[2,3]; int[,] cuad = new int[2,3]; cuadrícula

0 0 0 0 Tabla

0 0 0 0 0 0


I nicializació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 = new long[4] {0, 1, 2, 3}; long[ ] fila = {0, 1, 2, 3}; long[ ] fila = {0, 1, 2, 3};

0 1 2 3 fila

Equivalente s


I nicialización de los elementos de una tabla multidimensional 

T ambién se pueden inicializar los elementos de una tabla multidimensional 

Hay que especificar todos los elementos

int[,] cuadr = { int[,] cuadr = { {5, 4, 3}, {5, 4, 3}, {2, 1, 0} {2, 1, 0} }; }; int[,] cuadr = { int[,] cuadr = { {5, 4, 3}, {5, 4, 3}, {2, 1 } {2, 1 } }; };

Nueva tabla int[2,3] implícita

 cuadrícula 

5 4 3 2 1 0


Cr eación de una tabla de tamaño calculado 

N o es necesar io 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: long[ ] fila = new long[4]; long[ ] fila = new long[4]; Tamaño de tabla especificado por valor entero de tiempo de ejecución: string s = Console.ReadLine(); string s = Console.ReadLine(); int tamano = int.Parse(s); int tamano = int.Parse(s); long[ ] fila = new long[tamano]; long[ ] fila = new long[tamano];


Copia de var iables de tablas 

Al copiar una var iable de tabla se copia sólo la var iable de tabla 

No se copia la tabla

Dos variables de tabla pueden apuntar a la misma tabla long[ ] fila = new long[4]; long[ ] fila = new long[4]; 0 0 0 0 long[ ] copia = fila; long[ ] copia = fila; ... ... fila[0]++; fila[0]++; long valor = copia[0]; long valor = copia[0]; Console.WriteLine(valor); Console.WriteLine(valor);

fila copia Variabl e

Tabla


 U so de tablas

Pr opiedades de tablas

M étodos de tablas

D evolución de tablas desde métodos

Paso de tablas como par ámetr os

Ar gumentos de línea de comandos

D emostr ación: Ar gumentos par a M ain

U so de tablas con for each

Pr oblema: ¿D ónde está el er r or ?


Pr opiedades de tablas

long[ ] fila = new long[4]; long[ ] fila = new long[4];

0 0 0 0

fila.Rank fila.Rank fila.Length fila.Length

11 44

fila

int[,] cuad = new int[2,3]; int[,] cuad = new int[2,3];

cuadrícula

0 0 0 0 0 0

cuad.Rank cuad.Rank cuad.Length cuad.Length

22 66


M étodos de tablas

M étodos utilizados fr ecuentemente 

Sor t: 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

GetL ength: Devuelve la longitud de una dimensión dada

I ndexOf: Devuelve el índice de la primera vez que aparece un valor


D evolución de tablas desde métodos

Es posible declar ar métodos par a que devuelvan tablas

class Example { class Example { static void Main( ) { static void Main( ) { int[ ] array = CreateArray(42); int[ ] array = CreateArray(42); ... ... } } static int[ ] CreateArray(int tamano) { static int[ ] CreateArray(int tamano) { int[ ] creada = new int[tamano]; int[ ] creada = new int[tamano]; return creada; return creada; } } }}


Paso de tablas como par ámetr os

U n par ámetr o de tabla es una copia de la var iable de tabla 

No es una copia de la tabla

class Example2 { class Example2 { static void Main( ) { static void Main( ) { int[ ] arg = {10, 9, 8, 7}; int[ ] arg = {10, 9, 8, 7}; Method(arg); Method(arg); System.Console.WriteLine(arg[0]); System.Console.WriteLine(arg[0]); } } static void Metodo(int[ ] parametro) { static void Metodo(int[ ] parametro) { parametro[0]++; parametro[0]++; Este Este método método modificar modificaráá } } la la tabla tabla or original iginal }} cr creada eada en en M Main ain


Ar gumentos de línea de comandos 

El r untime pasa ar gumentos de línea de comandos a M ain 

M ain puede aceptar como parámetro una tabla de cadenas de caracteres

El nombre del programa no es un miembro de la class Example3 { class Example3 { tabla

static void Main(string[ ] args) { static void Main(string[ ] args) { for (int i = 0; i < args.Length; i++) { for (int i = 0; i < args.Length; i++) { System.Console.WriteLine(args[i]); System.Console.WriteLine(args[i]); } } } } }}


U so de tablas con for each

L a instr ucción for each simplifica enor memente la manipulación de tablas

class Example4 { class Example4 { static void Main(string[ ] args) { static void Main(string[ ] args) { foreach (string arg in args) { foreach (string arg in args) { System.Console.WriteLine(arg); System.Console.WriteLine(arg); } } } } }}


Pr áctica – Cr eación y uso de tablas


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.