Diagrama Cion Tipo Jackson
Diagrama Cion Tipo Jackson
Diagrama Cion Tipo Jackson
Introducción
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.
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
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.
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.
DIAGRAMACION JACKSON
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 .
programa
En todos los casos dentro del rectángulo se escribe la instrucción , el procedimiento que
se llama , etc.
Sueldo = ch * vh Si a= b
Tipos de Estructuras
Estructuras secuenciales
Estructuras condicionales
Estructuras iterativas o de repetición
Secuenciales
Leer datos
Sdo = ch * vh
Imprimir sdo
Condicionales
no
Si a=b
si
Si a = b
no
si
Si a = b entonces
C=a+b
Sdo = sdo + c
De lo contrario
C=a*b
Sdo = sdo * c
Fin si
Iterativas
Proceso vector I = 1 a 10
Para I = 1 a 10
Leer dato
V ( I ) = dato
Próximo
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.
12 45 56 78 15 23 56 15 1000 41
1 2 3 4 5 6 7 8 9 10
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.
Como vemos en este ejemplo se utilizó como subíndice de carga un dato del archivo
que era numérico , entero y conocido
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 ello podemos utilizar un dato que nos suministran o un ciclo exacto hasta encontrar
el valor deseado o una constante .
Si Vpat ( I ) = patente
si
K=I
Matrices
Las matrices son arrays de dos o más dimensiones según soporte el lenguaje a utilizar.
Para nuestro estudio utilizaremos matrices bidimensionales
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
Archivo depósito
codDep alfanumérico
Nombre alfanumérico
Archivo artículo
Codart alfanumérico
Descripción alfanumérico
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
Dentro de inicio
inicio
Para K = 1 a
Pro 1 Para I= 1 a 10 Pro 2 1000 Leo stock
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 :
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
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
Los tipos de datos y su tamaño se verán restringidas por el lenguaje que se utilice
Secuenciales
Indexados
Secuenciales
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.
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.
Corte de control
Esta operación nos permitirá obtener subtotales de registros con valores repetidos en
algunos de sus campos.
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
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
Estos subtotales deben ser colocados en cero cada vez que cambie la sucursal o el
banco.
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 .
Apareo de archivos
El corte de control del proceso será hasta que ambos o alguno de los archivos finalice
(eof) .
programa
si si si
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
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
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
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 .
Dado un archivo indexado con los siguientes campos con clave artículo
articulo stock
IK si no
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
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.
1 4
2 3
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
1 2
4
3
Hasta opcion
inicio proceso = esc
M/A pant 3
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
Universidad ( son 12 )
Código de universidad
Descripción
Facultad (son 40 )
Código de facultad
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
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
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 ?
banco
sucursal
cuenta
tipo de operación
monto
universidad
facultad
carrera
legajo
se desea saber
pedido N(5)
cliente A(5)
articulo N(7)
cantidad N(4)
cliente A(5)
dirección A(30)
situación IVA N(1) 1= insc , 2= exento , 3= consumidor final
articulo N(7)
precio N(4) sin IVA
costo N(4) sin IVA
se desea
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
se desea saber:
legajo N(6)
nombre y apellido A(20)
dirección A(30)
categoría A(2)
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)
nombre A(25)
monto N(4)
se desea saber
legajo N(6)
nombre N(30)
carrera N(3)
legajo N(6)
código de materia A(2)
nota N(2)
se desea saber
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 socio libros solicitados cantidad monto descuento total a cobrar
legajo N(6)
nombre N(30)
carrera N(3)
legajo N(6)
código de materia A(2)
nota N(2)
se desea saber
categoría A(3)
nombre del socio libros solicitados cantidad monto descuento total a cobrar
archivo partidos
equipo N(3)
contrario N(3)
fecha N(1)
situación N(1) 1 = local ; 2 = visitante
referee N(4)
equipo N(3)
nombre A(30)
referee N(4)
nombre A(30)
fecha N(1)
equipo N(3)
tiempo N(2)
código jugador N(2)
se desea saber
1.
equipo : nombre:
puntaje
edificio N(3)
proveedor N(3)
monto N(4)
proveedor N(3)
nombre A(40)
edificio N(3)
unidad N(3)
nombre propietario A(30)
porcentual A(2)
edificio N(3)
unidad N(3)
mes N(2)
pago realizado N(4)
edificio N(3)
unidad N(3)
mes N(2)
expensa N(4)
edificio:
socio N(3)
nombre A(30)
circulo N(3)
numero de cuota N(3)
valor de la cuota N(3)
fecha vencimiento N(8)
circulo N(3)
nombre A(20)
cantidad de cuotas N(3)
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