Unidad 5.: Arreglos Y Archivos

INSTITUTO TECNOLÓGICO DE LA CHONTALPA. MATERIA: ALGORITMO Y LENGUAJES DE PROGRAMACIÓN. UNIDAD 5. ARREGLOS Y ARCHIVOS.

Views 338 Downloads 1 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INSTITUTO TECNOLÓGICO DE LA CHONTALPA.

MATERIA: ALGORITMO Y LENGUAJES DE PROGRAMACIÓN.

UNIDAD 5. ARREGLOS Y ARCHIVOS. Prof.ª Ing. Mary Karen García Salas | Ing. Industrial 4º semestre, grupo A. Alum. Miguel Guadalupe Torres López (nº control_171160031) | 13/05/2019. Miguel Guadalupe Torres López. │Unidad 5│ P á g i n a 0 | 14 Algoritmo y lenguajes de programación.

ÍNDICE. UNIDAD 5. ARREGLOS Y ARCHIVOS……………………………………………2 

5.1 ARREGLOS UNIDIMENSIONALES…………………………………..3



5.2 ARREGLOS BIDIMENSIONALES Y MULTIDIMENSIONALES…...6



5.3 APERTURA, ENTRADA-SALIDA DE DATOS, Y CIERRE DE ARCHIVOS………………………………………………………………….10

CONCLUSIÓN………………………………………………………………………13 BIBLIOGRAFÍA……………………………………………………………………...14

Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 1 | 14

UNIDAD 5. ARREGLOS Y ARCHIVOS. Un arreglo es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Un arreglo puede tener 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 el elemento.

Partes de un arreglo. 1. 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. 2. 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. Existen tres formas de indexar los elementos de una matriz: 

Indexación base-cero (0): En este modo el primer elemento del vector será la componente cero (0) del mismo, es decir, tendrá el índice '0'. En consecuencia, si el vector tiene 'n' componentes la última tendrá como índice el valor n-1.



Indexación base-uno (1): En esta forma de indexación, el primer elemento de la matriz tiene el índice '1' y el último tiene el índice 'n' (para una matriz de 'n' componentes).



Indexación base-n (n): Este es un modo versátil de indexación en la que el índice del primer elemento puede ser elegido libremente, en algunos lenguajes de programación se permite que los índices puedan ser negativos e incluso de cualquier tipo escalar (también cadenas de caracteres).

Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 2 | 14

5.1 ARREGLOS UNIDIMENSIONALES Un arreglo es lineal o unidimensional cuando la referencia a uno de sus componentes se realiza a través de un único valor llamado Índice, que determina la posición del elemento dentro del arreglo. Estos arreglos son conocidos también como vectores. Declaración del arreglo. Cada elemento del arreglo lineal se indica con el nombre del vector seguido del Índice entre corchetes. Por ejemplo, en un arreglo a: 

a [5] representa el quinto elemento del vector a



a [1] representa el primer elemento del vector a



a [k] representa el k-ésimo elemento del vector a

En general haremos referencia a un elemento de un arreglo lineal de la siguiente forma: a [ i] Siendo a: nombre del arreglo, e i: Índice correspondiente al i-ésimo elemento del arreglo. Destacamos que el nombre del arreglo es “a”, y las posiciones de sus elementos pueden ser accedidas a través y cualquier variable numérica, constante o expresión numérica; en todos los casos el valor de dicho Índice debe ser un número natural (entero positivo). Consideremos el siguiente conjunto de datos numéricos: 105

129

178

234

392

165

para organizarlos en un arreglo unidimensional v. En ese caso la representación de estructura que debemos crear sería la siguiente:

v [1]

v [2]

v [3]

v [4]

v [5]

v [6]

105

129

178

234

392

165

Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 3 | 14

V [1] es el identificador o nombre de la posición de memoria donde se encuentra el valor 105, es decir el elemento ubicado en la posición 1 del vector. El tercer elemento el arreglo V [3] representa el dato 178. Si en un algoritmo indicamos V[k] estaremos referenciando al elemento que ocupa la posición k dentro del arreglo lineal y para ello la variable k debe estar previamente definida, es decir debe tener asignado un valor. Si k tiene asignado el valor 3, entonces V[k] hará· referencia a V [3]. Se hace notar entonces que el Índice puede obtenerse con cualquier identificador, constante o expresión. EJEMPLO: El siguiente programa carga el arreglo sqrs con los cuadrados de los números del 1 al 10 y luego los visualiza: Imagen 1. Arreglo unidimensional del ejemplo propuesto.

La forma como se almacenan los valores en el arreglo es la siguiente: 

sqrs [0] = 1*1



sqrs [1] = 2*2 Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 4 | 14



sqrs [2] = 3*3



sqrs [3] = 4*4



sqrs [4] = 5*5



sqrs [5] = 6*6



sqrs [6] = 7*7



sqrs [7] = 8*8



sqrs [8] = 9*9



sqrs [9] = 10*10

y muestra en pantalla:

Imagen 2. Arreglo unidimensional (código).

Como vimos los arreglos son de mucha utilidad cuando manejamos una lista de información y así elaborarla de manera rápida y óptima para nuestros programas.

(Loyarte, 2008)

Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 5 | 14

5.2 ARREGLOS BIDIMENSIONALES Y MULTIDIMENSIONALES. ARREGLOS BIDIMENSIONALES Si la posición de un elemento en un arreglo debe ser precisada a través de 2 Índices decimos que el arreglo es bidimensional. También se los conoce como tablas o matrices. En una tabla, el primer Índice nos da la posición de la fila y el segundo el de la columna. Por ejemplo, en un arreglo A de 3 filas y 4 columnas: A [1,1]

A [1,2]

A [1,3]

A [1,4]

A [2,1]

A [2,2]

A [2,3]

A [2,4]

A [3,1]

A [3,2]

A [3,3]

A [3,4]

En este caso el dimensionamiento y lectura de los elementos del arreglo A debemos hacerlo de la siguiente forma: Imagen 3. Arreglo bidimensional. . Dimensión A [3,4]; Para f  1 Hasta 3 Hacer Para c  1 Hasta 4 Hacer Leer B[f,c] FinPara FinPara .

En el tramo de algoritmo propuesto, estamos leyendo los elementos de la tabla por filas. Esto es porque para un valor de fila f recorremos con la variable c todas las columnas. Si intercambiáramos el anidamiento de las estructuras ParaHasta podríamos leer por columnas la matriz. EJEMPLO. int MiFuncion(int mi_arreglo[ ][5], int num_elementos); El siguiente programa le pide al usuario que introduzca 9 números y los almacena en un arreglo de dos dimensiones, en este caso una matriz de 3×3; Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 6 | 14

posteriormente utiliza una función llamada ImprimeMatriz para mostrar como quedaron almacenados los números en la matriz. Dicha función recibe como parámetros, la matriz de 3×3 y el tamaño de la primera dimensión (normalmente la primera dimensión son filas y la segunda dimensión columnas).

Imagen 4. Resolución del ejemplo propuesto.

(Correa, 2015) Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 7 | 14

ARREGLOS MULTIDIMENSIONALES. Es posible proponer estructuras de tipo arreglo, donde las posiciones de cada elemento deban ser referenciadas por 3 o más índices, es decir, son arreglos (estructuras de datos) estáticos que almacenan datos del mismo tipo y además poseen más de dos dimensiones,

además

de

arreglo

multidimensional suelen llamarse «tensores». Por ejemplo: si deseamos manejar en un algoritmo la lista de alumnos de una escuela de enseñanza media que posee 5 años, 6 divisiones por año y 30 alumnos por curso o división, deberemos dimensionar un arreglo tridimensional: Dimensión A [5,6,30] Y para referenciar al alumno Nro. 17, que cursa en 2do año, división 4: A [2,4,17]. Todos los conceptos vertidos para arreglos lineales y bidimensionales son válidos aquí también. EJEMPLO. Se necesita imprimir las horas, minutos y segundos de todo un día. Teniendo en cuenta que en programación existen varias maneras de solucionar un mismo problema, para obtener un ejemplo de arreglo multidimensional la solución se hará mediante con uno de ellos. La solución viene dada en un arreglo tridimensional, donde (nombremos a las dimensiones X, Y y Z ) la dimensión X contiene las horas, la dimensión, Y los minutos y Z los segundos.

Imagen 5. Representación gráfica del arreglo multidimensional. Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 8 | 14

Imagen 6. Código del ejemplo propuesto. Miguel Guadalupe Torres López. │Unidad 5│ Algoritmo y lenguajes de programación.

P á g i n a 9 | 14

5.3 APERTURA, ENTRADA-SALIDA DE DATOS, Y CIERRE DE ARCHIVOS. APERTURA DE ARCHIVOS: Conexión del archivo externo con el programa en un determinado modo (binario, de texto). Se utiliza la función: FILE * fopen (const char * nombre_archivo, const char * modo) Ejemplo: 

char nombre_archivo = “C:\test.txt”;



FILE * pfile = fopen(nombre_archivo, “r”);



if(pfile==NULL)



puts(“ERROR al abrir el archivo…”);

Modos de apertura de un archivo: Modo

Descripción

r

Abre para lectura

w

Crea un archivo nuevo, si existe se pierden sus datos

a

Abre para añadir al final del archivo

r+

Abre archivo existente para leer o escribir

w+

Crea un archivo para leer o escribir, si existe se pierden sus datos

a+

Abre archivo para leer o escribir al final. Si no existe es como w+

Tipo de archivos:  Texto: Se utiliza una “t” al final. Ejemplo: “rt”, “a+t”  Binario: Se utiliza una “b”. Ejemplo: “rb”, “w+b”. Miguel Guadalupe Torres López. │Unidad 5│P Algoritmo y lenguajes de programación.

á g i n a 10 | 14

ENTRADA Y SALIDA DE DATOS. Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables. Esta entrada se conoce como operación de lectura. 

La lectura es la asignación de un valor a una variable a través del teclado. Se realiza usualmente desde el teclado, el disco, o cualquier otro dispositivo de entrada.



Los resultados de la operación de salida pueden aparecer un una pantalla o impresora. La operación de salida se denomina escritura. Se realiza usando cualquier dispositivo de salida como monitor o impresora.

Para que un programa pueda ejecutar las tareas para las que fue creado es necesario que se pueda comunicar con los usuarios para capturar la información y presentar los resultados. En C++ las funciones para entrada y salida están incorporadas como Biblioteca de Ejecución. 

Stdio.h:

proporciona tipos de datos, macros y funciones para

acceder a archivos. 

El manejo de archivos se hace a través de flujos (streams) o canales, que conducen los datos entre el programa en ejecución y los dispositivos externos.

CIERRE DE ARCHIVOS. 1. Los archivos en C++ trabajan con una memoria intermedia conocida como buffer. 2. La entrada y salida de datos se almacenan en ese buffer, vaciándose a los archivos cuando están llenos.

Miguel Guadalupe Torres López. │Unidad 5│P Algoritmo y lenguajes de programación.

á g i n a 11 | 14

3. Al terminar la ejecución del programa se tienen que cerrar los archivos para que cualquier dato en los buffers se vacíe a los archivos. 

int fclose (FILE * pfile)



Devuelve EOF si hay un error al cerrar. Es una macro definida en stdio.h para indicar que se ha leído el fin del archivo.

Ejemplo: Crea un archivo de texto con caracteres introducidos desde teclado, utiliza enter para parar: char * nfile = "test.txt"; FILE * pf = fopen(nfile,"w+t"); if(pf==NULL){ puts("Error al abrir archivo!"); exit(0); }else{ int c; do{ c=getchar(); fputc(c,pf); }while(c!='\n'); fclose(pf); }

(Nigenda, 2010)

Miguel Guadalupe Torres López. │Unidad 5│P Algoritmo y lenguajes de programación.

á g i n a 12 | 14

CONCLUSIÓN. En el estudio de arreglos en lenguaje de programación, podemos entender que su utilidad nos permite organizar un conjunto de datos homogéneos, es decir que esta formado por elementos con características comunes y cuyos elementos se referencian por su posición dentro de la estructura. Una característica importante que identificamos con los arreglos es que todos tienen un nombre genérico único y sus elementos se relacionan lógicamente entre sí, además sus dimensiones están declaradas en el algoritmo que utiliza, por ejemplo, la sintaxis en el arreglo unidimensional es: Dimensión nombrearreglo [cantidad. Al tratar de solucionar un problema de programación en particular, debemos analizar la organización de sus datos y de esa manera proponer que tipo de arreglo y estructura utilizar, algunos ejemplos que requieren de manipulación de grandes números son: la predicción del clima, la construcción de edificios, y el análisis de indicadores financieros entre muchos otros. Otro de los temas abarcados en esta unidad fueron los archivos, donde analizamos la apertura de archivos, la entrada y salida de datos y el cierre de archivos, por lo que podemos concluir que los archivos son ficheros o datos almacenados en algún recurso de la memoria una de sus principales características es que todos los archivos tienen un nombre y una ubicación dentro del sistema operativo. Otra característica asociada a los ficheros es que su tamaño sólo está limitado por el espacio libre disponible en el dispositivo correspondiente. De igual manera dependiendo del contenido existen varios tipos de archivos, los mas comunes son el de tipo binario y el de texto medidos por bites dependiendo su extensión. La manera en que se agrupan los datos de un archivo dependerá de la persona que los diseñe que van desde los más básicos a los mas complejos. Sin estos archivos nuestros datos serian eliminados y la computadora no procesaría información para ejecutar determinadas acciones. Miguel Guadalupe Torres López. │Unidad 5│P Algoritmo y lenguajes de programación.

á g i n a 13 | 14

BIBLIOGRAFÍA 

Correa, J. G. (2015). Programación I . Ecuador: Universidad Técnica de Machala .



Loyarte, I. H. (2008). Fundamentos de programación. Argentina: Universidad Nacional del Litoral.



Nigenda, D. R. (2010). Programación Científica. CIDET.

Miguel Guadalupe Torres López. │Unidad 5│P Algoritmo y lenguajes de programación.

á g i n a 14 | 14