domingo, 23 de septiembre de 2007

Clase 10: Estructuras de datos y arreglos.

Materia: Lógica Computacional
Profesor: Lic. Salomón Aquino.
Objetivos de la clase:
Al final de la clase los alumnos y alumnas serán capaces de:
Asimilar los conceptos generales de estructuras de datos y arreglos.
Resolver problemas usando arreglos en una dimensión (vectores).




Introducción:
Todas las variables que se han considerado hasta ahora son de tipo simple. Una variable de tipo simple consiste de una sola caja de memoria y sólo puede contener un valor cada vez.
Una variable de tipo estructurado consiste en toda una colección de casillas de memoria.
Los tipos de datos estudiados: entero, real, alfabético son considerados como datos de tipo simple, puesto que una variable que se define con alguno de estos tipos sólo puede almacenar un valor a la vez, es decir, existe una relación de uno a uno entre la variable y el número de elementos (valores) que es capaz de almacenar.
En cambio un dato de tipo estructurado, como el arreglo, puede almacenar más de un elemento (valor) a la vez, con la condición de que todos los elementos deben ser del mismo tipo, es decir, que se puede tener un conjunto de datos enteros, reales, etc.
Estructuras de datos:
Estructura de Datos es una colección de datos que se caracterizan por su organización y las operaciones que se definen en ella.
Los datos de tipo estándar pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas.
Estructura de Datos estáticas:
Son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilación y no puede ser modificado durante la ejecución del programa.
Corresponden a este tipo los arrays y registros
Estructuras de Datos Dinámicas:
Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecución.
Corresponden a este tipo las listas, árboles y grafos .
Estas estructuras no son soportadas en todos los lenguajes.
La elección de la estructura de datos idónea dependerá de la naturaleza del problema a resolver y, en menor medida, del lenguaje.
Las estructuras de datos tienen en común que un identificador, nombre, puede representar a múltiples datos individuales.
Arreglos o Arrays:
Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un array se deberá utilizar un índice, que especifique su posición relativa en el array.
Un arreglo es una colección finita, homogénea y ordenada de elementos.
Finita:Todo arreglo tiene un límite; es decir,debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo.
Homogénea: Todos los elementos del arreglo deben ser del mismo tipo.
Ordenada: Se puede determinar cuál es el primer elemento, el segundo, el tercero,.... y el n-ésimo elmento.
Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se tienen los:
Unidimensionales (vectores)
Bidimensionales (tablas o matrices)
Multidimensionales (tres o más dimensiones)

Tipos de arreglos:




Arreglos unidimensionales:
Están formados por un conjunto de elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por la posición que tiene cada elemento dentro del arreglo de datos.dentro del arreglo, los programas especifican el nombre de éste y el número del elemento, colocándolo dentro de corchetes, como en calificación[3].
Al declarar un arreglo, se debe inicializar sus elementos antes de utilizarlos.
Para declarar un arreglo tiene que indicar su tipo, un nombre único y la cantidad de elementos que va a contener. Por ejemplo, las siguientes instrucciones declaran tres arreglos distintos:
Float costo_partes[50];
Int edad_empleados[100];
Float precios_acciones[25];

Ejemplo de arreglo unidimensional:



Para acceder a valores específicos del arreglo, use un valor de índice que apunte al elemento deseado. Por ejemplo, para acceder al primer elemento del arreglo calificaciones debe utilizar el valor de índice 0 (calificaciones[0]).
Los programas en C++ siempre indizan el primer elemento de un arreglo con 0 y el último con un valor menor en una unidad al tamaño del arreglo.
Inicialización y asignación de valores:
Como se decía anteriormente, antes de utilizar un arreglo es necesario inicializarlo:
Para inicializar todos los elementos de una vez, se colocan dentro de una estructura for que va del primer elemento al último que contiene el arreglo.
Para asignar un valor a un elemento del arreglo se hace por ejemplo:
Calificaciones[0] <- 100;
Cuando se usan arreglos, una operación común es usar una variable índice para acceder a los elementos de un arreglo. Suponiendo que la variable índice I contiene el valor 3, la siguiente instrucción asigna el valor 400 a valores[3]:
valores[I] <- 400;
Partes de un arreglo:
Los componentes. Hacen referencia a los elementos que forman el arreglo, es decir, a los valores que se almacenan en cada una de las casillas del mismo.
Los índices. Permiten hacer referencia a los componentes del arreglo en forma individual, especifican cuántos elementos tendrá el arreglo y además, de qué modo podrán accesarse esos componentes.
Operaciones con vectores:
Las operaciones que se pueden realizar con vectores durante el proceso de resolución de un problema son:
Lectura/ escritura
Asignación
Actualización ( inserción, eliminación, modificación)
Recorrido (acceso secuencial)
Ordenación
Búsqueda

Lectura y escritura de vectores:
Lectura
El proceso de lectura de un arreglo consiste en leer y asignar un valor a cada uno de sus elementos. Normalmente se realizan con estructuras repetitivas, aunque pueden usarse estructuras selectivas.
Usamos los índices para recorrer los elementos del arreglo:
desde i = 1 hasta 70 hacer
leer ( arre[i])
fin_desde
Escritura:
Es similar al caso de lectura, sólo que en vez de leer el componente del arreglo, lo escribimos.
leer (N)
desde i = 1 hasta N hacer
escribir (arre[i])
fin_desde
Asignación e Inicialización de vectores:
Asignación:
No es posible asignar directamente un valor a todo el arreglo; sino que se debe asignar el valor deseado en cada componente. Con una estructura repetitiva se puede asignar un valor a todos los elementos del vector.
Por ejemplo:
arre[1] <- 120 (asignación de un valor constante único a una casilla del vector)
arre[3] <- arre[1] / 4 (asignar una operación)
Se puede asignar un valor constante a todos los elementos del vector:
desde i = 1 hasta 5 hacer
arre[i] <- 3
fin_desde
O bien
arre <- 3 (con arre del tipo arreglo)
Inicialización
Para inicializar con cero todos los elementos del arreglo:
desde i = 1 hasta 70 hacer
arre[i] <- 0
fin_desde
Acceso secuencial y Actualización de vectores:
Acceso Secuencial. (Recorrido)
El acceso a los elementos de un vector puede ser para leer en él o para escribir (visualizar su contenido).
Recorrido del vector es la acción de efectuar una acción general sobre todos los elementos de ese vector.
Actualización.
Incluye añadir (insertar), borrar o modificar algunos de los ya existentes. Se debe tener en cuenta si el arreglo está o no ordenado.
Añadir datos a un vector consiste en agregar un nuevo elemento al final del vector, siempre que haya espacio en memoria.
Fin de la clase.
Gracias por asistir.

9 comentarios:

Anónimo dijo...

pudranse

Anónimo dijo...

Gracias por la info ta wena, pero podrian explicar como se hace un arreglo(matriz) en diagramas de flujo?...como se declaran etc.
Chau

Anónimo dijo...

hola "maestro", acabo de ver el contenido de "SU CLASE"; creo que los jóvenes merecemos respeto, y por eso hago del conocimiento a mis compañeros de la fuente de esta información, si quieren estar mejor capacitados en estos temas mejor visiten
http://www.mailxmail.com/curso-aprende-programar/estructuras-datos-arreglos
creo que les será mucho más útil que la técnica "Copy-Paste" que ha hecho el "maestro"

Anónimo dijo...

http://www.mailxmail.com/curso-aprende-programar

http://www.mailxmail.com/curso-aprende-programar/estructuras-datos-arreglos

http://www.mailxmail.com/curso-aprende-programar

Anónimo dijo...

hola otra vez, soy el autor de los dos comentarios anteriores, y estoy de vuelta para ayudar al jóven del segundo comentario, visita:
http://exa.unne.edu.ar/depar/areas/informatica/programacion1/public_html/archivos/estructuras_arreglos.pdf
tal vez, ahí encuentres los que necesitas, hasta luego

"Luchando por formar gente competente"

Anónimo dijo...

ta buena la informacion pero no contiene todo lo que mis tareas piden, gracias

Elmer Condezo Cruz dijo...

hola como estan un gran favor necesito urgente 10 ejercicios de arreglos unidimensionales les agradeceria bastante gracias si me lo mandan flad81@hotmail.com

Anónimo dijo...

mamadas estupidas

Anónimo dijo...

mamadas estupidas