Upload
ed-burke
View
647
Download
2
Embed Size (px)
DESCRIPTION
Exposicion de Metodo Array
Citation preview
ARRAYEn programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).
Índices
Todo vector se compone de un determinado número de elementos. Cada elemento es referenciado por la posición que ocupa dentro del vector. Dichas posiciones son llamadas índice y siempre son correlativos. Existen tres formas de indexar los elementos de una matriz:
1). Indexación base-cero (0):
vector[índice_0][índice_1]...[índice_N]
2). Indexación base-uno (1):
vector[índice_1,índice_2...,índice_N]
3). Indexación base-n (n):
vector(índice_1,índice_2...,índice_N)
Notación
La representación de un elemento en un vector se suele hacer mediante el identificador del vector seguido del índice entre corchetes, paréntesis o llaves:
Notación
vector[índice_1,índice_2...,índice_N]
vector[índice_0][índice_1]...[índice_N]
vector(índice_1,índice_2...,índice_N)
Aunque muchas veces en pseudocódigo y en libros de matemática se representan como letras acompañadas de un subíndice numérico que indica la posición a la que se quiere acceder. Por ejemplo, para un vector "A":
A0,A1,A2,... (vector unidimensional)
Forma de acceso
La forma de acceder a los elementos de la matriz es directa; esto significa que el elemento deseado es obtenido a partir de su índice y no hay que ir buscándolo elemento por elemento (en contraposición, en el caso de una lista, para llegar, por ejemplo, al tercer elemento hay que acceder a los dos anteriores o almacenar un apuntador o puntero que permita acceder de manera rápida a ese elemento).Para trabajar con vectores muchas veces es preciso recorrerlos. Esto se realiza por medio de bucles.
Por Ejemplo:
for i:=1 to MaxPersonas-1 do begin for j:=i+1 to MaxPersonas do begin if edades[i]>edades[j] then begin paso :=edades[i]; edades[i]:=edades[j]; edades[j]:=paso end end;
Vectores dinámicos y estáticos
Lo habitual es que un vector tenga una cantidad fija de memoria asignada, aunque dependiendo del tipo de vector y del lenguaje de programación un vector podría tener una cantidad variable de datos. En este caso, se les denomina vectores dinámicos, en oposición, a los vectores con una cantidad fija de memoria asignada se los denomina vectores estáticos.
Ejemplos:
Edad =array [1..5] of integer;
Edad=array[1..np] of integer;
Arrays/Vector unidimensionales
Un array de una dimensión (vector o lista) es un tipo de datos estructurado compuesto de un número de elementos finitos, tamaño fijo y elementos homogéneos (mismos tipos).
Nombre del vector edades Subíndice [1],[2],... Contenido edades[2]= 28
Arrays paralelos
Dos o más arrays que utilizan el mismo subíndice para referirse a términos homólogos se llaman arrays paralelos.
Basados en el programa anterior se tienen las edades de 'x' personas, para saber a que persona se refiere dicha edad se puede usar otro arreglo en forma paralela y asociarle los nombres de manera simultánea con las edades.
Arrays bidimensionales (tablas)
Un array bidimensional (tabla o matríz) es un array con dos índices, al igual que los vectores que deben ser ordinales o tipo subrango.
Para localizar o almacenar un valor en el array se deben especificar dos posiciones (dos subíndices), uno para la fila y otro para la columna.Formato:
1. identificador = array [índice1, indice 2] of tipo de elemento 2. identificador = array [ índice 1 ] of array [ indice 2 ] of tipo de elemento
Supongase que se desea almacenar las calificaciones de 5 alumnos obtenidas en 3 examenes y mostrar en orden ascendente sus promedios respectivamente. En este caso se usará un array bidimensional (tabla o matríz) de 5 filas y 4 columnas en la cual se almacenará las calificaciones de 3 examenes en 3 columnas y la cuarta columna se utilizará para almacenar su promedio respectivo, además de un array unidimensional (vector) donde en forma paralela se almacenarán los nombres de los alumnos de la siguiente forma :
Vectores multidimensionales
En Basic, Java y otros lenguajes es posible declarar matrices multidimensionales, entendiéndolas como un vector de vectores. En dichos casos en número de elementos del vector es el producto resultante de cada dimensión.Por ejemplo el vector v (4,1) tiene 10 elementos se calcula del siguiente modo: (0-4) * (0-1). Los elementos de la primera dimensión del vector contiene 5 elementos que van del '0' al '4' y la 2º dimensión tiene 2 elementos que van desde '0' a '1'. Los elementos serían accedidos del siguiente modo:
elemento 1: (0,0)elemento 2: (0,1)elemento 3: (1,0)
elemento 8: (3,1)elemento 9: (4,0)elemento 10: (4,1)
Turbo Pascal no limita el número de dimensiones de un array, pero sí que debe estar declarado el tipo de cada subíndice.Formato :
1. identificador = array [índice1] of array [índice 2].. of array [índice n] of tipo de elemento
2. identificador = array [índice 1, índice 2,...,índice n] of tipo de elemento
Ampliando el ejemplo anterior supongase que ahora deseamos capturar calificaciones para 3 materias en cuyo caso aplicaremos un array tridimensional. De la siguiente forma :
La estructura array
Var Alumno : array [1..MaxAlumno] of string[10]; examen : array [1..MaxAlumno,1..MaxExamen,1..MaxMateria] of real; aux_examen : array [1..MaxExamen]of real;
Las variables de tipo array se declaran en la sección Var o Type.
Declaración en Var:
Var nombres : array[1..30] of string[30]; calif : array[1..30] of real; numero : array[0..100] of 1..100;
Declaración en Type:
Type nombres : array[1..30] of string[30]; calif : array[1..30] of real; numero : array[0..100] of 1..100; Var nom : nombres; califica : calif; num : numero;