ESTRUCTURA DE DATOS: ARREGLOS



Documentos relacionados
ARREGLOS DEFINICION GENERAL DE ARREGLO

Estructura de datos (arreglos) Vectores y Matrices

Modulo 1 El lenguaje Java

Introducción al tipo de dato ARRAY

Matrices equivalentes. El método de Gauss

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Fundamentos de la Programación

Tema 3. Espacios vectoriales

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

Arreglos y Registros

La ventana de Microsoft Excel

INTRODUCCION A LA PROGRAMACION DE PLC

2_trabajar con calc I

Arrays y Cadenas en C

1.1. Introducción y conceptos básicos

Tema 2. Espacios Vectoriales Introducción

GENERACIÓN DE TRANSFERENCIAS

PRACTICA 6. VECTORES Y MATRICES.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Comenzando con MATLAB

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Centro de Capacitación en Informática

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Administración de la producción. Sesión 10: Gestor de Base de Datos (Access)

Centro de Capacitación en Informática

1. DML. Las subconsultas

Ejemplos de conversión de reales a enteros

Vectores. 27/05/05 Programación Digital I 1

Academia técnica de computación A.T.C.

Capítulo 4 Procesos con estructuras de repetición

Indicaciones específicas para los análisis estadísticos.

Roberto Quejido Cañamero

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Subespacios vectoriales en R n

Estructuras de Control - Diagrama de Flujo

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Práctica 0. Emulador XENON de la computadora CESIUS

PESTAÑA DATOS - TABLAS EN EXCEL

Tema 2. Software. Informática (1º Ingeniería Civil)

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Módulo 9 Sistema matemático y operaciones binarias

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

Planilla de cálculo. Módulo II - OpenOffice.org Calc

Guía N 1: Fundamentos básicos(i)

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Estructuras de datos: Proyecto 2

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

PRÁCTICAS DE GESTIÓN GANADERA:

Espacios generados, dependencia lineal y bases

Curso Excel Básico - Intermedio

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Matrices Invertibles y Elementos de Álgebra Matricial

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

MATEMÁTICAS CON LA HOJA DE CÁLCULO

15 CORREO WEB CORREO WEB

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Matemática de redes Representación binaria de datos Bits y bytes

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

MICROSOFT EXCEL Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL

Trabajo Práctico Nº 8 Tipo Registros. Búsqueda y Ordenación en Arreglos.

Bases de datos en Excel

Sobre la lectura y escritura de datos en FORTRAN.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Contenidos. Archivos en C++ Archivos en C++ Introducción

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

- Bases de Datos - - Diseño Físico - Luis D. García

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

Introducción a la Estadística con Excel

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Operación de Microsoft Excel

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

Microsoft Excel Unidad 6. La Hoja de Cálculo

PROGRAMACIÓN ORIENTADA A OBJETOS

Estimado usuario. Tabla de Contenidos

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

Analisis de algoritmos

1. INVERSA DE UNA MATRIZ REGULAR

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Algoritmos y Diagramas de Flujo 2

GENERACIÓN DE ANTICIPOS DE CRÉDITO

PROYECTO EDUCATIVO LA CALERA

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Matemáticas para la Computación

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Microsoft Access proporciona dos métodos para crear una Base de datos.

NORMA 34.14(SEPA) 05/11/2013

Mantenimiento Limpieza

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

MatemásTIC. Estudio y práctica del álgebra matricial con una aplicación TIC didáctica y sencilla. 65 Noviembre 2010, pp

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

Transcripción:

ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo

1. Introducción (I) ESTRUCTURA DE DATOS: Arreglos Cuando hablamos de Estructuras de Datos hacemos referencia a un conjunto de datos que poseen el mismo nombre, que pueden ser caracterizados por su organización y por las operaciones que se definen en ella. DATOS SIMPLES Estandar --> Entero Real Caracteres - Logico ESTRUCTURA DE DATOS Estatica --> Vectores y Matrices, Registro, Archivos Dinamica --> Lineales: Listas, Pilas Colas --> No lineales: Arboles y Grafos

1. Introducción (II) ESTRUCTURA DE DATOS: Arreglos Las estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria se define antes que el programa se ejecute y el mismo no puede ser modificado durante la ejecución. Los tipos de datos que vimos hasta ahora son datos simples cuya característica común es que cada variable representa a un elemento; en cambio los tipos de datos estructurados tienen como particularidad que con un nombre o identificador se puede representar múltiples datos individuales y a su vez cada uno de estos puede ser referenciado independientemente.

2. Arreglos: Concepto ESTRUCTURA DE DATOS: Arreglos Arreglos se define como una colección finita, homogénea y ordenada de elementos. Finita: Todo arreglo tiene un límite, es decir, debe determinarse cual será el número máximo de elementos que podrán formar parte del arreglo. Homogénea: Todos los elementos de un arreglo son del mismo tipo o naturaleza (todos enteros, todos booleanos, etc.- ), pero nunca una combinación de distintos tipos. Ordenada: Se debe determinar cual es el primer elemento, el segundo, el tercero... y el enésimo elemento. A R R E G L O 1 º E L E M E N T O 2 º E L E M E N T O N - E L E M E N T O

2. Arreglos: Caracteristicas ESTRUCTURA DE DATOS: Arreglos Si un arreglo tiene la característica de que puede almacenar a N elementos del mismo tipo, deberá tener la posibilidad de permitir seleccionar a cada uno de ellos. Así se distinguen dos partes en los arreglos. Los componentes o elementos (valores que se almacenan en c/u de las casillas) Los índices (Permiten hacer referencia a los componentes) El número total de componentes (NTC) es igual al límite superior (LS) menos límite inferior (LI) mas 1 El tipo de enumerado) NTC = LS - LI + 1 índice puede ser cualquier tipo ordinal (car ácter, entero, El tipo de los componentes puede ser cualquiera (entero, real, cadena de caracteres, registro, etc.) Se utilizan ( ) para indicar el índice de un arreglo. Entre los ( ) se debe escribir un valor ordinal (puede ser una variable, una constante o una expresión que dé como resultado un valor ordinal)

De esta manera, por ejemplo: V(1) hace referencia al elemento de la posición 1 cuyo valor es 52 V(2) hace referencia al elemento de la posición 2 cuyo valor es 12... 2. Arreglos: Caracteristicas ESTRUCTURA DE DATOS: Arreglos Ejemplo Sea V un arreglo de 30 elementos enteros con índices enteros. V = (52,12,31,102,...75) V (50)= v(1), v(2), v(3),..., v(30), Su representación grafica serà Componentes 52 12 31 102... 75 1 2 3 4... 30 Donde Indices NTC = (30 1 + 1) = 30 Cada componente del arreglo V será un número entero, y podrá accederse por medio de un índice que será un valor comprendido entre 1 y 30.

2. Arreglos: Caracteristicas ESTRUCTURA DE DATOS: Arreglos En cuanto a las dimensiones los arreglos pueden ser: Unidimensional o vector: un solo índice Bidimensional o matriz: dos índices Multidimensional: mas de dos índices Diferencia con registros Las dos diferencias sustanciales entre arreglos y registro son: 1) Un arreglo puede almacenar N elementos del mismo tipo, mientras que un registro puede almacenar N elementos de distintos tipos que se llaman campos. 2) Los componentes de un arreglo se acceden por medio de índices, mientras que en un registro los campos se acceden por medio de su nombre, el cual es único.

3. Arreglos Unidimensionales: Vectores Operaciones Podemos clasificar a las operaciones en las que intervienen arreglos de la siguiente manera: Lectura / escritura Recorrido Asignación Actualización (Añadir, eliminar, insertar) Ordenación Búsqueda Como los arreglos son datos estructurados, muchas de estas operaciones no pueden llevarse a cabo de manera global, sino que se debe trabajar sobre cada componente. Seguidamente se analizará cada una de estas operaciones, excepto las dos últimas (ordenación y búsqueda) que serán estudiadas en capítulos posteriores.

3. Arreglos Unidimensionales: Vectores Operaciones: Lectura / escritura El proceso de lectura /escritura de un arreglo se realiza de la siguiente manera: Leer V(i) Lee todo el arreglo Escribir V(i) Escribe todo el arreglo Leer V(3) Lee el elemento 3 del arreglo La notacion grafica correspondiente Leer V(i) i = 1 a 30

3. Arreglos Unidimensionales: Vectores Operaciones: Recorrido Recorrer un vector significa acceder a todos y a cada uno de sus elementos desde el principio hasta el final o viceversa. Se puede acceder a los elementos de un vector para introducir datos (leer) en él o bien para ver su contenido (escribir). A la operación de acceder a todos los elementos para efectuar una acción determinada se denomina recorrido del vector. Esta operación se realiza usando estructuras repetitivas, cuya variable de control I, se utiliza como subíndice del vector (por ejemplo V(i). El incremento del contador del bucle producirá el tratamiento sucesivo de los elementos del vector. Esta operación es muy utilizada en este tipo de estructuras de datos, dado que cuando se está en presencia de un vector, el acceso a toda la información se realiza recorriéndolo. En algunos casos se puede acceder a un determinado elemento o a varios de ellos con ciertas características sin necesidad de recorrer todo el arreglo, por ejemplo acceder solo al último elemento que sabemos a priori posee la suma de los elementos anteriores.

3. Arreglos Unidimensionales: Vectores Operaciones: Recorrido C o m ie n z o S U M A = 0 L e e r V( i) i = 1 a 3 0 I = 1 S U M A = S U M A + V( i) I = 3 0 N o I = I + 1 S I P a r a r

3. Arreglos Unidimensionales: Vectores Operaciones: Actualizacion Muchas veces resulta interesante que dado un arreglo, puedan añadirse nuevos elementos o eliminar o insertar componentes. Estas resultan las tres operaciones elementales que se pueden realizar en un arreglo: añadir, eliminar e insertar elementos. Cuando se realiza una operación de añadir un nuevo elemento a continuación del último valor no nulo, la única condición necesaria para esta operación es comprobar que haya espacio para el nuevo elemento.

3. Arreglos Unidimensionales: Vectores Operaciones: Actualizacion Ejemplo Dado un vector C de 8 elementos que contiene una nómina de 5 direcciones de correo ordenadas alfabéticamente. Se desea añadir la dirección valeria@server.com 1 alicia@server.com alicia@server.com 1 Comenzar 2 castor@server.com castor@server.com 2 3 4 daniel@server.com marta@server.com daniel@server.com marta@server.com 3 4 C(I) I = 1 a 8 5 sonia@server.com sonia@server.com 5 6 valeria@server.com 6 C(6) = "valeria@server.com" 7 7 8 8 Parar

3. Arreglos Unidimensionales: Vectores Operaciones: Actualizacion La operación de eliminar un elemento al final del arreglo no presenta ningún problema; en cambio, si el borrado se realiza en el interior del mismo esto provoca el efecto contrario al de insertar, el movimiento deberá ser hacia arriba (I-1) de los elementos inferiores a él para reorganizar el vector.

4. Arreglos Bidimensionales: Matrices Un arreglo de dos dimensiones, también denominada matriz, se define como una tabla de tablas, o vector de vectores, es decir, es aquella en la cual uno de sus elementos es, a su vez, una tabla unidimensional. Podemos comparar una matriz con una hoja de papel cuadriculado en la que cada cuadrícula corresponderá a un elemento. Columna 1 Columna 2 Columna 3 Columna 4 En este gráfico podemos observar que cada fila está dividida en varias columnas. Por lo tanto, para poder referenciar un elemento de la matriz, hay que especificar el nombre de la misma (igual que con los vectores) y, entre paréntesis, dos subíndices separados por coma; el primero indicará la fila en la que se encuentra el elemento y el segundo la columna. Fila 1 Fila 2 Fila 3 12

4. Arreglos Bidimensionales: Matrices El caso anterior, representado en forma matricial sería Donde la matriz llamada MAT tiene filas que varían de 1 a 3 y columnas que varían de 1 a 4, por lo tanto diremos que la matriz MAT tiene 3 x 4 elementos. I = 1...3 J = 1...4 Si generalizamos el rango, resultaría: I = 1...M J = 1...N 1 2 3 1 2 3 4 MAT(I,J) Y diremos que la matriz MAT tiene M x N elementos. Existen N elementos en cada fila y M elementos en cada columna. El resultado de multiplicar la cantidad de filas por cantidad de columnas es el tamaño de la matriz. En nuestro ejemplo anterior el tamaño es de 12 (3 x 4).

4. Arreglos Bidimensionales: Matrices Recorrido de una matriz Como vimos anteriormente, recorrer una tabla de dos dimensiones significa acceder a todos y a cada uno de sus elementos. Este proceso de recorrer la matriz se llevará a cabo mediante la estructura repetitiva anidada. El recorrido de los elementos de la matriz se puede realizar por fila o por columna. Para recorrer por fila la matriz MAT se debe realizar dos estructuras repetitivas anidadas. En la primera de ellas (las mas externa) se realizan tres iteraciones para recorrer las 3 filas. En cada una de esas iteraciones, se realizará a su vez 4 iteraciones para recorrer los 4 elementos de cada fila (uno por cada columna). Sentido en que se recorre una matriz por fila Sentido en se recorre una matriz por columna

4. Arreglos Bidimensionales: Matrices Recorrido de una matriz Ejemplo Supongamos que tenemos una matriz que contiene de los doce meses del año las 4 temperaturas máximas de cada mes T(12,4) y se desea imprimir los datos. 01 enero 02 febrero 03 marzo 04 abril 12 diciembre Temperatura Máxima 1 Temperatura Máxima 2 Temperatura Máxima 3 Temperatura Máxima 4 30 31 33 30 29 31 30 30 22 24 24 23 25 23 24 24............ 28 26 29 30 Si deseamos imprimir los datos por mes (fila de la matriz) debemos recorrer la misma por fila de forma tal que por cada fila debemos recorrer las 4 columnas de la misma. Pero como la matriz tiene 12 filas, este proceso se repite 12 veces uno por cada fila y de esta manera formamos dos ciclos anidados. Uno mas externo fila - que se repite 12 veces y uno mas interno columna que por cada fila se repite 4 veces.

4. Arreglos Bidimensionales: Matrices Recorrido de una matriz Entonces, recorrer esta matriz para imprimirla consistirá en: - Posicionarse en la primer fila (I=1) y recorrer todas sus columnas (desde J=1 hasta J=4). - Posicionarse en la segunda fila (I=2) y volver a recorrer, nuevamente, todas sus columnas (desde J=1 hasta J=4). - Repetir estas operaciones para cada valor de I hasta que se hayan realizado para la última fila, es decir para I=12. 12 FILAS 4 COLUMNAS POR CADA FILA DEBO RECORRER LAS CUATRO COLUMNAS DE LA MATRIZ

COMENZAR ESTRUCTURA DE DATOS: Arreglos 4. Arreglos Bidimensionales: Matrices Recorrido de una matriz El Pseudocódigo y diagrama de flujo correspondientes para recorrer e imprimir la matriz T(12,4) sería: T(I, J) I = 1,12 J = 1,4 I = 1 J = 1 Comenzar Para I = 1 a 12 ciclo de I ciclo de J T(I,J) Para J = 1 a 4 J = 4 No J = J + 1 Imprimir T(I,J) Si Fin_para I = 4 No I = I + 1 Fin_para Si Parar. PARAR

5. Ventajas del uso de arreglos Posibilita el uso de menor cantidad de nombres de variables, dado que con un solo nombre genérico se almacenan N datos, mientras que con el uso de datos simples necesitaríamos N nombres de variables distintas. Menor tamaño del algoritmo cuando se utiliza gran cantidad de variables al mismo tiempo en memoria. A partir de un archivo desordenado, los arreglos permiten generar los mismos datos con un cierto orden. Se tiene todo el conjunto de datos en memoria sin necesidad de acceder al dispositivo. La facilidad de acceso a la información, ya sea a un elemento en particular o a un grupo con ciertas condiciones; y por otro lado los distintos sentidos para el recorrido del mismo, pueden ser desde el inicio al fin o viceversa. Los arreglos permiten el uso de parámetros en la definición del tamaño, con lo cual se logra mayor flexibilidad en los algoritmos

program Ejemplo 1 {Ingresa un parametro M y un vector. Informa la suma de sus elementos positivos e imprime el vector} uses Crt ; var i, j, suma_positivos, m : integer; vector : array [1..100] of real; tecla : char; begin clrscr; writeln('ingrese cantidad de elementosdel vector < 100):'); readln(m); {carga el vector por pantalla} for i:=1 to m do begin write(i,'i) '); readln(vector[i]) end; {recorre el vector} for I := 1 to m do begin if vector[i] > 0 then suma_positivos:=suma_positivos+1 end; {Imprime el vector y los valores hallados} writeln('lista el Vector:'); for i:=1 to m do write (vector[i]:6:2); writeln(''); writeln('cantidad de positivos: ',suma_positivos:6); tecla:=readkey end.

program Ejemplo 2 {Ingresar una matriz A(10,8), calcular e informar la suma de sus elementos} Uses WinCrt; var i,j,suma:integer; A:array[1..3,1..2]of integer; begin clrscr; writeln('ingrese los elementos de la matriz (números enteros)'); {carga la matriz y suma los elementos} for i:= 1 to 3 do begin for j:= 1 to 2 do begin write('ingrese el elemento de la posición ',i,', ',j,': '); readln(a[i,j]); suma:=suma+a[i,j]; end; end; end. Writeln('La suma de los elementos de la matriz es: ',suma);