You are on page 1of 42

PROGRAMACION Aproximación a Diagramas tipo JACKSON 1

PROGRAMACION APLICANDO DIAGRAMAS


TIPO JACKSON

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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í.

programa

inicio proceso fin

En todos los casos dentro del rectángulo se escribe la instrucción , el procedimiento que
se llama , etc.

Proceso 1 Imprimir listado sueldo

Sueldo = ch * vh Si a= b

Tipos de Estructuras

Dentro de la programación estructurada reconocemos tres estructuras básicas

 Estructuras secuenciales
 Estructuras condicionales
 Estructuras iterativas o de repetición

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 5

Forma de dibujar las distintas operaciones

Secuenciales

Leer datos Sdo = ch * vh Imprimir sdo

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

no
Si a=b

si

C=a+b Sdo = sdo - c

En seudo código seria :


Si a = b entonces
C= a+b
Sdo = sdo – c
Fin si

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 6

2. condicionales con salida por el verdadero y por el falso de la condición especificada

Si a = b
no
si

C=a+b Sdo = sdo + c C=a*b Sdo = sdo * c

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

Proceso vector I = 1 a 10

Leer dato V( I ) = dato

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 7

En seudo código seria :

Para I = 1 a 10
Leer dato
V ( I ) = dato
Próximo

ciclos repetitivos inexactos

Leer cta , sueldo Proceso vector Hasta fin de


archivo

V(cta) = sueldo Leer cta , sueldo

En seudo código seria :

Leer cta, sueldo


Hacer hasta fin de archivo
V ( cta ) = sueldo
Leer cta,, saldo
Repetir

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 9

se desea cargar un vector con dicha información.

Leo archivo Pro 1 Hasta eof archivo

Vec (mes) = Vec (mes) Leo archivo


+ lluvia-caida

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

Proceso 1 Para i = 1 a 100

Leo archivo Vpat ( I ) = patente Vprop ( I ) = propietario Vmta ( I ) = multa

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 .

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 10

Var = Vec ( mesaux) Var = Vec ( 4 )

Ingreso patente Pro 2 Para I = 1 a 100 Var = vprop ( K )

Si Vpat ( I ) = patente

si

K=I

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

programa

inicio Proceso fin

Dentro de inicio

inicio

Para K = 1 a
Pro 1 Para I= 1 a 10 Pro 2 1000 Leo stock

Leo Vdep ( I ) = coddep Leo artículos Vart ( K ) = codart


deposito Vnom ( I ) = nombre Vdes ( K ) = descripción

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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 :

proceso Hasta eof stock

Para I = 1 a
Pro 3 Para I = 1 a 10 Pro 4 1000 Ma ( K ,M ) = stock Leo stock

Si vdep ( I ) = Si dart ( I ) =
deposito articulo

si si

Archivos
K=I M=I

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 15

Tomaremos como notación la siguiente


S/R sin repetidos
C/R con repetidos
ordenación

c Nrocta razonsocial fecha comentarios

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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 16

patente nroinfraccion tipoinfraccion monto

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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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 .

banco sucursal cuenta saldo

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

Leo archivo Proceso 1 eof finalizar

Aux = bco Proceso 2 Eof o Imprimir


Acumbco = 0 bco <> aux acumbco

Aux1 = suc Proceso 3 Eof o bco <> aux o


Acumsuc = 0 Suc <> aux1 Acumbco = Imprimir
Acumbco + acumsuc
acumsuc

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 18

Acumsuc = Imprimir Leo archivo


Acumsuc + saldo saldo

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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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 .

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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) .

programa

inicio Proceso Hasta eofmae fin


y/o eofnov

Leo nov Si Artmae = Si Artmae > Si Artmae < Cerrar archivos


Leo mae
artnov artnov artnov

si si si

igual mayor menor

NOTA: LOS MÓDULOS IGUAL , MAYOR Y MENOR SE ENCUENTRAN GRAFICADOS MÁS


ABAJO

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

si

Artnov <>
Proceso igualdad artmae

Proceso 1 Proceso 2 Leo nov

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Si Artmae > artnov

si

Proceso 1 Leer 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 Artmae < artnov

si

Proceso 1 Leo mae

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 .

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Cod-art cantidad Tipo de movimiento

Dado un archivo indexado con los siguientes campos con clave artículo

articulo stock

Para actualizar al archivo indexado haremos lo siguiente

Leer movi Proceso 1 eof Final

Articulo = cod-art Leo maestro Si Tipo de movimiento Leo


= compra movi

IK si no

accion Stock + Stock -


cantidad cantidad

El IK funciona como un IF de una estructura condicional

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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.

1 4

2 3

inicio proceso Hasta opción


= esc

Mostrar aceptar Mostrar aceptar Proceso 1 Hasta opcion


pant 1 pant 2 = esc

Mostrar aceptar Proceso 2 Hasta opcion


pant 3 = esc

Mostrar aceptar
pant 4

En este caso anterior las pantallas son secuenciales y no existe iteración o divergencia
en el regreso a la pantalla 1

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 26

Veamos este otro caso

1 2

4
3

Hasta opcion
inicio proceso = esc

M/A pant 1 M/A pant 2 Proceso 1 Hasta opcion


= esc

M/A pant 2 Proceso 2 Hasta opcion


= esc

M/A pant 3 Proceso 3 Hasta opcion =


esc

M/A pant 4 Opcion = 3

M/A pant 3

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.

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 27

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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)

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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)

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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)

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael


PROGRAMACION Aproximación a Diagramas tipo JACKSON 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

Autor: Ing. Brizuela Rafael