método de j. d. warnier

19
J. D. Warnier Método de J. D. Warnier Metodología de Programación Ingeniería Civil Informática UCSC J. D. Warnier Introducción Desarrollo y la mantención de programas batch. Completa comprensión de la estructura del programa generado y una excelente documentación del mismo. J. D. Warnier Definir la estructura de la salida Definir la estructura de la entrada Definir la estructura del programa Definir la secuencia lógica del programa Definir la lista de instrucciones por secuencia lógica. Introducción J. D. Warnier Estructura Repetitiva Simple Estructura Alternativa Simple Estructura Repetitiva Compleja Estructura Alternativa Compleja Estructura Mixta. Introducción J. D. Warnier Instrucciones de Entrada/Salida Instrucciones de Bifurcación Instrucciones de Preparación de Bifurcaciones Instrucciones de Cálculo y Preparación de Cálculo Instrucciones de Salida y Preparación de Salida. Introducción J. D. Warnier Esta metodología se basa en la aplicación rigurosa de dos principios fundamentales, referentes a la organización de los conjuntos de información que compone un problema de índole informática. A. Principio de organización jerárquica de cualquier conjunto de información. Donde cualquier conjunto de información (datos de entrada, datos de salida o el programa en si) debe subdividirse en subconjuntos, estructurándose en niveles desde el más alto hasta el más inferior. Introducción

Upload: others

Post on 10-Jul-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Método de J. D. Warnier

1

J. D. Warnier

Método de J. D. Warnier

Metodología de ProgramaciónIngeniería Civil Informática

UCSC

J. D. Warnier

Introducción

Desarrollo y la mantención de

programas batch.

Completa comprensión de la estructura del programa

generado y una excelente documentación del mismo.

J. D. Warnier

• Definir la estructura de la salida • Definir la estructura de la entrada • Definir la estructura del programa • Definir la secuencia lógica del programa • Definir la lista de instrucciones por secuencia

lógica.

Introducción

J. D. Warnier

• Estructura Repetitiva Simple • Estructura Alternativa Simple • Estructura Repetitiva Compleja • Estructura Alternativa Compleja • Estructura Mixta.

Introducción

J. D. Warnier

• Instrucciones de Entrada/Salida • Instrucciones de Bifurcación • Instrucciones de Preparación de Bifurcaciones • Instrucciones de Cálculo y Preparación de

Cálculo • Instrucciones de Salida y Preparación de Salida.

Introducción

J. D. Warnier

• Esta metodología se basa en la aplicación rigurosa de dos principios fundamentales, referentes a la organización de los conjuntos de información que compone un problema de índole informática.

A. Principio de organización jerárquica de cualquier conjunto de información.

• Donde cualquier conjunto de información (datos de entrada, datos de salida o el programa en si) debe subdividirse en subconjuntos, estructurándose en niveles desde el más alto hasta el más inferior.

Introducción

Page 2: Método de J. D. Warnier

2

J. D. Warnier

B. Principio de correspondencia en la organización de los elementos que componen un problema informático.

Consiste en que:• (a) la organización jerárquica de los datos de entrada está

determinada por la organización de los datos de salida

• (b) la organización del programa viene determinada por la organización de los datos de entrada

• (c) el control del programa se realiza a partir de los datos de salida.

Introducción

J. D. Warnier

• Ejemplo. Sea el siguiente el formato de un informe de salida:

Informe de Alumnos

Matrícula Semestre Ramo Nota FinalRamo Nota FinalRamo Nota Final

Semestre Ramo Nota FinalRamo Nota Final

Matrícula Semestre Ramo Nota FinalRamo Nota Final

Semestre Ramo Nota FinalRamo Nota Final

Introducción

J. D. Warnier

Representación de Conjuntos Según W.

• Sean los siguientes conjuntos:

R={A, B, X, C, H} D={10, 11}X={2, 1, D} H={8, Z}C={5, 6} Z={12, 13}

• Podemos describir el conjunto R:

R={A, B, {2, 1, {10, 11}}, {5, 6}, {8, {12, 13}}}

J. D. Warnier

• O bien (usando Warnier):

)1(13)1(12

)1(

)1(8)(

)1(6)1(5

)(

)1(11)1(10

)1(

)1(1)1(2

)1(

)1()1(

Z1H

1C

D

X

BA

R

Representación de Conjuntos Según W.

J. D. Warnier

• Presentar de esta forma los conjuntos nos permite indicar el número de veces que un elemento está en el conjunto.

• Ejemplo1:

)1()1,0(

)1()1(

)(

)1,0()1(

dhgf

nc

ba

A={a, b, c, d, c,...}

Representación de Conjuntos Según W.

J. D. Warnier

• Ejemplo2: El padre está presente una vez y el elemento hijo está presente varias veces

)()1()1(

nHijoMadrePadre

Familia

),0()1,0()1,0(

nHijoMadrePadre

Familia• O, puede o no pude estar

Representación de Conjuntos Según W.

Page 3: Método de J. D. Warnier

3

J. D. Warnier

• Ejemplo3:Antes de la guerra

Después de la guerra

)()1(arg

)(

)1(

sSoldadosentoS

nPelotón

CapitánBatallón

),0()1,0(arg

),0(

)1,0(

sSoldadosentoS

nPelotón

CapitanBatallón

Representación de Conjuntos Según W.

J. D. Warnier

Tipos de PresenciaPresencia unitaria: se

representa con un (1) e indica que el

elemento estápresente una vez.

Presencia repetitiva: se representa con una (n) e indica que el

elemento estápresente varias veces

o por lo menos una vez.

Presencia alternativa: se representa como (0,1) e indica que el

elemento puede estar presente o no.

J. D. Warnier

• Es frecuente encontrar casos de subconjuntos que repitiéndose N veces, N pueda ser igual a cero.

• En este caso la descomposición se efectúa en dos niveles. En el primer nivel se obtiene una presencia alternativa y en el segundo una presencia repetitiva.

• Esto es:

Tipos de Presencia

Elemento(0,n) Grupo de elemento(0,1){elemento(n)

{

)()1,0()1,0(arg

)()1,0(

)1,0(

ssoldadodoGrupoSoldaentos

npelotónónGrupoPelot

capitánbatallón

J. D. Warnier

Ejercicios

• Equipo de fútbol.• Micro o Bus.• Asignatura.• Universidad.

J. D. Warnier

Estructuras de salida

• Criterio de subdivisión de conjuntos de salida:– Un conjunto de datos de salida se subdivide cuando

comprende subconjuntos que pueden estar presentes un número de veces distinto de 1.

– Cuando se ha terminado la subdivisión de acuerdo al primer criterio ya indicado, se aplica un segundo criterio a todo conjunto no subdividido que es el siguiente. Se enumeran los campos que corresponden al conjunto, en el mismo orden de impresión.

J. D. Warnier

• Ejemplo1: supongamos un conjunto de cheques emitidos en un sistema de remuneraciones.

Monto:Fecha:Nombre:

{

)1()1()1(

)(nombrefechamonto

cchequeSalida

• La estructura de salida es:

Estructuras de salida

Page 4: Método de J. D. Warnier

4

J. D. Warnier

• Solución:

Listado de cheques emitidosNombre Fecha Monto---------- ------- ------------------ ------- ------------------ ------- --------

ΣMonto

∑ )1()1(

)1(

)1(

)(

)1('','',''

)1('___')1(

montomonto

fecha

nombre

ttrabajador

MontoFechaNombre

emitidoschequesdeListadotitulo

salida

• Confeccionar una estructura de salida correspondiente al siguiente listado:

Estructuras de salida

J. D. Warnier

• Solución:

Informe de trabajadoresDpto Ficha Nombre Sueldo------ ------ ---------- --------

---------- ------------------ --------

ΣSueldoDpto Ficha Nombre Sueldo

------ ------ ---------- ------------------ ------------------ --------

ΣSueldoΣΣSueldo

• Confeccionar una estructura de salida correspondiente al siguiente listado:

∑∑∑

)1()1( )1(

)1()1(

)(

)1(.)(

)1('','','',''

)1('__')1(

sueldosueldo sueldo

nombreficha

ttrabajador

DptoCodtdpto

SueldoNombreFichaDpto

estrabajadordeInformetitulo

salida

Estructuras de salida

J. D. Warnier

• Solución:

Informe de trabajadoresDpto Ficha Nombre Sueldo------ ------ ---------- --------

------ ---------- -------------- ---------- --------

ΣSueldoDpto Ficha Nombre Sueldo

------ ------ ---------- -------------- ---------- -------------- ---------- --------

ΣSueldoΣΣSueldo

• Confeccionar una estructura de salida correspondiente al siguiente listado:

∑∑∑

)1(

)1( )1()1(

)1()(

)1(.)(

)1('','','',''

)1('__')1(

sueldo

sueldo sueldonombreficha

ttrabajador

DptoCodtdpto

SueldoNombreFichaDpto

estrabajadordeInformetitulo

salida

Estructuras de salida

J. D. Warnier

• Solución:

• Sea un programa que emite un conjunto de certificados:

CertificadoNombre :Carrera :Matricula :

Ramo Nota------- ------

------- ------------- ------... ...

Promedio: ____

)1(,:"Pr")1()1(

)(

)1("","")1(,:""

)1(,:"")1(,:""

“ (1)"

)(

Xomedionotaramo

nnota

NotaRamoMatriculaMatricula

CarreraCarreraNombreNombre

Certficado

aalumosalida

Estructuras de salida

J. D. Warnier

• Confeccionar una estructura de salida para el siguiente listado:Listado de Cargas Familiares

Ficha NombreTrabajador NombreCarga Edad------ ----------------------- ----------------- ------

----------------- ----------------------- ------TotalCargas ΣC

------ ------------------------ Sin Cargas Familiares------ ------------------------ ----------------- -------

----------------- ------------------------ -------TotalCargas ΣC

------ ------------------------ Sin Cargas Familiares

... ...TotalGeneral ΣΣC

Estructuras de salida

J. D. Warnier

• Solución:

∑∑

)1(,"")1,0(""

)1(,""

)1()1(

)()1,0(

)1()1(

)(

)1("")1(""

CTotal GeneralFamiliaresSin Cargas

CTotal cargas

edadNombre carga

ccargaGrupo Cargas

nombreficha

ttrabajador

EdadNombre CargaajadorNombre TrabFichaFamiliaresCargasdeListado

salida

Estructuras de salida

Page 5: Método de J. D. Warnier

5

J. D. Warnier

• Archivo Físico: representa la materialización de un conjunto de registros en un medio físico determinado.

• Archivo Lógico: representa la definición de la estructura y eventualmente el formato sin considerar el medio físico en el que se encuentra.

• Las estructuras de entradas son referidas a un archivo lógico.

Estructuras de entrada

J. D. Warnier

• Sea un archivo de personal con un registro por persona cuyo esquema de registro es:

Ficha Nombre

• El programa emite un listado de personal.

Listado de personalFicha Nombre------ ---------------- ---------------- ----------Cant. de trabaja.:ΣT• Solución:

1. Diagrama de bloques

Estructuras de entrada

J. D. Warnier

2. Estructura de salida

Σ

)1(,:".__.")1(

)1()(

)1("","")1(""

)1(

TtrabajadeCantnombreficha

ppersona

NombreFichapersonalListado de

titulo

salida

3. Estructura de entrada

)1()1(

)(nombreficha

ppersonaentrada

Estructuras de entrada

J. D. Warnier

• Sea un programa que lee los datos almacenados en cinta con el siguiente esquema de registros.

Gerencia Depto Ficha Nombre

• Observación: • Los datos de entrada están ordenados por Gerencia y Depto.• Puede haber varios trabajadores por Depto.• Hay un registro por trabajador.

• Con estos datos emitir el siguiente listado.Tabulado por GerenciaGerencia Cant.Trab.

1 42 2

..... ......

Estructuras de entrada

J. D. Warnier

• Solución:1. Diagrama de bloques

2. Estructura de salida

3. Estructura de entrada

Σ )1(

)1(.)(

)1(.".",""

)1("__"

TG

GerenciaCodgGerencia

TrabCantGerencia

GerenciadeTabulado

salida

{ {{ )1(.)()( gerenciacodttrabajadorggerenciaentrada

Estructuras de entrada

J. D. Warnier

• Se desea producir un listado de cheques emitidos y un conjunto de cheques. Para esto se dispone de:

• Un archivo clasificado por Cod.Depto. Pueden haber varios trabajadores por departamento.

• Una archivo que contiene la fecha del proceso

Cod.Depto. Ficha Rut Nombre Monto

• Salidas:Listado de Cheques dd/mm/aaDepto Ficha Nombre Monto------- ------- ---------- --------

------- ---------- --------------- ---------- --------

------- ------- ---------- --------------- ---------- --------------- ---------- --------

MontoFechaNombre

Estructuras de entrada

Page 6: Método de J. D. Warnier

6

J. D. Warnier

• Solución:1. Diagrama de bloques

2. Estructura de salida 3. Estructura de entrada

)1()1()1(

)1(

)1()1(

)1()1(

)(

)1(.

)(

)1("","","","")1(,"__"

NombreFechaMonto

Cheque

MontoNombreFicha

Linea

tTrabajador

DeptoCod

dDepto

MontoNombreFichaDeptofechaChequesdeListado

salida

)1()1(

)1()1(.

)()(

)1(

MontoNombreFicha

DeptoCod

tTrabajadordDepto

Fecha

entrada

Estructuras de entrada

J. D. Warnier

• Se tiene un programa cuyo objetivo es:• Emitir un Listado de notas• Grabar un archivo con información del alumno y su promedio

• Entradas: • Archivo Alumnos ordenado por

matricula y tiene un registro por alumno

• Archivo Notas ordenado por matricula y contiene varios ramos por alumno

Matricula Carrera Nombre Matricula Ramo Nota

• Salidas:Listado de Notas

Matricula Nombre Ramo Nota------------ ---------- ------- ------

------ ------------ ------

Promedio ----------------- ---------- ------- ------

------ ------Promedio ----- ...

Matricula Nombre Carrera Promedio

• Archivo de salida Promedio

Estructuras de entrada

J. D. Warnier

• Solución:1. Estructura de salida 2. Estructura de entrada

)1(Pr)1()1(

)1(

)1.(Re

)1(Pr,:"Pr")1(

)1(.)(

)1()1(

)(

)1("","","","")1("__"

omedioCarreraNombreMatricula

g

omedioomedioNota

RamoCodrRamo

NombreMatricula

aalumnos

NotaRamoNombreMatriculaNotasdeListado

salida

)1()1(

)1()(

)1()1(

)1(

)(

NotaRamoMatricula

rRamo

NombreCarreraMatricula

aalumnoentrada

Estructuras de entrada

J. D. Warnier

Estructuras repetitivas Simples

• Existen de tres tipos:• Salida• Entrada• Programa

J. D. Warnier

Estructuras repetitivas simples de salida• Se dice que en un conjunto de salida tenemos

una estructura repetitiva simple, cuando en un nivel tenemos un elemento que esta varias veces por lo menos una, pudiendo además haber otros elementos que estén presentes una sola vez

Estructuras repetitivas Simples

J. D. Warnier

)1(2)1(1

)1()1(

)(arg

)1(.)(

)1(

totaltotal

edadnombre

cac

trabcodttrabajador

fecha

salida

Estructura repetitiva simple porque

encontramos un solo elemento que se repite

Estructuras repetitivas Simples

Page 7: Método de J. D. Warnier

7

J. D. Warnier

Estructuras repetitivas simples de entrada

Para la estructura de entrada es lo mismoEjemplo:

)1()1()1(.

)(arg

)1(.

)(

)1(

edadnombre

trabcodcac

trabcod

ttrabajador

fecha

entrada

Estructuras repetitivas Simples

J. D. Warnier

Estructuras repetitivas simples de programa• Esta formada por tres secuencias lógicas. • Una primera secuencia lógica que contiene toda

aquellas instrucciones que se ejecutan una vez al comienzo de la estructura.

• Una secuencia lógica intermedia que contiene las instrucciones que se ejecutan varias veces.

• Una secuencia lógica final que contiene todas las instrucciones que se ejecutan una vez al final de la estructura.

Ejemplo: sea la siguiente estructura de programas

Estructuras repetitivas Simples

J. D. Warnier

)1(gra_)(

)1(gra_gra

maprofinttrabajador

maprocomienzomapro

Com. Prog.

Trabajador

Fin Prog.

• El diagrama de lógica correspondiente:

Estructuras repetitivas Simples

J. D. Warnier

• Las instrucciones de bifurcación forman parte de la secuencia lógica Trabajador.

• La secuencia lógica Comienzo de Programa se ejecuta una sola vez al comienzo del programa (ej: imprimir títulos).

• La secuencia lógica trabajador se ejecuta para cada trabajador. Estas instrucciones se ejecutarán tantas veces como trabajadores haya (ej: imprimir cheques).

• La secuencia lógica Fin de Prog. Se ejecuta una sola vez al final del programa (ej: imprimir totales generales).

Estructuras repetitivas Simples

J. D. Warnier

Notas: • En el caso de las estructuras simples, conociendo

la estructura de entrada podemos conocer la estructura del programa.

• Al definir una estructura de programa a partir de una estructura de entrada se consideran sólo los elementos repetitivos.

• Una característica repetitiva simple de entrada da origen a una estructura simple de programa.

Estructuras repetitivas Simples

J. D. Warnier

Ejercicios 1..- A partir de la estructura de entrada desarrollar la

estructura de programa y diagrama de lógica

)1()1(

)1()()(

)1(

SueldoNombreFicha

tTrabajadordDepto

Fecha

entrada

Page 8: Método de J. D. Warnier

8

J. D. Warnier

Ejercicios

maproFdeptoF

tTrabajadordeptoC

dDepto

maproC

mapro

gra.)1(.

)()1(.

)(

)1(gra.

gra

C.programa

trabajador

F.depto

F.programa

C.depto

Solución:Estructura de programa:

Diagrama de lógica:

J. D. Warnier

Ejercicios 2.- Se tiene un archivo de clientes con un registro por cliente. Se desea obtener los siguientes totales de control.

Salida: Entrada:Totales de control cliente: | nombre | saldo |Total cliente: ΣCTotal saldo: ΣS

J. D. Warnier

∑∑

)1(,:"_"

)1(,:"_")1("__"

SsaldoTotal

CclientesTotalconntroldeTotales

salida

)1()1(

)(saldonombre

cclienteentrada

)1(.)(

)1(.

programaFccliente

programaCprograma

C.programa

cliente

F.programa

Ejercicios Estructura de Salida: Estructura de Entrada:

Estructura de Programa: Estructura de Lógica:

J. D. Warnier

Ejercicios 3. Se tiene un programa cuyo objetivo es emitir un listado de alumnos del colegio ABC. Para esto se tiene dos archivos: •uno con la información correspondiente a la identificación del alumno, se llama ALUMNDAT.•Otro que contiene la matrícula del alumno y sus notas, se llama NOTDAT.Diagrama de bloques: Salida: Entrada:

Informe de notas ALUMDAT | matricula |nombre |Matricula nombre nota - ordenado por matricula------------ --------- ----- - contiene un registro por alumno

-----promedio prom NOTDAT | matricula | nota |

Matricula nombre nota - ordenado por matricula------------ --------- ----- - contiene a lo menos 1 nota por

----- alumnopromedio prom

J. D. Warnier

Ejercicios

{

)1(,:"Pr")1()(

)1(,)1("","",""

)(

)1("__"

promomedioóncalificacinnota

nombrematriculaNotaNombreMatricula

aalumno

notasdeInforme

salida

)1()1(

)(

)1()1(

)(

oncalificacimatricula

nnota

nombrematricula

aalumnoentrada

)1(gra.)1(.

)()1(.

)(

)1(gra.

gra

maproFalumnoF

nnotaalumnoC

aalumno

maproC

mapro

C.programa

nota

F.alumno

F.programa

C.alumno

Estructura de Salida: Estructura de Entrada:

Estructura de Programa: Estructura de Lógica:

J. D. Warnier

Estructuras alternativas

Simples SALIDA

ENTRADA

PROGRAMA

Page 9: Método de J. D. Warnier

9

J. D. Warnier

Estructuras alternativas simples de salida

1er tipo: es aquella que en un determinado nivel de la estructura tiene un elemento de presencia alternativa pudiendo tener además elementos de presencia unitaria

Estructuras alternativas Simples

Listado de trabajadores

ficha nombre rut------- ---------- ----------- ----------------- ---------- ----------- ----------

)1,0()1(

)1()(

)1(,"","","")1(,"__"

rutnombreficha

ttrabajador

rutnombrefichaestrabajadordeListado

salida

Estr. Rep.Simple Estr. Alter. Simple

J. D. Warnier

2do tipo: es aquella que en un determinado nivel de la estructura tiene dos elementos de presencia alternativa vinculados entre sí con una relación de incompatibilidad. Esta estructura puede tener además elementos de presencia unitaria

Listado de trabajadores

ficha nombre rut------- ---------- ----------- ---------- Tramite------- ---------- ----------- ---------- Tramite

)1,0(,""

)1,0()1(

)1(

)(

)1(,"","","")1(,"__"

Tramite

rutnombreficha

ttrabajador

rutnombrefichaestrabajadordeListado

salida

Estr. Rep.Simple Estr. Alter. Simple

Estructuras alternativas Simples

J. D. Warnier

Estructuras alternativas simples de entrada

Es aquella que en un determinado nivel de la estructura posee un elemento de presencia alternativa pudiendo tener además elementos de presencia unitaria.Ejemplo: sea el siguiente archivo de trabajadores: | ficha | nombre | rut |

Observación: no todos los trabajadores poseen rut.

)1,0()1(

)1()(

rutnombreficha

ttrabajadorentrada

Estructuras alternativas Simples

J. D. Warnier

Estructuras alternativas simples de programa

Posee las siguientes características:• Tiene cuatro secuencias lógicas.• Una primera secuencia lógica que contiene todas

aquellas instrucciones que se ejecutan una vez al comienzo de la estructura.

• Luego dos secuencias lógicas de ejecución alternativa que contienen las instrucciones que pueden ejecutarse o no.

• Una última secuencia lógica que contiene todas aquellas instrucciones que se ejecutan una vez al final de la estructura.

Estructuras alternativas Simples

J. D. Warnier

Ejemplo: la estructura de programa correspondiente al ejemplo anterior.

)1.()1.(

)1,0(

)1,0()1.(.

)(

)1.(.

Programa

Fin_progFin_trabrut

rutCom_trab

ttrabajador

Com_progcom.prog.

com.trab.

rut rut

fin trab.

fin prog.Observación: a una estructura simple de entrada le corresponde una estructura simple de salida.

Estructuras alternativas Simples

J. D. Warnier

Ejercicios1. Desarrolle la estructura de programa y diagrama de lógica para la siguiente entrada.

)1(

)1(

)1,0(

)1(

)()(

)1(

C

Z

C

D

bBaA

M

entrada

Estructuras alternativas Simples

Page 10: Método de J. D. Warnier

10

J. D. Warnier

Solución a 1

)1(gra.)1(.

)1(.)1,0(

)1,0()1(.

)(

)1(.

)(

)1(gra.

gra

maproFAF

BFC

CBC

bB

AC

aA

maproC

mapro

.F.B

C.programa

C.B

C C

F.A

F.programa

C.A

Estructura del Programa Diagrama de Lógica

Estructuras alternativas Simples

J. D. Warnier

2. Un programa cuyo diagrama general se indica, tiene como objetivo emitir un listado de trabajadores con sus cargas familiares de la empresa ABC. Se dispone de dos archivos:- Archivo maestro, ordenado por ficha y tiene un registro por trabajador con el siguiente formato:Maestro | ficha | nombre | rut | dirección |- El segundo archivo se llama archivo de cargas familiares, ordenado por ficha de trabajador. Cada trabajador que existe en este archivo posee al menos una carga.CargasFam | ficha | nombre carga | fecha nacimiento |

Nota: los trabajadores que vienen en el archivo maestro pueden tener o no cargas familiares.

Estructuras alternativas Simples

J. D. Warnier

D. De Bloque Salida

Listado de cargasFicha nombre rut nombre carga fecha nacimiento------ ---------- --- ---------------- --------------------

--------------- --------------------total carga: ΣC

------ ---------- --- sin carga familiar

Estructuras alternativas Simples

J. D. Warnier

Solución a 2

)1,0("_arg_"

)1(,"arg_"

)1()1(arg

)(arg)1,0(arg.

)1()1(

)1(

)(

)1("_arg___"

)1("_arg__"

familiaresascSin

CasCTotal

ientoFechaNacimaNombreC

casCascG

RutNombreFicha

ttrabajador

ientoFechaNacimaNombreCRutNombreFicha

familiaresascdeListado

salida

Estructura de Salida

Estructuras alternativas Simples

J. D. Warnier

)1()1(arg

)1()(arg)1,0(arg.

)1()1(

)1(

)(

ientoFechaNacimaNombreC

FichacaCacG

RutNombreFicha

ttrabajadorentrada

Estructura de Entrada

)1(gra.)1(.

)1,0(arg.

)1(arg..)(arg

)1(arg..)1,0(arg.

)1(.

)(

)1(.

gra

maproFtrabajadorF

acG

acGFcaC

acGCacG

trabajadorC

ttrabajador

progrmaC

mapro

Estructura de Programa

Estructuras alternativas Simples

J. D. Warnier

F.trabajador

C.programa

C.trabajador

G.carga

F.G.carga

F.programa

C.G.carga

G.carga

Diagrama de Lógica

Estructuras alternativas Simples

Page 11: Método de J. D. Warnier

11

J. D. Warnier

3. Un programa cuyo diagrama general se indica, tiene como objetivo validar la información contenida en un archivo de movimientos. Para esto se tienen los siguientes archivos:MOVCTA: | N.Cta | Monto | FechaMov |contiene un registro por cuenta.MAECTA: | N.Cta | Denominación |contiene un registro por cuenta.Fecha: | Fecha |

Reglas de proceso:•Ambos archivos están ordenados por N.Cta.•Si una cuenta se encuentra en ambos registros imprimir una línea en listado de movimientos correctos.•Si una cuenta que viene en el archivo de MOVCTA no se encuentra en el archivo MAECTA se imprime una línea en listado de movimientos incorrectos

Estructuras alternativas Simples

J. D. Warnier

Movimientos CorrectosFecha

N.Cta Monto Fecha Denominación------- -------- ------- ------------------------- -------- ------- ------------------

...Cantidad Movimientos Correctos: ΣMC

Movimientos IncorrectosFecha

N.Cta Monto Fecha Movimiento-------- ------- --------- ---------------------- ------- --------- --------------

...Cantidad Movtos Incorrectos: ΣMI

D. De BloqueSalidas

Estructuras alternativas Simples

J. D. Warnier

∑∑ )1(,

)1()1()1(.

)1,0(

)1()1(

)1()1(.

)1,0(

)(

)1("","",".")1(

)1("_Re__")1("","","","."

)1()1("_"

RIRC

FechaMMonto

CtaNrectoLineaIncor

onDenominaciFechaMMonto

CtaN

ctoLineaCorre

cCuenta

ientoFechaMovimMontoCtaNFecha

MaestrogsisMovimientoónDenominaciFechaMontoCtaN

FechaCorrectossMovimiento

salida

Estructura de Salida

(1)Movimiento

Estructuras alternativas Simples

J. D. Warnier

)1()1(.

)1,0(Re

)1()1()1(.

)(

)1(

onDenominaciCtaN

gMAECTA

FechaMMonto

CtaN

cCuenta

Fecha

entrada

)1(.)1(.

)0,1(Re

)1,0(Re)1(.

)(

)1(.

programaFcuentaFgMAECTA

gMAECTAcuentaC

cCuenta

programaC

programa

Estructura de Entrada

Estructura de Programa

Estructuras alternativas Simples

J. D. Warnier

com.prog.

C.cuenta

RegMAECTA RegMAECTA

F.cuenta

fin prog.

Estructura de Lógica

Estructuras alternativas Simples

J. D. Warnier

Listas de Instrucciones

• Las instrucciones deben permitir la ejecución de las operaciones a realizar con los datos aportados por el enunciado del problema.

• Las operaciones requeridas sólo podrán ser ejecutadas correctamente si el programa contiene todas las instrucciones necesarias y están en el orden requerido. Para esto se hace una lista de las instrucciones a programar en las secuencias requeridas clasificadas por tipo de instrucción y enseguida se ordenan por número de secuencia.

• Existen dos tipos de listas de instrucciones:• Lista de instrucciones por tipo o categoría de instrucción.• Lista de instrucciones por número de secuencia.

Page 12: Método de J. D. Warnier

12

J. D. Warnier

A) Lista de instrucciones por tipo o categoría de instrucción.

1. Entrada2. Bifurcaciones3. Preparación de bifurcaciones4. Preparación de cálculos y cálculos5. Preparación de salidas y salidas

Listas de Instrucciones

J. D. Warnier

1.- Entrada: Son aquellas que nos permiten leer información desde un archivo.

• Ejemplo: según el siguiente diagrama de lógica y con un solo archivo de entrada

C.program a

carga

F.trabajador

F.program a

C.trabajador

10

20

30

40

50

Nº Sec Instrucción o condición Nº Sec

1030

Leer 1er registro MAELee Maestro

Listas de Instrucciones

J. D. Warnier

2.- Bifurcaciones: son aquellas instrucciones que transfieren el control a otra parte del programa.

• Hay dos tipos de bifurcaciones:• Bifurcación incondicional.• Bifurcación condicional.

Nº Sec Instrucción o condición Nº Sec

20205050

Saldo > 0%

EOFNo EOF

40306020

Nº Sec Instrucción o condición Nº Sec

103040

205050

com.prog.

com.trab.

fin trab.

fin prog.

10

20

30 40

50

60

Listas de Instrucciones

J. D. Warnier

3.- Preparación de bifurcaciones: Consiste en llevar a una zona de referencia un campo que se utilizara posteriormente en una bifurcación condicional.

NºSec

Instrucción o condición

NºSec

NºSec

Instrucción o condición Nº Sec

102030304040

Cod.Carrera = ZR%

EOFNo EOF

203030405020

20 Cod.Carrera -> ZR

C.program a

alum no

F.carrera

F.program a

C.carrera

10

20

30

40

50

Listado de alumnosCarrera matricula promedio-------- ----------- -----------

----------- ---------------------- -----------total alumnos: ΣA

-------- ----------- ---------------------- ----------total alumnos: ΣA.....total general: ΣΣA

Listas de Instrucciones

J. D. Warnier

4.- Preparación de Cálculos: se refiere a la inicialización de contadores o acumuladores. Cálculos: involucra todas las operaciones aritméticas. Según el ejemplo anterior:

Nº Sec Instrucción o condición Nº Sec

10203040

ΣΣA <- 0ΣA <- 0

ΣA <- ΣA + 1ΣΣA <- ΣΣA + ΣA

Listas de Instrucciones

J. D. Warnier

5.- Preparación de salidas: consiste en llevar información a una zona de salida que pueda ser una zona de impresión o grabación. Salidas: se refiere a la acción de grabar o imprimir. Según el ejemplo anterior:Nº Sec Instrucción o condición Nº Sec

1010101020303040405050

“Listado de alumnos” -> ZIImprime y borra

“Carrera”,”Matricula”,”Promedio” -> ZIImprime y borra

Cod.Carrera -> ZIMatricula,Promedio -> ZI

Imprime y borra“Total alumnos”, ΣA -> ZI

Imprime y borra“Total general”,ΣΣA -> ZI

Imprime y borra

Listas de Instrucciones

Page 13: Método de J. D. Warnier

13

J. D. Warnier

B) Lista de instrucciones por número de secuencia.Consiste en ordenar las instrucciones en el orden de ejecución. Para esto se ordenan por número de secuencia en el siguiente orden:

1. Preparación de bifurcaciones2. Preparación de cálculos y cálculos3. Preparación de salidas y salidas4. Entrada5. Bifurcaciones

Listas de Instrucciones

J. D. Warnier

Ejemplos:• Se tiene un programa que lee un archivo de clientes y

emite el siguiente listado.

Listado de saldos

Cod.Cliente Deuda Pago Saldo

-------------- ------- ------ ------

-------------- ------- ------ ------

Total Clientes: ΣC

Archivo de clientes:

| Cod.Cliente | deuda | pago | saldo |

SalidaEntrada

Listas de Instrucciones

J. D. Warnier

Solución

∑ )1(,:""

)1()1()1(

)1(.

)(

)1("___.")1("__"

CtesTotalClien

saldopagodeuda

ClienteCod

cCliente

SaldoPagoDeudaClienteCodsaldosdeListado

salida

)1()1()1(

)1(.

)(

saldopagodeuda

ClienteCod

cClienteentrada

Estructura de Salida

Estructura de Entrada

Listas de Instrucciones

J. D. Warnier

)1(Pr.)(

)1(Pr.gra

ogFincClienteogCom

mproC.programa

Cliente

F.programa

10

20

30

Estructura de ProgramaDiagrama de Lógica

Listas de Instrucciones

J. D. Warnier

NºSecNºSecNºSec Instrucción o condición NºSec Instrucción o condición

Entrada 20 ΣC ΣC +1

10 Leer 1º registro Prep. Salidas y salidas

20 Leer registro 10 “Listado de saldos” ZI

Bifurcaciones 10 I y B

10 20 10 “C.Cliente deuda pago saldo” ZI

20 EOF 30 10 I y B

20 No EOF 20 20 C.Cliete,deuda,pago,saldo ZI

Preparación bifurcaciones 20 I y B

No Hay 30 “Total cliente:” ZI

Prep. Cálculos y cálculos 30 I y B

10 Σ 0

Lista de Instrucciones por Categoría

Listas de Instrucciones

J. D. Warnier

Lista de Instrucciones por Número SecuenciaNºSec Instrucción o condición NºSec NºSec Instrucción o condición NºSec

10 Σ 0 20 ΣC ΣC +1

10 “Listado de saldos” ZI 20 C.Cliete,deuda,pago,saldo ZI

10 I y B 20 I y B

10 “C.Cliente deuda pago saldo”ZI

20 Leer registro

10 I y B 20 EOF 30

10 Leer 1º registro 20 No EOF 20

10 20 30 “Total cliente:” ZI

30 I y B

Listas de Instrucciones

Page 14: Método de J. D. Warnier

14

J. D. Warnier

• Se tiene un programa cuyo objetivo es emitir un listado de alumnos del colegio ABC. Para esto se tiene dos archivos: uno con la información correspondiente a la identificación del alumno, se llama AlumDat, y otro que contiene la matricula del alumno y sus notas, se llama NotDat.

• Entradas: • AlumDat: ordenado por

matricula y contiene un registro por alumno. | matricula | nombre |

• NotDat: ordenado por matricula y contiene al menos un registro por alumno.| matricula | nota |

• Salidas: Informe de NotasMatricula Nombre Nota

------------ ---------- -----------

Promedio: prom------------ ---------- ------

----------

Promedio: prom

Listas de Instrucciones

J. D. Warnier

• Solución:1. Diagrama de bloques

2. Estructura de salida

{

)1(,:"Pr"

)1()(

)1()1(

)(

)1("__"

)1("__"

promomedio

ónCalificacinNota

NombreMatricula

aAlumno

NotaNombreMatricula

NotasdeInforme

salida

3. Estructura de entrada

)1(

)1()(

)1(

)1(

)(

onCalificaci

MatriculanNota

Nombre

Matricula

aAlumnoentrada

Listas de Instrucciones

J. D. Warnier

5. Diagrama de Lógica

C.program a

Nota

F.Alum no

F.program a

C.Alum no

10

20

30

40

50

4. Estructura de programa

)1(graPr.

)1(.)(

)1(.)(

)1(graPr.

gra

maoF

AlumnoFnNota

AlumnoCaAlumno

maoC

mapro

Listas de Instrucciones

J. D. Warnier

6. Lista de instrucciones por categoría

NºSec Instrucción o condición NºSec NºSec Instrucción o condición NºSec

Entrada 20 ΣN 0

10 Leer 1º registro ALUMDAT 20 ΣC 0

10 Leer 1º registro NOTDAT 30 ΣN ΣN +Nota

30 Leer registro NOTDAT 30 ΣC ΣC +1

40 Leer registro ALUMDAT 40 Prom ΣN / ΣC

Bifurcaciones Prep. Salidas y salidas

10 20 10 “Informe de Notas” ZI

20 30 10 I y B

30 Mat.NOTDAT = Mat.ALUMDAT 30 10 “Matricula Nombre Nota” ZI

30 Mat.NOTDAT <> Mat.ALUMDAT 40 10 I y B

40 EOF 50 20 Matricula,Nombre ZI

40 No EOF 20 30 Nota ZI

Preparación bifurcaciones 30 I y B

No hay 40 “Promedio:”,prom ZI

Prep. Cálculos y cálculos 40 I y B

Listas de Instrucciones

J. D. Warnier

7. Lista de instrucciones por número secuenciaNºSec Instrucción o condición NºSec NºSec Instrucción o condición NºSec

10 “Informe de Notas” ZI 30 ΣC ΣC +1

10 I y B 30 Nota ZI

10 “Matricula Nombre Nota” ZI 30 I y B

10 I y B 30 Leer registro NOTDAT

10 Leer 1º registro ALUMDAT 30 Mat.NOTDAT = Mat.ALUMDAT 30

10 Leer 1º registro NOTDAT 30 Mat.NOTDAT <> Mat.ALUMDAT 40

10 20 40 Prom ΣN / ΣC

20 ΣN 0 40 “Promedio:”,prom ZI

20 ΣC 0 40 I y B

20 Matricula,Nombre ZI 40 Leer registro ALUMDAT

20 30 40 EOF 50

30 ΣN ΣN +Nota 40 No EOF 20

Listas de Instrucciones

J. D. Warnier

Estructuras Repetitivas Complejas

• Son aquellas que en un determinado nivel de la estructura tiene dos o mas elementos de presencia repetitiva, pudiendo tener además, elementos de presencia unitaria.

• Cuando en algún nivel de la entrada existe una estructura repetitiva compleja la estructura correspondiente de programa debe contener los siguientes elementos:• Una secuencia lógica de comienzo de nivel y otra de fin de

nivel que serán ejecutadas una vez cada una.• Una secuencia lógica repetitiva por cada elemento repetitivo

de entrada, dichas secuencias se ejecutaran tantas veces como sea necesario para procesar cada tipo de elemento de entrada.

• N-1 secuencias intermedias (N = cantidad de elementos repetitivos del nivel) situadas entre las secuencias repetitivasy que se ejecutaran una vez cada una.

Page 15: Método de J. D. Warnier

15

J. D. Warnier

• Las secuencia lógica inicial contendrán todas las instrucciones propias del comienzo del nivel y además todas las instrucciones necesarias previas al proceso de la primera secuencia repetitiva.

• Cada secuencia lógica intermedia contempla las instrucciones necesarias posteriores a la secuencia repetitiva precedente y todas las instrucciones previas a la secuencia repetitiva siguiente.

• Las secuencias de fin de nivel contendrá todas las instrucciones correspondientes al término de la estructuras correspondientes precedentes y todas las instrucciones propias del termino del nivel.

Estructuras Repetitivas Complejas

J. D. Warnier

Estruct.Repetiti.Simple

Estruct.Repetiti.Complej

Estruct.Alternat.Simple

)()(

)1,0()(

)1()1()1(

)(

)(

)1(

jJiI

HcC

DGF

bB

aA

F

entrada

Estruct.Repetiti.Complej

)1()1(

)(2.Re

)1()1(

)(1.Re

DatosClave

rTipog

DatosClave

rTipogentrada

• Ejemplos

Estructuras Repetitivas Complejas

J. D. Warnier

• Ejemplos

)1(3)1(3

)(

)1(2)1(2

)(

)1(1)1(1

)(

)(

DatoClave

dD

DatoClave

cC

DatoClave

bB

aAentrada

)1(gra.

)1(.)(

)1(2)(

)1(1)(

)1(.

)(

)1(.

gra

maproF

AFdD

IntcC

IntbBAC

aA

progrmaC

mapro

C .p ro g ra m a

D

F .A

F .p ro g ra m a

C .A

B

In t-1

C

In t-2

• Diagrama de lógica

• Estructura de programa

• Estructura de entrada

Estructuras Repetitivas Complejas

J. D. Warnier

Estructuras Alternativas Complejas

• Son aquellas que en un determinado nivel de la estructura tiene dos o mas elementos de presencia alternativa, pudiendo tener además, elementos de presencia unitaria.

• Cuando en algún nivel de la entrada existe una estructura alternativa compleja la estructura correspondiente de programa debe contener los siguientes elementos:• Una secuencia lógica de comienzo de nivel y otra de fin de

nivel que serán ejecutadas una vez cada una.• Una secuencia lógica alternativa por cada elemento

alternativo de entrada.• N-1 secuencias intermedias (N = cantidad de elementos

alternativos del nivel) situadas entre las secuencias alternativas y que se ejecutaran una vez cada una.

J. D. Warnier

• Las secuencia lógica inicial contendrán todas las instrucciones propias del comienzo del nivel y además todas las instrucciones necesarias previas al proceso de la primera secuencia alternativa.

• Cada secuencia lógica intermedia contempla las instrucciones necesarias posteriores a la secuencia alternativa precedente y todas las instrucciones previas a la secuencia alternativa siguiente.

• Las secuencia de fin de nivel contendrá todas las instrucciones correspondientes al término de la estructura correspondiente precedente y todas las instrucciones propias del termino del nivel.

Estructuras Alternativas Complejas

J. D. Warnier

• Ejemplos

)1(

)1()1,0(2.Re

)1(

)1()1,0(1.Re

Datos

ClaveTipog

Datos

ClaveTipog

entrada

Estruct.Repetiti.Complej

)1()1(

)1,0(

)1(

)1()1(

)1,0(

)(

)1(

JI

H

D

GF

B

aA

F

entrada

Estruct.Repetiti.Simple

Estruct.AlternativaComplej

Estructuras Alternativas Complejas

Page 16: Método de J. D. Warnier

16

J. D. Warnier

• Ejemplos• Diagrama de lógica

• Estructura de programa

• Estructura de entrada

)1(2)1(2

)1,0(

)1(1)1(1

)1,0()(

DatoClave

C

DatoClave

BaAentrada

)1(gra.)1(.)1,0))1,0(

)1(1)1,0()1,0()1(.

)(

)1(.

gra

maproFAF

CCIntBB

AC

aA

progrmaC

mapro

C.program a

F.A

F.program a

C.A

Int-1

Not C C

Not B B

Estructuras Alternativas Complejas

J. D. Warnier

Estructuras Complejas Mixtas

• Es una estructura que tiene elementos repetitivos y alternativos en el mismo nivel pudiendo tener además elementos de presencia unitaria.

)()1()1(

)1,0(

)(

)(

dDFE

C

bB

aAentrada

Estruct.Repetiti.Simple

Estruct.ComplejMixta

J. D. Warnier

• Ejemplos• Diagrama de lógica

• Estructura de programa

• Estructura de entrada

)()1()1(

)1,0(

)(

)(

dDFE

C

bB

aAentrada

C .p ro g ra m a

D

F .A

F .p ro g ra m a

C .A

In te r1

In te r2

N o t C C

B

)1(.)(

)1(2)1,0(

)1,0()1(1

)()1(.

)(gra

AFdD

InterC

CInter

bBAC

aAmapro

Estructuras Complejas Mixtas

J. D. Warnier

Ejemplo Estructuras Repetitiva Compleja

• La empresa ABC desea emitir un listado de sueldos y un archivo de liquidación, para esto la empresa dispone de un archivo maestro, el cual tiene un registro por trabajador, clasificado por ficha con el siguiente esquema de registro: | ficha | cargo | nombre |.

• Los trabajadores de la empresa reciben haberes por concepto de bonificación, participación, premios de antigüedad, etc. Por cada haber se ha grabado un registro en el archivo de haberes. Cada trabajador tiene al menos un haber. El archivo haberes esta clasificado por ficha y tiene el siguiente esquema:| ficha | codigo |monto |.

• La empresa además dispone de una archivo de descuentos clasificados por ficha. Posee al menos un registro por trabajador y tiene el siguiente esquema: | ficha | codigo | monto |.

J. D. Warnier

• Proceso:•Se deben acumular todos los haberes y descuentos para cada trabajador.•Se debe emitir planillas de sueldos. •Se deben grabar en archivo liquidación un registro por trabajador.•El saldo a pagar se debe calcular de la siguiente forma: Saldo_a_pagar = ΣHaber - ΣDescuento

• Salidas:•Archivo Liquidación : |Ficha|Nombre|SaldoaPagar|

Planilla de SueldoHaberes Descuentos

Ficha Nombre Cargo Código Monto Código Monto Saldo a Pagar------ ---------- ------- --------- -------

--------- -------. . . ΣH

-------- --------------- -------

. . . ΣD ΣH - ΣD

------ ---------- ------- --------- ---------------- -------

. . . ΣH

-------- --------------- -------

. . . ΣD ΣH - ΣD

Ejemplo Estructuras Repetitiva Compleja

J. D. Warnier

• Solución:Estructurade salida

Estructurade entrada

{

−−

∑∑∑∑∑

)1(,,)1(Re)1(

)1()1(.)(

)1()1()1()(

)1(arg)1(

)1()1(".._____arg__"

)1("_")1(,"__"

DHNombreFichagistroDHD (1),

entoMontoDescuDescuentoCoddDescuento

HMontoHaber

rCodigoHabehHaber

oCNombreFicha

Trabajador

PagaraSaladoMontoCodigoMontoCodigooCNombreFichaDescuentosHaberes

sueldosdePanilla

salida

)1()1(.

)1()(

)1()1(.

)1()(

)1()1(arg

)1(

)(

oMontoDesctDesctoCod

FichadDescto

MontoHaberHaberCod

FichahHaber

NombreoC

Ficha

tTrabajadorentrada

Ejemplo Estructuras Repetitiva Compleja

Page 17: Método de J. D. Warnier

17

J. D. Warnier

Estructura de programa

( )

1graPr.

)1(.

)(

)1(

)(

)1(.

)(

)1(graPr.

gra

maoF

TrabajadorF

dDescto

Inter

hHaber

TrabjadorC

tTrabajador

maoC

mapro

Diagrama de lógica

C.program a

F.Trabajador

F.program a

C.Trabajador

Haber

Inter

Descto

10

20

30

40

50

60

70

Ejemplo Estructuras Repetitiva Compleja

J. D. Warnier

Listado de instrucciones por categoríaNºSec Instrucción o condición NºSec NºSe

cInstrucción o condición NºSec

Entrada 30 ΣH ΣH + Monto10 Leer maestro 50 ΣD ΣD + Monto60 Leer maestro 60 ΣH - ΣD10 Leer haber Prep. Salidas y salidas30 Leer haber 10 “Planilla de sueldos” ZI10 Leer descto 10 I y B50 Leer descto 10 “Haberes Descuentos” ZI

Bifurcaciones 10 I y B10 20 10 “Ficha Nombre Cargo Codigo” ZI20 30 10 “Monto Codigo Monto SaldoPagar”

ZI30 FichaMaestro=FichaHaber 30 10 I y B30 FichaMaestro<>FichaHaber 40 20 Ficha,nombre,cargo ZI40 50 30 Codigo,monto ZI50 FichaMaestro=FichaDescto 50 30 I y B50 FichaMaestro<>FichaDescto 60 40 ΣH ZI60 EOF 70 40 I y B60 No EOF 20 50 Codigo,monto ZI

Preparación bifurcaciones 50 I y BNo hay 60 ΣD,ΣH-ΣD ZI

Prep. Cálculos y cálculos 60 I y B20 ΣH 0 60 Ficha,nombre, ΣH-ΣD ZG20 ΣD 0 60 Graba

Ejemplo Estructuras Repetitiva Compleja

J. D. Warnier

• Sea la siguiente estructura de un archivo de entrada: | Rut | Nombre | Tipo1 |EstadoCivil | Tipo2 | Sexo | en donde Tipo1 en 0 para trabajadores y 1 para ejecutivos; Tipo2 es 0 para los trabajadores de producción y 1 para los trabajadores de administración; Estado Civil es 0 para los solteros, 1 para los casados, 2 para los separados y 3 para los viudos; Sexo es 0 para las mujeres y 1 para los hombres. Se desea generar tres listados:

Mujeres casadas Ejecutivos de Producción Trabajadoras(no ejecutivas) administrativas

Rut Nombre Rut Nombre Rut Nombre---- ---------- ---- ---------- ---- -------------- ---------- ---- ---------- ---- -------------- ---------- ---- ---------- ---- ----------

Ejemplo Estructuras Alternativa Compleja

J. D. Warnier

Solución:

3. Estructura de Entrada

1. Diagrama de Bloques 2. Estructura de salida

)1()1(

)1,0(3

)1()1(

)1,0(2

)1()1(

)1,0(1

)(

)1("","")1(")_("

)1("","")1("Pr__"

)1("","")1("_"

NombreRut

Listado

NombreRut

Listado

NombreRut

Listado

tTrabajador

NombreRuttivasadministraejecutivasnoasTrabajador

NombreRutoduccióndeEjecutivos

NombreRutCasadasMujeres

salida

)1(2)1(1)1(

)1,0(3

)1(2)1(1

)1,0(2

)1()1(

)1,0(1

)1()1(

)(

TipoTipoSexo

Listado

TipoTipo

Listado

lEstadoCiviSexo

Listado

NombreRut

ttrabajadorentrada

Ejemplo Estructuras Alternativa Compleja

J. D. Warnier

4. Estructura de programa 5. Diagrama de lógica

)1(graPr.)1(.

)1,0(3

)1,0(3)1(2

)1,0(2

)1,0(2)1(1

)1,0(1

)1,0(1)1(.

)(

)1(Pr.

gra

maoFTrabajadorF

Listado

ListadoInterListado

ListadoInterListado

ListadoTrabjadorC

tTrabajador

ogamaC

mapro

C.Program a

F.Trabajador

F.Program a

C.Trabajador

Inter1

NoListado2 Listado2

NoListado1 Listado1

Inter2

NoListado3 Listado3

10

20

30 40

50

60

90

70

100

80

110

120

Ejemplo Estructuras Alternativa Compleja

J. D. Warnier

6. Listado de instrucciones por categoría

NºSec Instrucción o condición NºSec NºSec

Instrucción o condición NºSecEntrada Prep. Cálculos y cálculos

10 Leer archivo trabajador No Hay110 Leer archivo trabajador Prep. Salidas y salidas

Bifurcaciones 10 “Mujeres casadas” ZI10 20 10 I y B20 Not(Sexo=0 y EstadoCivil=1) 30 10 “Rut Nombre” ZI20 Sexo=0 y EstadoCivil=1 40 10 I y B30 50 10 “Ejecutivos de Producción” ZI40 50 10 I y B50 Not (Tipo1=1 y Tipo2 = 0) 60 10 “Rut Nombre” ZI50 Tipo1=1 y Tipo2 = 0 70 10 I y B60 80 10 “Trabajadoras(no ejecutivas)

admin.” ZI70 80 10 I y B80 Not(Sexo=0yTipo1=0

yTipo2=1)90 10 “Rut Nombre” ZI

80 Sexo=0 y Tipo1=0 y Tipo2=1

100 10 I y B90 110 40 Rut, Nombre ZI

100 110 40 I y B110 No EOF 20 70 Rut, Nombre ZI110 EOF 120 70 I y B

Preparación bifurcaciones 100 Rut, Nombre ZINo hay 100 I y B

Ejemplo Estructuras Alternativa Compleja

Page 18: Método de J. D. Warnier

18

J. D. Warnier

Ejemplo Estructuras Compleja Mixtas

• La empresa ABC requiere confeccionar un archivo con los antecedentes necesarios para efectuar el pago de remuneraciones de su personal. El formato de este archivo que debe tener 1 registro por trabajador es el siguiente: |Ficha|ΣHaberes|ΣDescuentos|Bonificación|.

• Para cumplir con este objetivo se dispone de 3 archivos: (los tres archivos están ordenados por Ficha).

• Archivo de haberes con varios registros por trabajador con el siguiente formato: |Ficha|Monto|.

• Archivo de descuentos con varios registros por trabajador con el siguiente formato: |Ficha|Monto|.

• Archivo de bonificación, en el cual cada trabajador puede tener o no 1 registro con el formato: |Ficha|Bonificación|.

J. D. Warnier

Solución:

2. Estructura de Entrada

1. Estructura de salida

∑∑

)1()1(

)1()1(

)(

ónBonificaciDescuentos

HaberesFicha

ttrabajadorsalida

)1()1(

)1,0(

)1()1(

)(

)1()1(

)(

)(

icaciónMontoBonifFicha

ónBonificaci

entoMontoDescuFicha

dDescuentos

MontoHaberFicha

hHaber

ttrabajadorentrada

Ejemplo Estructuras Compleja Mixtas

J. D. Warnier

3. Estructura de programa 4. Diagrama de lógica

)1(graPr.)1(.

)1,0(

)1,0()1(2

)1()1(1)(

)1(.

)(

)1(graPr.

gra

maoFtrabajadorF

ónBonificaci

ónBonificaciInterDescuentoInter

hHabertrabajadorC

ttrabajador

maoC

mapro

C.program a

F.trabajador

F.program a

C.trabajador

Inter1

Inter2

No Bonific Bonif ic

Haber

Descuento

10

20

30

40

50

60

70 80

90

100

Ejemplo Estructuras Compleja Mixtas

J. D. Warnier

5. Listado de instrucciones por categoría

NºSec Instrucción o condición NºSec NºSec

Instrucción o condición NºSec

Entrada 70 9010 Leer haberes 80 9030 Leer haberes 90 EOF(Haber) y EOF(Descuento) 10010 Leer descuentos 90 No (EOF(Haber) y EOF(Descuento)) 2050 Leer descuentos Prep. Bifurcaciones10 Leer bonificación 20 FichaHaher ZR80 Leer bonificación Prep. Cálculos y cálculos

Bifurcaciones 20 ΣHaberes 010 20 30 ΣHaberes ΣHaberes + Monto20 30 40 ΣDescuentos 030 FichaHaber = ZR 30 50 ΣDescuentos ΣDescuentos + Monto30 FichaHaber <> ZR 40 70 Bon 040 50 80 Bon Bonificación50 FichaDescuento = ZR 50 Prep. Salidas y salidas50 FichaDescuento <> ZR 60 60 ZR, ΣHaberes,ΣDescuentos ZG60 FichaBonificacion = ZR 80 90 Bon ZG60 FichaBonificacion <> ZR 70 90 Graba

Ejemplo Estructuras Compleja Mixtas

J. D. Warnier

1. Una empresa ha decidido implementar un sistema de remuneraciones y uno de los programas que lo forman es el que seespecifica a continuación. Objetivo: emitir liquidación de sueldo.

Proceso:• Calcular total haberes: total haberes = S.Base + ΣH + Asig.Fam.• Calcular total descuentos: total descuentos = ΣD• Calcular Asignación Familiar: Asig.Fam. = Cant.Cargas Fam. *

Val.Cargas Fam.• Calcular Sueldo Liquido: S.Liq. = Total haberes – total descuentos• Calcular totales de control:• Total de registros leídos en archivo maestro.• Total de registros leídos en archivo haberes.• Total de registros leídos en archivo descuentos.• Total a pagar.

Ejercicios

J. D. Warnier

Entrada:• Archivo Maestro: | Cod.Trab | Nombre | S.Base | Cant.Cargas Fam.

| Cod.AFP |• Posee un registro por trabajador, Clasificado por código trabajador• Archivo Haberes: | Cod.Trab | Cod.Haber | Monto |• Posee varios registros por trabajador, Clasificado por código

trabajador• Archivo Descuentos: | Cod.Trab | Cod.Descto | Monto |• Posee varios registros por trabajador, Clasificado por código

trabajador• Archivo Parámetros: | Fecha | Valor Carga Fam. |

Ejercicios

Page 19: Método de J. D. Warnier

19

J. D. Warnier

Salida:Liquidación de Sueldo

Nombre:_______ Cod.AFP:___

HABERES MontoSueldo Base ___________Cod.Haber ___________Cod.Haber ___________. . .Asig.Fam. ___________Total Haberes ___________

DESCUENTOSCod.Descto. ___________Cod.Descto. ___________. . . Total Descto. ___________Sueldo Liq. ________________ ___________Fecha Firma

Totales de Control

Total reg. archivo maestro _____Total reg. archivo haberes _____Total reg. archivo desctos _____Total a pagar _____

Ejercicios

J. D. Warnier

Una empresa productiva desea emitir un listado de las compras realizadas por sus clientes. Para esto se dispone de tres archivos organizados de la siguiente manera. La empresa dispone de un archivo de clientes, en el cual existe un registro por cada cliente en el periodo. Cada cliente a comprado diversos artículos, y por cada compra se ha grabado un registro en el archivo de despacho. Cada cliente en el periodo tiene al menos una compra. Algunos clientes tienen un porcentaje de rebaja. Esta información está contenida en el archivo rebajas.

Proceso:− Todos los archivos están ordenados por código cliente.− Para cada articulo se debe calcular: valor = cantidad * precio unitario.− Si un cliente tiene rebaja se debe calcular el descuento de la

siguiente forma: descto = ( %rebaja * Σvalor ) / 100.

Ejercicios

J. D. Warnier

Entrada:a) Archivo clientes: | cod.cliente | nombre | dirección | rut | contiene

un registro por cliente.b) Archivo despacho: | cod.cliente | artículo | cantidad | p.unitario |

cada cliente tiene al menos un registro.Archivo rebaja: | cod.cliente | %rebaja | contiene cero o un registro por

cliente.

Ejercicios

J. D. Warnier

Salida:Distribuidora QWERTY

Cod.Cliente Nombre Artículo Cantidad P.Unitario Valor--------------- --------- ---------- ----------- ------------- -------

---------- ----------- ------------- -------Total: ΣValorDescuento: Descto.Nuevo Total: ΣValor – Descto.

--------------- --------- ---------- ----------- ------------- ----------------- ----------- ------------- -------

Total: ΣValorDescuento: Descto.Nuevo Total: ΣValor – Descto.

. . . . . . . . .Total General: _____________

Ejercicios