Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


MANEJO DE ARCHIVOS C++, Ejercicios de Algoritmos y Programación

MANEJO DE ARCHIVOS C++ EN ALGORITMOS Y LENGUAJES DE PROGRAMACIÓN

Tipo: Ejercicios

2020/2021

Subido el 04/06/2021

daniel-cardenas-vargas
daniel-cardenas-vargas 🇲🇽

4 documentos

1 / 74

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
SEP SEIT
DGIT
INSTITUTO TECNOLÓGICO DE
NUEVO LAREDO
DEPTO. DE SISTEMAS Y
COMPUTACIÓN
“Manejo de Archivos en
Lenguaje
C+
+”
Por:
Ing. Bruno López Takeyas,
M.C.
http://www.itnuevolaredo.edu.mx/
takeyas
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a

Vista previa parcial del texto

¡Descarga MANEJO DE ARCHIVOS C++ y más Ejercicios en PDF de Algoritmos y Programación solo en Docsity!

SEP SEIT

DGIT

INSTITUTO TECNOLÓGICO DE

NUEVO LAREDO

DEPTO. DE SISTEMAS Y

COMPUTACIÓN

“Manejo de Archivos en

Lenguaje

C+

Por:

Ing. Bruno López Takeyas,

M.C.

http://www.itnuevolaredo.edu.mx/

takeyas

Email:

[email protected]

2.2.7. Detectando el final del archivo con feof()……..................... 35 2.2.8. Cambiando nombres de archivos mediante rename()…….... 35 2.2.9. Eliminando archivos con la función remove()……................. 36 3.- APLICACIONES DE ARCHIVOS EN C++……………. (^) 38 3.1. Declaraciones globales.........……....…………………………………… 38 3.2. Archivos secuenciales en Lenguaje C++……………………………… 39 3.2.1. ALTAS secuenciales……………….…………………………….. 40 3 .2.1.1. Diagrama de flujo de la rutina de ALTAS secuenciales.............................................................. 40 3 .2.1.2. Codificación de la rutina de ALTAS secuenciales…... 42 3.2.2. CONSULTAS secuenciales.…….……………….……………… 43 3 .2.2.1. Diagrama de flujo de la rutina de CONSULTAS secuenciales.............................................................. 43 3 .2.2.2. Codificación de la rutina de CONSULTAS secuenciales….......................................................... 43 3.2.3. LISTADO secuencial............…….……………….……………… 44 3 .2.3.1. Diagrama de flujo de la rutina de LISTADO secuencial................................................................. 44 3 .2.3.2. Codificación de la rutina de LISTADO secuencial...... 46 3.2.4. MODIFICACIONES de datos en un archivo secuencial........... 47 3 .2.4.1. Diagrama de flujo de la rutina de MODIFICACION secuencial................................................................. 47 3 .2.4.2. Codificación de la rutina de MODIFICACIÓN secuencial................................................................. 49 3.2.5. BAJAS de registros en un archivo secuencial (bajas ógicas y bajas físicas)............................................................................ 50 3 .2.5.1. Diagrama de flujo de la rutina de BAJAS lógicas en un archivo secuencial................................................ 51 3 .2.5.2. Codificación de la rutina de BAJAS lógicas en un archivo secuencial..................................................... 53 3 .2.5.3. Diagrama de flujo de la rutina de BAJAS físicas en un archivo secuencial (compactar)............................ 54 3 .2.5.4. Codificación de la rutina de BAJAS físicas en un archivo secuencial (compactar)................................. 56 3.3. Archivos directos en Lenguaje C++………………………………......... 57 3.3.1. ALTAS directas........……………….…………………………….. 57 3 .3.1.1. Diagrama de flujo de la rutina de ALTAS directas...... 57 3 .3.1.2. Codificación de la rutina de ALTAS directas........…... 59 3.3.2. CONSULTAS directas..........…….……………….……………… 60 3 .3.2.1. Diagrama de flujo de la rutina de CONSULTAS directas...................................................................... 60 3 .3.2.2. Codificación de la rutina de CONSULTAS directas.... 62 3.3.3. MODIFICACIONES directas..........…….……………….……..... 63 3 .3.3.1. Diagrama de flujo de la rutina de MODIFICACIONES directas..................................... 63

lógicas).................................................................................... 66 3 .3.4.1. Diagrama de flujo de la rutina de BAJAS lógicas directas...................................................................... 67 3 .3.4.2. Codificación de la rutina de BAJAS lógicas directas.. 69 4.- CONCLUSIONES......................................……………. (^) 71 5.-BIBLIOGRAFÍA..............................................…………. (^) 72 3 .3.3.2. Codificación de la rutina de MODIFICACIONES directas...................................................................... 65 3.3.4. BAJAS de registros en un archivo de acceso directo (bajas

  • 2 Formato del registro de Productos……………………………………..
  • 3 Declaración del registro de Productos…………………………………
  • 4 Formato del registro de Productos……………………………………..
  • 5 Cuadro comparativo de archivos y archiveros………………………..
  • 6 Apertura de archivos…………………………………………………….
  • 7 Clasificación de archivos por contenido……………………………….
  • 8 Clasificación de archivos por tipo de acceso…………………………
  • 9 Diagrama de flujo de rutina de consulta secuencial………………….
  • 10 Ejemplo de cálculo del espacio ocupado por un registro……………
  • 11 El lenguaje C++ maneja archivos con direcciones físicas…………..
  • 12 Direcciones lógicas y físicas de un archivo…………………………...
  • 13 Cálculo de la dirección física a partir de la dirección lógica…………
  • 14 Diagrama de flujo de rutina de consulta directa………………………
  • 15 Modos de apertura para archivos de texto y binarios………………..
  • 16 La función fopen………………………………………………………….
  • 17 Validar la apertura de un archivo………………………………………
  • 18 La función fwrite………………………………………………………….
  • 19 Puntos de referencia de la función fseek……………………………...
  • 20 La función fseek………………………………………………………….
  • 21 La función ftell……………………………………………………………
  • 22 La función rewind………………………………………………………...
  • 23 La función rename……………………………………………………….
  • 24 La función remove……………………………………………………….
  • 25 Declaraciones globales de las aplicaciones…………………………..
  • 26 Diagrama de flujo de rutina de alta secuencial……………………….
  • 27 Codificación de la rutina de altas secuenciales………………………
  • 28 Codificación de la rutina de consultas secuenciales………………..
  • 29 Diagrama de flujo de rutina de listado secuencial……………………
  • 30 Codificación de la rutina de listado secuencial……………………….
  • 31 Diagrama de flujo de rutina de modificación secuencial……………
  • 32 Codificación de rutina de modificación secuencial…………………..
  • 33 Diagrama de flujo de rutina de baja lógica secuencial………………
  • 34 Codificación de rutina de baja lógica secuencial……………………..
  • 35 Diagrama de flujo de rutina de baja física secuencial (compactar)...
  • 36 Codificación de rutina de baja física secuencial (compactar)……….
  • 37 Diagrama de flujo de rutina de altas directas…………………………
  • 38 Codificación de rutina de altas directas……………………………….
  • 39 Diagrama de flujo de rutina de consultas directas……………………
  • 40 Codificación de rutina de consultas directas………………………….
  • 41 Diagrama de flujo de rutina de modificación directa………………...
  • 42 Codificación de rutina de modificaciones directas……………………
  • 43 Diagrama de flujo de rutina de baja lógica directa…………………...
  • 44 Codificación de rutina de baja lógica directa………………………….

PREFACIO Durante el tiempo que he impartido la materia de “Administración de Archivos” en la carrera de Ingeniería en Sistemas Computacionales (ISC) en el Instituto Tecnológico de Nuevo Laredo (ITNL), me he percatado de las deficiencias de los alumnos para programar archivos y, aunque es necesario dominar este aspecto de programación para aplicarlo en la materia, no es limitante o requisito estricto para cursarla, ya que la retícula así lo señala. Además estoy enterado que los temas de archivos pertenecen a la última unidad programática de las materias previas de Programación I y II y que debido a lo extenso de esos programas de estudio, no se comprenden completamente los temas relacionados con archivos. Debido a lo anterior, presento este documento basado en un cúmulo de experiencias y dudas planteadas por alumnos que tiene como finalidad reforzar los conocimientos de programación de archivos en Lenguaje C++ para aplicarlos a necesidades específicas de la materia “Administración de Archivos”. Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.mx/takeyas [email protected]

RAM

Recuerde: ¡¡¡ Los archivos NO procesan datos, sólo los almacenan !!! Microprocesador ALU Unidad de Control Proceso de “grabar” datos en el archivo Registros Archivo Proceso de “cargar” datos a la memoria

Fig. 1. Interacción entre la memoria principal, el

microprocesador y los archivos

1.2. Relación entre la memoria principal, el

microprocesador y dispositivos de

almacenamiento secundario

Existe una estrecha relación entre la memoria principal, el microprocesador y los dispositivos de almacenamiento secundario ya que el procesamiento que realiza una computadora es tarea absoluta del microprocesador en conjunción con

la memoria principal; es decir, los dispositivos de almacenamiento secundario (diskettes, discos duros, CDs, flash drives, etc.) no procesan datos, sólo los almacenan. En estos dispositivos sólo se reflejan los datos previamente procesados y funcionan exclusivamente como una bodega. Esto repercute de manera significativa al momento de programar archivos, ya que para hacerle modificaciones a los datos de un registro previamente almacenado es necesario primero “cargarlo” en la memoria principal, es decir, localizar el registro en el archivo y leerlo para colocar sus datos en la memoria RAM, ahí modificarlo y posteriormente grabarlo en la misma posición en la que se encontraba, sin embargo estas operaciones no se realizan directamente, sino a través de la unidad aritmética-lógica, la unidad de control y los registros del microprocesador (Fig. 1 ).

1.3. Definiciones de datos, registros y archivos

  • Datos: Básicamente se refieren a los testimonios individuales relacionados con hechos, ya sean características de ciertos objetos de estudio o condiciones particulares de situaciones dadas. Los elementos individuales de los archivos se llaman datos o campos. Por ejemplo un cheque de un banco tiene los siguientes campos: Cuenta habiente, Número de cheque, Fecha, Persona a la que se le paga, Monto numérico, Monto con letra, Nota, Identificación del banco, Número de cuenta y Firma. Cada campo es definido por un tipo de dato.
  • Registro: Es el conjunto completo de datos relacionados pertenecientes a una entrada. P. ejem. Un almacén puede retener los datos de sus productos en registros de acuerdo al formato mostrado en la Fig. 2.

Re gis tro s Archivo: PRODUCTO.SEC No_prod Descrip Cantidad Precio Garantia 0 “Camisa de vestir” 100 65. 80 ‘N’ 1 “Pantalón para dama” 234 115. 50 ‘N’ 2 “Radiograbadora” 36 895. 75 ‘S’ 3 “Gabinete para sala” 54 1532 .60 ‘N’ Entero Cadena [30] Entero Real Caracter Campos

Fig. 4. Formato del registro de Productos

1.4. Analogías de archivos y archiveros

El modo de operación de un archivo puede ser asociado con el de un archivero en una oficina, ya que ambos almacenan datos y operan de forma semejante. De tal forma que muestran las siguientes operaciones, acciones similares y comparaciones:

Manejo de Archivos en

Lenguaje C++

Operación o acción Archivero Archivo computacional Identificar la localización de la información Localizando el archivero en particular que contiene las carpetas con la información que se solicita, ya que una oficina puede tener varios archiveros debidamente clasificados e identificados Identificando la base de datos correspondiente a la información que se solicita. Una base de datos es una colección de archivos relacionados. P. Ejem. Profesores, alumnos y materias están correlacionados. Identificar el lugar exacto donde se encuentra la información Regularmente un archivero contiene varios cajones, cada uno con información debidamente clasificada y ordenada. Se recomienda que los archivos contengan datos relacionados con un objeto de interés en particular y no de varios. P. Ejem. Sólo datos de ALUMNOS.

Ing. Bruno López Takeyas , M.C.

Apertura Obviamente cuando se requiere agregar o consultar carpetas del cajón de un archivero, es necesario primero abrirlo. Para accesar los datos de un archivo es necesario abrirlo. Existen varios modos de apertura de los archivos dependiendo de las operaciones que se deseen realizar en él. Clasificación de los datos Los cajones de los archiveros tienen separadores o pequeñas pestañas para identificar las carpetas. Estas facilitan el acceso, ya sea la inserción o la extracción de un carpeta en particular. Los datos pueden ser almacenados de muchas formas diferentes en los archivos y de esto depende la facilidad (o dificultad) que el archivo muestre para ciertas operaciones de acceso. A estas formas de almacenamiento se les conoce como “organización del archivo”.

Ing. Bruno López Takeyas , M.C.

Ing. Bruno López^16

Takeyas , M.C.

Cierre Cuando ya no se desea utilizar un cajón de un archivero es necesario cerrarlo, ya que de no hacerlo, se corre el riesgo de dañar o perder la información. Cuando se termina de utilizar un archivo es necesario cerrarlo. De esa forma se vacía la memoria caché y se asegura almacenar y proteger los datos. Seguridad Algunos archiveros cuentan con un candado que permite asegurar los cajones de aperturas no deseadas por personal no autorizado. Dependiendo del sistema operativo, se pueden aplicar restricciones de seguridad y acceso a los archivos dependiendo de los usuarios; es decir, se establecen políticas de acceso a usuarios.

Fig. 5. Cuadro comparativo de

archivos y archiveros

1.5. Apertura de archivos

Antes de escribir o leer datos de un archivo es necesario abrirlo. Al abrir el archivo se establece comunicación entre el programa y el sistema operativo a cerca de cómo accesarlo. Es necesario que el programa le proporcione al sistema operativo el nombre completo del archivo y la intención de uso (leer o escribir datos), entonces se definen áreas de comunicación entre ellos. Una de estas

Clasificación de archivos por contenido Texto Binarios

Fig. 7 Clasificación de archivos por contenido

1.6.1. Archivos de texto Son aquellos que pueden contener cualquier clase de datos y de tal manera que son “entendibles” por la gente. Los datos en un archivo de texto se almacenan usando el código ASCII, en el cual cada carácter es representado por un simple byte. Debido a que los archivos de texto utilizan el código ASCII, se pueden desplegar o imprimir. En este tipo de archivos, todos sus datos se almacenan como cadenas de caracteres, es decir, los números se almacenan con su representación ASCII y no su representación numérica, por lo tanto no se pueden realizar operaciones matemáticas directamente con ellos. P. ejem. Si se guarda el dato 3.14 1592 en un archivo de texto, se almacena como “3.141592” y nótese que ...

1.6.2. Archivos binarios Este tipo de archivos almacenan los datos numéricos con su representación binaria. Pueden ser archivos que contienen instrucciones en lenguaje máquina

listas para ser ejecutadas. Por ejemplo, cuando escribimos un programa en un lenguaje en particular (como C++, Pascal, Fortran, etc), tenemos las instrucciones almacenadas en un archivo de texto llamado programa fuente, pero una vez que lo sometemos a un proceso de compilación y ejecución nuestro programa lo trasladamos a un programa ejecutable (en lenguaje máquina), que es directamente entendido por la computadora y se crea un archivo binario. En este tipo de archivos también se pueden almacenar diferentes tipos de datos incluyendo datos numéricos; sin embargo, cabe destacar que los datos numéricos se graban con su representación binaria (no con su representación ASCII), por tal razón, cuando se despliegan con un editor de textos o por medio de comandos del sistema operativo, aparecen caracteres raros que no se interpretan. P. ejem. Si se guarda el dato 27 en un archivo binario, se almacena como 00001111 y no como “27”.

1.7. Clasificación de archivos por tipo de acceso

De acuerdo a la forma de acceder los datos de los archivos, éstos se clasifican en secuenciales o directos (también conocidos como de acceso directo, relativos o aleatorios). En esta sección no se pretende analizar las diferentes estructuras de datos involucradas en estas clasificaciones de archivos ni desarrollar aplicaciones complejas debidamente diseñadas usándolos, sino conocer esencialmente sus conceptos teóricos y la forma de manejarlos.