14
ARRAY/ VECTOR

Expo array

Embed Size (px)

DESCRIPTION

Exposicion de Metodo Array

Citation preview

Page 2: Expo array

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).

Page 3: Expo array

Í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)

Page 4: Expo array

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)

Page 5: Expo array

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;

Page 6: Expo array

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;

Page 7: Expo array

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

Page 8: Expo array

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.

Page 9: Expo array

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

Page 10: Expo array

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 :

Page 11: Expo array

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)

Page 12: Expo array

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 :

Page 13: Expo array

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;

Page 14: Expo array

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;