Post on 26-Jun-2015
transcript
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
1
PROGRAMACION APLICANDO DIAGRAMAS
TIPO JACKSON
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
2
Introducción
A lo largo del tiempo se ha entendido al tema de programación como el hecho de
conocer un lenguaje y a travez de él lograr la solución a determinados problemas.
Este concepto hoy se ha modificado , entendiendose como programación a la
posibilidad de la resolución del problema , independientemente del lenguaje a utilizar.
La solución de problemas por medio de la programación es una tarea que requiere
meditación , planificación , lógica y perseverancia .por lo cuál es una actividad que
tiene características de mucha creatividad y desafio personal.
Para la resolución de un problema pues , es necesario primero entenderlo , luego crear el
algorítmo necesario y por último volcarlo a un lenguaje determinado.es aquí donde se
ve que no basta conocer sólo un lenguaje sino que es necesario conocer una técnica de
programación.
Algoritmo , es un conjunto finito de pasos , procesados en un tiempo finito despues del
cuál se obtiene la solución deseada.
O sea que todo algoritmo debe tener un principio y un fin determinado.
Este curso buscará enseñar a resolver problemas mediante técnicas de programación ,
buscará enseñar a pensar esas resoluciones , lo intentará a travez de un algoritmo.
Como dijimos antes existen etapas para la solución del problema , las cuales podriamos
definir como la estrategia a seguir
Determinar datos
Determinar resultados
Determinar los procesos que debemos aplicarle a esos datos para obtener
esos resultados
Los datos serán todos aquellos elementos que provengan del exterior de nuestro
programa , y que su procesamiento en una forma determinada nos permitirá obtener los
resultados requeridos que es lo que llamamos información.
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
3
Representación de los datos y de los resultados en un programa
Estos serán representados por medio de lo que conoceremos como variables , estas
llevaran nombres claros y representativos de lo que contienen y podrán ser de distintos
tipos
por ej
Dato o resultado Variable Tipo
Nombre empleado Nomemp Texto
Hs trabajadas Hstrab Numérica
Valor hora Valhs Numérica
Sueldo Sdo Numérica
Fecha de nacimiento Fnac Fecha y hora
Comentarios Curric Memo
Los tipos de datos estarán ligados al lenguaje a utilizar pero en general todos tienen los
mismos tipos o muy parecidos.
Dentro de las variables nosotros podremos guardar datos , valores constantes y a otras
variables que vayan surgiendo durante la ejecución de nuestro algoritmo.
A continuación los datos se verán afectados por procedimientos para obtener un
resultado , es conveniente dividir estos procedimientos en procesos lo más pequeños
posible a fin de tener mayor control sobre los mismos , y que una posterior
modificación en una parte de él no repercuta en todo el resto negativamente , “divide y
triunfaras “.
Lo que restaría es armar el algoritmo que no es más que colocar estos pequeños
procesos en una forma lógicamente ordenada para poder obtener los resultados
deseados.
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
4
DIAGRAMACION JACKSON
Esta es una forma más de representar la lógica de programación.
Un proceso es una secuencia de instrucciones que ocupan una cantidad de recursos del
computador y permiten la solución de un problema , ya sea en función de un solo
proceso o de varios subprocesos que al combinarse correcta y lógicamente generan la
solución deseada .
La diagramación Jackson consiste en dibujar a todos sus elementos como rectángulos ,
que se encuentran ordenados en forma secuencial de izquierda a derecha y poseen
distintos niveles entre sí.
En todos los casos dentro del rectángulo se escribe la instrucción , el procedimiento que
se llama , etc.
Tipos de Estructuras
Dentro de la programación estructurada reconocemos tres estructuras básicas
Estructuras secuenciales
Estructuras condicionales
Estructuras iterativas o de repetición
programa
inicio proceso fin
Proceso 1 Imprimir listado sueldo
Sueldo = ch * vh Si a = b
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
5
Forma de dibujar las distintas operaciones
Secuenciales
En seudo código seria :
Leer datos
Sdo = ch * vh
Imprimir sdo
Condicionales
La condición que se desea comprobar va adentro del rectángulo
Puede darse dos casos
1. condicionales con salida por el verdadero de la condición especificada
En seudo código seria :
Si a = b entonces
C = a + b
Sdo = sdo – c
Fin si
Leer datos Sdo = ch * vh Imprimir sdo
Si a = b
C = a + b
Sdo = sdo - c
si
no
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
6
2. condicionales con salida por el verdadero y por el falso de la condición especificada
En seudo código seria :
Si a = b entonces
C = a + b
Sdo = sdo + c
De lo contrario
C = a * b
Sdo = sdo * c
Fin si
Iterativas
La condición que se desea que se cumpla se escriba a la derecha del rectángulo
Pueden darse dos casos de iteración
ciclos repetitivos exactos
Si a = b
C = a + b Sdo = sdo + c C = a * b Sdo = sdo * c
si
no
Proceso vector
Leer dato V( I ) = dato
I = 1 a 10
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
7
En seudo código seria :
Para I = 1 a 10
Leer dato
V ( I ) = dato
Próximo
ciclos repetitivos inexactos
En seudo código seria :
Leer cta, sueldo
Hacer hasta fin de archivo
V ( cta ) = sueldo
Leer cta,, saldo
Repetir
Leer cta , sueldo Proceso vector
V(cta) = sueldo Leer cta , sueldo
Hasta fin de
archivo
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
8
Tipos de datos estructurados
Los dos tipos de datos estructurados más importantes son el array ( vectores y matrices )
y los registros .
En un arreglo las componentes son del mismo tipo y se accede a ellas mediante un
número correlativo llamado subíndice.
En los registros en cambio las componentes pueden ser de diversos tipos , especificadas
por distintos nombres , y a su conjunto se lo puede acceder mediante distintas técnicas
que veremos más adelante.
Vectores
Los vectores son estructuras de memoria que poseen un tamaño conocido de ocurrencias
y en general almacenan datos de un mismo tipo.
Dado un vector de nombre vect de 10 ocurrencias que almacena valores numéricos
12 45 56 78 15 23 56 15 1000 41
1 2 3 4 5 6 7 8 9 10
La forma de escribir un vector sería
vect (subíndice)
donde el subíndice sería normalmente un numero entero , representado por un dato , una
variable o una constante .
el valor del subíndice puede ser desde 0 , 1 o un valor arbitrario , eso dependerá del
lenguaje a utilizar.
En el ejemplo anterior tenemos que
Si la posición o valor del subíndice es 6
el valor guardado en el vector en esa posición es 23
carga directa de un vector
Sea un archivo secuencial con los siguientes campos
mes tipo numérico de 1 a 12
lluvia-caida tipo numérico
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
9
se desea cargar un vector con dicha información.
Como vemos en este ejemplo se utilizó como subíndice de carga un dato del archivo
que era numérico , entero y conocido
Carga indirecta de un vector
Sea un archivo secuencial con los siguientes campos
Patente alfanumérico
Propietario alfanumérico
Multa numérico
Y se sabe que se confeccionaron 100 multas en el día , si deseamos cargar este archivo
en vectores , vemos que no podemos utilizar ninguno de sus campos como subíndice ,
por lo que deberemos hacer lo siguiente
Búsqueda en vectores
Para extraer un dato de un vector necesitaremos conocer esencialmente la posición que
deseamos recuperar
Para ello podemos utilizar un dato que nos suministran o un ciclo exacto hasta encontrar
el valor deseado o una constante .
Leo archivo Pro 1 Hasta eof archivo
Vec (mes) = Vec (mes)
+ lluvia-caida Leo archivo
Proceso 1 Para i = 1 a 100
Leo archivo Vpat ( I ) = patente Vprop ( I ) = propietario Vmta ( I ) = multa
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
10
Var = Vec ( mesaux) Var = Vec ( 4 )
Ingreso patente Pro 2 Para I = 1 a 100
Si Vpat ( I ) = patente
K = I
Var = vprop ( K )
si
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
11
Matrices
Las matrices son arrays de dos o más dimensiones según soporte el lenguaje a utilizar.
Para nuestro estudio utilizaremos matrices bidimensionales
Mantienen básicamente las mismas características en lo que concierne al tipo de
subíndices a utilizar , su representación y su contenido.
En lugar de manejar un solo subíndice manejaremos dos que nos representarán las filas
y columnas de una matriz
45 65 12 58 47 69
15 48 59 23 52 42
78 84 9 120 451 784
65 85 53 42 73 95
En este ejemplo tenemos que la matriz llamada MATSDO tiene las siguientes
características
Tiene 4 filas y 6 columnas MATSDO ( 4,6 )
Si la fila vale 2 y la columna 5 el valor de MATSDO ( 2 , 5 ) es 52
Sus formas de carga y de posible búsqueda de un dato en ella es similar a la de los
arrays o vectores unidimensionales , pudiendo combinarse en sus subíndices una
constante y un dato, una constante y una variable , dos datos , etc.
Vectores asociados a una matriz
Supongamos que me dan los siguientes archivos secuenciales
Archivo depósito
codDep alfanumérico
Nombre alfanumérico
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
12
Archivo artículo
Codart alfanumérico
Descripción alfanumérico
Me dicen que son 1000 artículos y 10 depósitos
Luego me dan el archivo stock
Deposito alfanumérico
Articulo alfanumérico
Stock numérico
Pues bien lo primero que deberé hacer es cargar los archivos depósito y artículo en
sendos vectores , uno de 10 posiciones y el otro de 1000 posiciones
Dentro de inicio
programa
inicio Proceso fin
inicio
Pro 1 Para I= 1 a 10 Pro 2 Para K = 1 a
1000
Leo
deposito
Vdep ( I ) = coddep
Vnom ( I ) = nombre
Leo artículos Vart ( K ) = codart
Vdes ( K ) = descripción
Leo stock
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
13
Ahora bien para poder cargar el archivo de stock debo hacer que exista una relación
entre las posiciones donde guarde los depósitos y los artículos en los vectores y la
matriz que voy utilizar , es por ello que deberé obtener los subíndices de la matriz de
estos vectores asociados . para ello en el proceso tendré que hacer lo siguiente :
Archivos
proceso
Pro 3 Para I = 1 a 10 Pro 4
Para I = 1 a
1000 Ma ( K ,M ) = stock Leo stock
Si vdep ( I ) =
deposito
Si dart ( I ) =
articulo
K = I M = I
si si
Hasta eof stock
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
14
Archivos
Campos de un registro
Los campos de un registro son la unidad lógica donde se almacenan los datos de un
registro
Tienen como característica su nombre , tipo y tamaño
Nombre Tipo tamaño
Nrocta Numérico 5
Razonsocial alfabético 25
Fechadeposito fecha 6
Comentarios memo 200
Los tipos de datos y su tamaño se verán restringidas por el lenguaje que se utilice
Un conjunto de campos componen un registro , como por ejemplo la tabla anterior
donde los 4 datos tomados como una unidad componen el registro .
Un conjunto de registros componen un archivo
Existen básicamente dos tipos de archivos
Secuenciales
Indexados
Secuenciales
Tienen como característica principal que su organización es secuencial y su forma de
acceso a los distintos registros es únicamente secuencial. , o sea que para acceder al
registro 50 debo haber pasado por los 49 anteriores
Estos archivos pueden o no estar ordenados .
Así mismo estos archivos pueden o no tener registros repetidos o sea varios registros
para una misma cuenta.
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
15
Tomaremos como notación la siguiente
S/R sin repetidos
C/R con repetidos
ordenación
c
C/R N ( 5 ) A( 25 ) F( 6 ) memo( 200 )
Colocándole debajo de cada campo el tipo y su tamaño
El ordenamiento del archivo puede ser realizado por más de un campo , por ejemplo
podemos decir que el archivo esta ordenado por nrocta y dentro de ello por fecha.
Archivos Indexados
Los archivos indexados tienen como particularidad que para su acceso necesitan de una
clave de acceso , y están ordenados lógicamente por esa clave.
En todo archivo indexado la organización física de los registros es de acuerdo al orden
de grabación pero su organización lógica esta dada por la clave.
La organización de un archivo indexado es indexada y según el lenguaje las formas de
acceso pueden ser secuencial , random o al azar y dinámica
Secuencial es la lectura de un registro a posteriori del anterior con la única seguridad de
que el archivo se encuentra ordenado por la clave de acceso definida
Acceso random es aquel en que el acceso es en forma directa y única a un registro en
particular , debiéndose conocer el valor de la clave completa de acceso , si esta
compuesta por mas de un campo se debe conocer todos los valores de esos campos
Dinámica es la forma de acceso a un registro en particular y de allí permite leer el
archivo en forma secuencial hasta una condición dada .
Así mismo en este caso no es necesario conocer la clave completa , si esta se encuentra
compuesta por mas de un campo y existe peso de orden entre ellos .Será necesario que
conozcamos aquellos de mayor peso , no pudiendo conocer los de menor peso y
desconocer los de mayor peso.
Nrocta razonsocial fecha comentarios
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
16
En este caso de un archivo de infracciones , la clave esta compuesta por la patente del
automóvil y como esta puede estar repetida por varias multas hay que agregarle el
campo nroinfraccion para lograr que ese valor sea único.
Este archivo estará lógicamente ordenado por patente y dentro de ella por nro de
infracción .
Un archivo indexado puede tener varias claves de acceso definidas a la vez , eso
dependerá del lenguaje a utilizar .
Podemos decir que un archivo indexado esta compuesto por la tabla base que es donde
se encuentran los registros propiamente dichos y distintas tablas índices asociadas para
su más rápido y fácil acceso.
patente nroinfraccion tipoinfraccion monto
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
17
Corte de control
Una de las operaciones básicas a realizar con archivos es la realización de corte de
control .
Esta operación nos permitirá obtener subtotales de registros con valores repetidos en
algunos de sus campos.
Para poder realizar un corte de control es necesario y fundamental que el archivo se
encuentre ordenado por el o los campos por los que deseamos realizar estos cortes, caso
contrario no se puede realizar .
Este archivo se encuentra ordenado por nro de banco y dentro de los bancos por
sucursal y dentro de la sucursal por nro de cuenta
Si nosotros deseamos tener un listado donde se nos muestre el valor de cada cuenta , el
total por sucursal y por último el total por banco deberemos hacer lo siguiente
Nota : por cuestiones de espacio se incluyeron dos operaciones en un mismo rectángulo
Eof = end of file = fin de archivo
banco sucursal cuenta saldo
Proceso 1
Proceso 2
Proceso 3
eof
Eof o
bco <> aux
Eof o bco <> aux o
Suc <> aux1
Leo archivo
Aux = bco
Acumbco = 0
Aux1 = suc
Acumsuc = 0 Acumbco =
Acumbco +
acumsuc
Imprimir
acumsuc
Imprimir
acumbco
finalizar
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
18
En seudo código seria :
Comienzo .
Leo archivo
Hacer proceso 1 hasta eof
finalizar
Fin
Proceso 1:
Aux = bco
Acumbco = 0
Hacer proceso 2 hasta eof o bco <> aux
Imprimir acumbco
Fin proceso 1
Proceso 2:
Aux1 = suc
Acumsuc = 0
Hacer proceso 3 hasta eof o bco <> aux o suc <> aux1
Acumbco = acumbco + acumsuc
Imprimir acumsuc
Fin proceso 2
Proceso 3:
Acumsuc = acumsuc + saldo
Imprimir saldo
Leo archivo
Fin proceso 3
Como vemos debemos guardarnos el valor del banco y de la sucursal en sendos
auxiliares y leer el archivo hasta que cambien .
Cuando cambian podemos realizar las operaciones de suma en subtotales y su impresión
Estos subtotales deben ser colocados en cero cada vez que cambie la sucursal o el
banco.
Acumsuc =
Acumsuc + saldo Leo archivo Imprimir
saldo
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
19
La primera lectura del archivo será hecha afuera de los ciclos y la segunda lectura en el
nivel mas bajo de corte .
El corte de control lleva el mismo orden que el archivo , debiéndose repetir en el corte
inferior la condición de corte superior .
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
20
Apareo de archivos
Apareo de archivos secuenciales
El apareo de archivos secuenciales lo realizaremos con dos archivos.
Estos archivos para poder aparearse deben estar ordenados por los mismos campos .
Supongamos que tenemos un archivo maestro y uno de novedades con registros
repetidos ordenados ambos archivos por código de articulo
Cuando leemos secuencialmente los registros de cada archivo y los comparamos entre si
veremos que se pueden dar tres posibilidades
Que sean iguales los códigos de artículos
Que el código de artículo del archivo maestro sea mayor al del de novedades
Que el código de artículo del archivo maestro sea menor al del de novedades
El corte de control del proceso será hasta que ambos o alguno de los archivos finalice
(eof) .
NOTA: LOS MÓDULOS IGUAL , MAYOR Y MENOR SE ENCUENTRAN GRAFICADOS MÁS
ABAJO
programa
inicio Proceso fin
Leo mae Leo nov Si Artmae =
artnov
Si Artmae >
artnov
Si Artmae <
artnov Cerrar archivos
igual mayor menor
Hasta eofmae
y/o eofnov
si si si
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
21
En seudo código seria:
Comienzo
Hacer inicio
Hacer proceso hasta eofmae y/o eofnov
Hacer fin
Fin
Inicio
Leo mae
Leo nov
Fin inicio
Proceso
Si artmae = artnov hacer igual
Si artmae > artnov hacer mayor
Si artmae < artnov hacer menor
Fin proceso
Fin
Cerrar archivos
Fin fin
Opción igual
Se realizarán todas las operaciones que me solicita el programa por la igualdad y como
me dicen que novedades viene con repetidos lo que más me conviene hacer es un corte
de control.
En este corte de control no necesitaré guardar en un aux el valor del artículo sino que
usaré como tal al artmae
Si Artmae = artnov
Proceso igualdad
Proceso 1 Proceso 2 Leo nov
Artnov <>
artmae
si
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
22
Opción mayor
En este caso significa que existe un artículo nuevo , que no existe en el mae , por lo
tanto habrá que ver si es un error o una alta al archivo mae
Luego de realizar el proceso que corresponda deberé leer otro registro del archivo nov
Opción menor
En este caso significa que el artículo del mae o no tuvo novedad o que el registro leido
de nov indica que ya terminaron las modificaciones hacia el del mae y debemos buscar
dentro de mae el articulo nuevo para esta novedad .
Si miramos con atención los procedimientos descriptos veremos que el archivo a leer
por cada situacion es siempre aquel que quedó como menor en la condición a excepción
del igual que es normalmente el de novedades .
Si Artmae > artnov
Proceso 1 Leer nov
Si Artmae < artnov
Proceso 1 Leo mae
si
si
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
23
Apareo de un archivo secuencial y un indexado
Para acceder a un archivo indexado debemos conocer el valor de su clave , el cuál lo
obtendremos en este caso del archivo secuencial.
Recordemos que la clave del indexado debe ser única
Dado un archivo secuencial con los siguientes campos
Dado un archivo indexado con los siguientes campos con clave artículo
Para actualizar al archivo indexado haremos lo siguiente
El IK funciona como un IF de una estructura condicional
Cod-art cantidad Tipo de movimiento
articulo stock
Leer movi Proceso 1 Final
Articulo = cod-art Leo maestro Si Tipo de movimiento
= compra
Stock +
cantidad
Stock -
cantidad
IK si no
eof
accion
Leo
movi
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
24
En seudo código seria:
Comienzo
Leer movi
Proceso 1 hasta eof movi
Final
Fin
Proceso 1:
Articulo = cod-art
Leo maestro si clave es IK hacer accion
Si tipo de movimiento = compra entonces
Stock = stock + cantidad
De lo contrario
Stock = stock - cantidad
Fin si
Leer movi
Fin proceso 1
Nota = IK significa invalid key , clave invalida , o sea si no encuentra la clave en el
archivo indexado no se produce el apareo y da error y se ejecutara el proceso acción que
se defina.
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
25
Pantallas
Las pantallas son los medios más comunes para la interacción entre el usuario y el
computador.
Será de suma importancia el orden y secuencia con que se diagraman estas pantallas
para hacer más simple y rápida la tarea de los usuarios.
Básicamente se tratan de procesos repetitivos hasta una condición dada , que me hace
realizar un determinado proceso o mostrar otra pantalla.
Dibujaremos a traves de grafos la relación entre pantallas y luego ese grafo lo
representaremos en Jackson , dejando como siempre librado al ejercicio del momento
los procesos a realizar en cada caso , sólo indicaremos la secuencia de pantallas.
En este caso anterior las pantallas son secuenciales y no existe iteración o divergencia
en el regreso a la pantalla 1
1
2 3
4
proceso Hasta opción
= esc inicio
Mostrar aceptar
pant 1
Mostrar aceptar
pant 2
Proceso 1
Mostrar aceptar
pant 3
Proceso 2
Mostrar aceptar
pant 4
Hasta opcion
= esc
Hasta opcion
= esc
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
26
Veamos este otro caso
En este csso vemos que de regreso de la pantalla 4 puede elegir entre la 3 ó la 1
introduciendose entonces en el diagrama una instrución condicional.
En ambos casos siempre como opción de salida es el valor “esc” , pueden haber casos
que existan más de un valor posible de salida de un proceso , lo que provocará en el
nivel que corresponda una nueva instrucción condicional .
Los procesos que se ejecutarán en cada nivel pueden estar antes o despues del mostrar /
aceptar pantalla , eso dependerá exclusivamente del caso que estemos tratando.
1 2
3 4
inicio proceso
M/A pant 1 M/A pant 2 Proceso 1
Hasta opcion
= esc
M/A pant 2 Proceso 2
M/A pant 3 Proceso 3
M/A pant 4 Opcion = 3
M/A pant 3
Hasta opcion
= esc
Hasta opcion
= esc
Hasta opcion =
esc
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
27
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
28
CORTE DE CONTROL EN ARCHIVOS SECUENCIALES
1) Una universidad tiene el registro de sus alumnos al iniciarse el año lectivo , en un
archivo secuencial ordenado con el siguiente formato
Código de universidad
Código de facultad
Código de carrera
Legajo del alumno
Código de materias en la que se anoto
Esta ordenado en el orden que están los campos , universidad , facultad , carrera , legajo
Pueden venir varios registros para un mismo alumno
Se desea saber
1. Cuantos alumnos hay por carrera
2. Cuantos alumnos hay por facultad
3. Cuantos alumnos hay por universidad
2)Si al ejercicio anterior se le agregan los siguientes archivos secuenciales
Universidad ( son 12 )
Código de universidad
Descripción
Facultad (son 40 )
Código de facultad
Descripción
Carrera ( son 100 )
Código de carrera
Descripción
Realizar el mismo listado pero especificando el nombre a quien pertenece los totales
Universidad UAI
Sistemas 600
Medicina 800
Comercialización 100
Centro 1500
Idem con el resto de los datos
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
29
Total alumnos UAI 6000
3)Hacer el mismo ejercicio anterior pero considerar que el código de universidad y el de carrera
es alfanumérico
4)Una empresa tiene 10 cuentas corrientes bancarias sobre las que libra y deposita cheques
El archivo es secuencial y tiene el siguiente formato
Numero de cuenta ( del 1 al 10 )
Banco
Saldo actual
Posee a su vez un archivo donde tiene los movimientos previstos a futuro , o sea que cheques
libro , que cheques sabe que va a depositar y que efectivo recibirá
Los datos que tiene este archivo son
Fecha
Tipo de operación
Numero de cuenta
Importe
Esta ordenado por fecha y tipo de operación ( cheques emitidos , cheques recibidos , efectivo )
El campo numero de cuenta solo trae dato si es un cheque emitido por la empresa
Se desea saber
Cual Sera el saldo de las cuentas corrientes luego de realizadas todas las operaciones
Donde se depositara cada cheque y efectivo
Realizar una primera versión usando matriz y una segunda versión solo usando vectores , donde
esta la diferencia ?
5) dados los siguientes archivos
archivo operaciones secuencial ordenado por banco –sucursal –cuenta
banco
sucursal
cuenta
tipo de operación
monto
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
30
si consideramos el saldo inicial en 0 , calcular :
1. monto por cuenta
2. monto por sucursal
3. monto por banco
6) dados los siguientes archivos
archivo inscripción ordenado por universidad-facultad-carrera
universidad
facultad
carrera
legajo
se desea saber
1. cantidad de alumnos inscriptos por universidad
2. cantidad de alumnos inscriptos por facultad
3. cantidad de alumnos inscriptos por carrera
4. que facultad tiene mas inscriptos
5. cual universidad tiene mas facultades
7)dados los siguientes archivos
archivo pedido ordenado por pedido-cliente
pedido N(5)
cliente A(5)
articulo N(7)
cantidad N(4)
archivo cliente existen 40 registros
cliente A(5)
dirección A(30)
situación IVA N(1) 1= insc , 2= exento , 3= consumidor final
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
31
archivo artículos existen 1000 registros
articulo N(7)
precio N(4) sin IVA
costo N(4) sin IVA
se desea
1. realizar las correspondientes facturas
2. calcular y agregar el IVA según corresponda
3. indicar total de IVA venta recaudado
4. cuanto se pagara a la DGI en concepto de excedente IVA = IVA venta – IVA
compra
8) realizar el mismo ejercicio anterior pero teniendo en cuenta que el precio de compra
y venta de los artículos ya tienen el IVA incorporado
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
32
APAREO DE ARCHIVOS SECUENCIALES
1)dados los siguientes archivos
stock ordenado por articulo
código de articulo N(3)
descripción A(20)
punto de pedido N(4)
stock N(4)
movimientos ordenado por articulo
código de articulo N(3)
tipo de movimiento N(1) 1=compra 2 =vende
cantidad N(4)
se desea saber:
actualizar el archivo stock
listado de los artículos cuyo stock sea menor al punto de pedido
2) dados los siguientes archivos
archivo empleados ordenado por legajo
legajo N(6)
nombre y apellido A(20)
dirección A(30)
categoría A(2)
archivo familia ordenado por legajo
legajo N(6)
cantidad hijos en primaria N(2)
cantidad hijos en secundaria N(2)
cantidad hijos en terciaria N(2)
archivo categorías
categoría A(2)
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
33
nombre A(25)
monto N(4)
se desea saber
1. liquidación de sueldo de cada empleado si se le abona un 5% por cada hijo en
primaria , 8% por cada hijo en secundario y un 10% por cada hijo en terciaria
2. monto total a pagar por cada categoría
3. si se le descuenta un 15% de su sueldo básico para cargas sociales, cuanto se
recauda en total
3) dados los siguientes archivos secuenciales
archivo proveedores existen 20
código de proveedor N(3)
denominación A(20)
archivo edificios ordenado por código de edificio
código de edificio N(2)
dirección A(25)
administrador A(4)
cantidad de departamentos N(3)
archivos gastos ordenado por código de edificio
código de edificio N(2)
proveedor N(3)
monto N(5)
archivo de administradores existen 10
código administrador A(4)
nombre N(30)
comisión de honorarios N(2)
se desea saber
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
34
1. total a pagar a cada proveedor
2. total a recaudar por cada proveedor
3. valor de las expensas a pagar por cada departamento si Serra igual al total gastado
por el edificio dividido la cantidad de departamentos que posee
4. que administrador y con que proveedor se origino el mayor gasto total
5. que proveedores no trabajaron este mes
6. total a cobrar por cada administrador en concepto de honorarios
4) dados los siguientes archivos
archivo materias existen 40
código de materia A(2)
denominación A(25)
archivo alumno ordenado por legajo
legajo N(6)
nombre N(30)
carrera N(3)
archivo notas ordenado por legajo
legajo N(6)
código de materia A(2)
nota N(2)
archivo carreras existen 10
código de carrera N(3)
nombre N(35)
se desea saber
1. listado de exámenes rendidos por cada alumno y su nota promedio
2. cantidad de exámenes aplazados por cada alumno
3. nota promedio por materia
4. alumno de mejor nota promedio en los exámenes dados
5)dados los siguientes archivos
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
35
nombre cliente nombre pedidos
orden por pedido orden por pedido
cant reg no se sabe cant reg no se sabe
campo tipo campo tipo
pedido n(5) pedido n(5)
cliente n(8) destino n(2)
tipo a(3) clase n(1)
cant tkt n(3)
nombre cliente nombre clasificación
orden ninguno orden ninguno
cant reg 80 cant reg 4
campo tipo campo tipo
cliente n(8) tipo a(3)
nombre a(20) descuento n(2)
nombre cliente
orden ninguno
cant reg 200
campo tipo
destino n(2)
clase n(2)
precio n(3)
lug libres n(3)
se pide:
1. por pedido ok
nombre del cliente
destino solicitado
cantidad de boletos
monto de la operación
descuento
a cobrar
2. listado de pedidos no sastifechos por falta de lugar
3. cliente que mas gasto en total
2) dados los siguientes archivos
6) dados los siguientes archivos
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
36
archivo socios ordenado por socio
código de socio N(5)
apellido y nombre N(30)
categoría A(3)
archivo pedidos ordenado por socio con repetidos
código de socio N(5)
código de libro N(2)
cantidad N(2)
archivo libros existen 100
código de libro N(2)
nombre A(30)
costo N(3)
precio N(3)
stock N(3)
archivo categoría existen 5
código de categoría A(3)
descuento porcentual N(3)
se desea saber lo siguiente
1. para cada socio ,
nombre del socio libros solicitados cantidad monto descuento total a cobrar
1. libro mas vendido
2. libro mas rentable en promedio
3. ganancia obtenida por las ventas
4. para cada libro
cantidad solicitada en total
cantidad sastifecha
cantidad que se adeuda
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
37
APAREO DE ARCHIVOS INDEXADOS
1) dados los siguientes archivos
archivo materias indexado por código de materia
código de materia A(2)
denominación A(25)
archivo alumno indexado por legajo
legajo N(6)
nombre N(30)
carrera N(3)
archivo notas ordenado por legajo
legajo N(6)
código de materia A(2)
nota N(2)
archivo carreras indexada por carrera
código de carrera N(3)
nombre N(35)
se desea saber
5. listado de exámenes rendidos por cada alumno y su nota promedio
6. cantidad de exámenes aplazados por cada alumno
7. nota promedio por materia
8. alumno de mejor nota promedio en los exámenes dados
2) dados los siguientes archivos
archivo socios indexado por socio
código de socio N(5)
apellido y nombre N(30)
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
38
categoría A(3)
archivo pedidos ordenado por socio con repetidos
código de socio N(5)
código de libro N(2)
cantidad N(2)
archivo libros indexado por código de libro
código de libro N(2)
nombre A(30)
costo N(3)
precio N(3)
stock N(3)
archivo categoría existen 5
código de categoría A(3)
descuento porcentual N(3)
se desea saber lo siguiente
para cada socio ,
nombre del socio libros solicitados cantidad monto descuento total a cobrar
1. libro mas vendido
2. libro mas rentable en promedio
3. ganancia obtenida por las ventas
4. para cada libro
cantidad solicitada en total
cantidad sastifecha
cantidad que se adeuda
3) dados los siguientes archivos
archivo proveedores indexado por código de proveedor
código de proveedor N(3)
denominación A(20)
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
39
archivo edificios indexado por código de edificio
código de edificio N(2)
dirección A(25)
administrador A(4)
cantidad de departamentos N(3)
archivos gastos ordenado por código de edificio
código de edificio N(2)
proveedor N(3)
monto N(5)
archivo de administradores indexado por código de administrador
código administrador A(4)
nombre N(30)
comisión de honorarios N(2)
se desea saber
1. total a pagar a cada proveedor
2. total a recaudar por cada proveedor
3. valor de las expensas a pagar por cada departamento si Serra igual al total gastado
por el edificio dividido la cantidad de departamentos que posee
4. que administrador y con que proveedor se origino el mayor gasto total
5. que proveedores no trabajaron este mes
6. total a cobrar por cada administrador en concepto de honorarios
4) dados los siguientes archivos
archivo partidos
equipo N(3)
contrario N(3)
fecha N(1)
situación N(1) 1 = local ; 2 = visitante
referee N(4)
archivo equipos indexado por equipos
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
40
equipo N(3)
nombre A(30)
archivo referee indexado por referee
referee N(4)
nombre A(30)
archivo goles indexado por fecha-equipo-tiempo
fecha N(1)
equipo N(3)
tiempo N(2)
código jugador N(2)
archivo jugador indexado por código jugador
código jugador N(2)
nombre A(30)
nro camiseta N(2)
se desea saber
1.
equipo : nombre:
situación local visitante en general
partidos jugados
partidos ganados
partidos empatados
partidos perdidos
puntaje
1. tiempo mayor de valla invicta por equipo
2. referee con que se perdió mas partidos cada equipo
5) dados los siguientes archivos
archivo gastos indexado por edificio proveedor
edificio N(3)
proveedor N(3)
monto N(4)
archivo proveedor indexado por proveedor
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
41
proveedor N(3)
nombre A(40)
archivo edificio indexado por edificio-unidad
edificio N(3)
unidad N(3)
nombre propietario A(30)
porcentual A(2)
archivo expensas pagadas durante el año indexado por edificio-unidad - mes
edificio N(3)
unidad N(3)
mes N(2)
pago realizado N(4)
archivo expensas liquidadas durante el año indexado por edificio-unidad-mes
edificio N(3)
unidad N(3)
mes N(2)
expensa N(4)
se desea liquidar las nuevas expensas de este mes
edificio:
unidad expensas del mes deuda total a pagar
2. monto adeudado a cada proveedor
6) dados los siguientes archivos
archivo socios indexado por socio
socio N(3)
nombre A(30)
archivo círculos-cuotas indexado por circulo – numero de cuota
PROGRAMACION Aproximación a Diagramas tipo JACKSON
Autor: Ing. Brizuela Rafael
42
circulo N(3)
numero de cuota N(3)
valor de la cuota N(3)
fecha vencimiento N(8)
archivo circulo indexado por circulo
circulo N(3)
nombre A(20)
cantidad de cuotas N(3)
archivo cuotas pagadas indexado por socio-circulo-numero de cuota
socio N(3)
circulo N(3)
numero de cuenta N(3)
fecha de pago N(8)
se desea saber
1.
socio nombre
circulo cantidad de cuotas pagadas monto pagado monto adeuda
2.
socio nombre
circulo cantidad de cuotas del circulo cantidad de cuotas pagadas fuera de termino