Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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.
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
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
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
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
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