¡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 - Presentación del método

Objetivos del capítulo

  • Descomponer jerárquicamente un conjunto de datos.

  • A partir de la división de los datos escritos (datos de salida) y de los datos leídos (datos de entrada) por el programa, establecer el organigrama estructurado de la lógica de la aplicación.

  • Escribir el programa a partir del organigrama.

Presentación del método

1. ¿Por qué un método de programación?

En un proyecto informático, en general lo primero que expresa el futuro usuario es el resultado que desea. «Quiero un programa para gestionar mi stock, quiero un sitio web para presentar mi empresa, etc.». Por lo tanto, hay que ver en qué consiste el stock, qué información se debe presentar en el sitio web, etc.

Para terminar, habiendo establecido con precisión la lista de los datos disponibles y el conjunto de los datos que se quiere obtener, el desarrollador programa la lógica que permite llegar al resultado deseado. Se dice que diseña el algoritmo de la solución.

Una receta de cocina es un algoritmo. ¿Qué plato quiero hacer? ¿Tengo los ingredientes para hacerlo? Para terminar, ¿cómo hacerlo? ¿Cuál es la receta?

El arte de la informática es descubrir la receta, el algoritmo que se ha de programar.

En los capítulos anteriores, hemos realizado programas sin utilizar un método. Para resolver los problemas, por lo general es suficiente un razonamiento lógico, traducido adecuadamente en instrucciones estructuradas del lenguaje (if, while...).

Cuando la complejidad aumenta, el conjunto de los datos que se ha de tratar es importante y el algoritmo se convierte en algo menos evidente de encontrar.

  • La primera ventaja de un método...

Ejemplo: edición de facturas

1. Estado de salida que se quiere obtener

images/109-1.png

Para cada cliente, se imprimen filas «factura». Cada una de ellas contiene un número de factura, la cantidad de la factura y un descuento del 10 % sobre la cantidad de la factura, si esta supera los 2 000 €.

2. Descomposición del estado de salida

Cuando se examina el estado, comprobamos que se organiza «cliente por cliente»:

images/109-2.png

Cada subconjunto en gris es un conjunto de datos relativos a un cliente.

El conjunto del estado se puede describir como un conjunto de datos relativos a un cliente, tantas veces como clientes hay.

Podemos indicarlo de la siguiente manera:

images/109-3.png

c.d.r.: abreviación para «conjunto de datos relativos».

(c): cardinalidad repetitiva para: tantas veces como clientes.

Ahora nos centramos en la organización de los datos de un cliente, por ejemplo los datos del cliente 001:

images/109-4.png

Cada subconjunto en gris es un conjunto de datos relativos a una factura.

El conjunto de los datos de un cliente se puede describir como: un número de cliente (ncli) presente 1 vez y después un conjunto de datos relativos a una factura tantas veces como facturas.

Podemos indicarlo de la siguiente manera:

images/109-5.png

Nos centramos ahora en la organización de los datos de una factura:

images/109-6.png

El subconjunto en gris se corresponde con un descuento.

El conjunto de los datos de una factura se puede describir como: un número de factura (nfac) presente 1 vez, una cantidad de factura (cant) presente 1 vez y un descuento presente 0 o 1 veces.

Descomposición completa:

images/109-7.png

3. El archivo de las facturas

La información necesaria para la edición de las facturas se lee en un archivo de entrada cuyos registros tienen la siguiente estructura:

images/109-8.png

Este archivo secuencial se ordena con el N ° CLIENTE. Solo hay un registro por factura.

Estructura correspondiente:

typedef struct  
{  
   char  ncli[4];  
   char  nfac[6];  
   float cant;  
} FACTURA; 

Se considera que el archivo de las facturas no está vacío.

4. Descomposición jerárquica del archivo de entrada

Para hacer la descomposición del archivo de las facturas, es útil diseñar algunos registros del archivo de entrada, si es posible los que permiten obtener el estado de salida:

images/109-9.png

Nos centramos en el conjunto de los datos...

Trabajo práctico: estadística de las ventas

1. Comentario sobre el enunciado

El enunciado del trabajo práctico está inspirado en entornos profesionales.

Fija los nombres de las variables, tanto en modo edición como en modo lectura. De esta manera, de un programador a otro, el hecho de respetar tanto el enunciado como el método conduce a programas parecidos.

El enunciado contiene:

  • una breve descripción del objetivo de la aplicación;

  • un esquema de tratamiento;

  • una descripción del estado que se va a obtener, con el nombre de cada una de las filas a la derecha;

  • la descripción de cada fila;

  • eventuales características particulares del estado;

  • una descripción de los archivos.

El enunciado, el organigrama, los resultados obtenidos y el programa constituyen un directorio de programación bastante completo.

2. Tema

a. Objetivo del programa

Editar una estadística de las ventas, presentada por sectores, por representante y por cliente.

b. Esquema del tratamiento

images/109-16.png

c. Estado de salida para obtener

Las filas de impresión se identifican por un código: LE1, LE2, LE3, LD1, LT1, LT2, LT3.

images/109-17.png

d. Filas de impresión

images/109-18.png

e. Característica del estado

  • Salto de página: una vez por sector.

  • Toda la información de un sector en una página.

  • El total general se imprime en la misma página que el último sector.

f. Descripción del archivo: pagos

Un registro del archivo pagos contiene:

images/109-19.png

Estructura correspondiente:

typedef struct  
{  
   char   nosect[3];  
   char   norep[4];  
   char   nocli[5];  
   char   nofac[6];  
   double cant;  
   char   codpais[3];  
} PAGO; 

Organización del archivo: secuencial

Criterios de ordenación:

  • nosect (número de sector),

  • norep (número de representante),

  • nocli (número de cliente).

Este archivo se proporciona. Su ruta de acceso es: C:\C\archivos\pagos

Su contenido es el siguiente:

images/01094e.png

3. Proposición de corrección

a. Descomposición jerárquica del estado de salida

images/109-20.png

El estado se presenta como un conjunto...