¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Desarrollo informático
  3. Algorítmica
Extrait - Desarrollo informático Aprenda a diseñar antes de programar
Extractos del libro
Desarrollo informático Aprenda a diseñar antes de programar Volver a la página de compra del libro

Algorítmica - Grupos alternativos de datos

Preámbulo

El método expuesto en el capítulo Algorítmica - Presentación del método se aplica a casos concretos en este capítulo y los siguientes (Algorítmico - Datos de fase, saltos de página; Algorítmica - Las tablas; Algorítmica - Alternativas complejas). Cada uno de estos casos presenta la resolución de una situación nueva. De esta manera se tratan la mayor parte de los problemas encontrados en las aplicaciones «batch». En este capítulo, vamos a:

  • Programar una aplicación con conjuntos de datos presentes 0 o n veces.

  • Programar una aplicación con varios archivos de entrada.

Actualización del archivo «stock»

1. Tema

El programa que se va a realizar consiste en crear un archivo «nuevoStock» a partir de dos archivos «anteriorStock» y «movimientos».

images/110-1.png

Archivo anteriorStock

Cada registro del archivo anteriorStock contiene tres campos.

  • Un número de identificación del producto

  • Una etiqueta que da el nombre del producto

  • Una cantidad en stock

images/110-2.png

El archivo anteriorStock se ordena por el número de producto, en orden creciente. Solo hay un registro por producto. No está vacío.

Estructura correspondiente:

typedef struct  
{  
   char numero[3];  
   char etiqueta[21];  
   int  cantidad;  
} PRODUCTO; 

Archivo movimientos

Un movimiento se corresponde con una entrada o una salida en el stock. Una entrada añade una cantidad de producto en el stock. Una salida reduce una cantidad de producto del stock.

Cada registro del archivo movimientos contiene tres campos:

  • Un número de identificación del producto.

  • Una cantidad para añadir (entrada) o para sustraer (salida) del stock del producto.

  • Un código que indica si se trata de una entrada (E) o de una salida (S).

images/110-3.png

El archivo se ordena por el número de producto, en orden creciente. Puede haber 0 o n registros por producto.

Estructura correspondiente:

typedef struct  
{  
   char numeroProducto[3];  
   int  cantidad;  
   char codigo;  
} MOVIMIENTO; 

Archivo nuevoStock: los registros del archivo nuevoStock tienen la misma estructura que los del archivo anteriorStock. Hay tantos productos en el archivo nuevoStock como en el archivo anteriorStock. Solo se actualiza la cantidad de cada producto, en función de los movimientos eventuales que le afectan.

Ejemplo

anteriorStock           movimientos  
01    TORNILLOS      100       01      50       E    
                               01      70       S ...