Sei sulla pagina 1di 16

ISFD DR JUAN PUJOL CORRIENTES Pg 1/16

PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013


Prof. MACIEL CASTILLOS RODOLFO

TEORA DE LA PRCTICA N 1
TEMA: DIAGRAMAS DE FLUJO
Contenidos: Elementos bsicos de un diagrama de flujo Reglas para la generacin de DdF - Variables y
Constantes - Contadores Acumuladores Deteccin de Mayor y Menor - Seleccin Mltiple (Case)
Iteraciones - Arreglos: Vectores y Matrices.
DIAGRAMAS DE FLUJO: Elementos Bsicos
Un diagrama de flujo es un tipo de notacin grfica algortmica.
Un diagrama de flujo es una herramienta grfica de descripcin de algoritmos que se caracteriza por utilizar un
conjunto de smbolos grficos y expresar de forma clara los flujos de control u orden lgico en el que se
realizan las acciones de un algoritmo.
Smbolos ms comunes Definicin / Usos



Usado para dar indicar INICIO y FIN


Indica el flujo lgico al ejecutarse el algoritmo




Ingreso de datos: a) desde teclado
b) acceso secuencial de archivo c) acceso directo de archivo





Utilizado para preguntar y definir el curso del programa. Se puede
preguntar sobre el contenido de una variable a travs de relacionales (=, >,
<, >=, <=, <>), lgicos ( OR, AND, NOT) y de archivos (EOF)




Cuadro donde se especifican los procesos que debe realizar el algoritmo.
Generalmente involucra contadores, acumuladores, operaciones con
cadena, transferencias y operaciones matemticas entre otras.




Utilizado para mostrar los datos que van a la impresora. A efectos prcticos
se lo puede utilizar de forma genrica para indicar salida por pantalla o
impresora.




Conectores dentro y fuera de pgina. Evitan la generacin de excesivos
flujos que dificultan la lectura del DdF.






Utilizado para representar un bucle o iteracin. Var: es el nombre de la
variable, I: indica el valor de inicio, F: indica el valor final.

Si no se coloca el incremento, se asume que lo hace de a uno en uno.


Indica un proceso de subrutina.
inicio
CONDICIN
var
I F
ISFD DR JUAN PUJOL CORRIENTES Pg 2/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

Las combinaciones sucesivas y lgicas de estos diagramas generan diferentes estructuras las cuales pueden
ser:
Estructuras de control: las estructuras secuenciales, selectivas y repetitivas se denominan estructuras de
control porque son las que controlan el modo o flujo de ejecucin del algoritmo. Su importancia es tal, que
una vez que se entienda su estructura y funcionamiento, puede decirse que en esencia es todo lo que hay que
saber respecto al control y flujo de los algoritmos. Otro aspecto importante consiste en saber en dnde
utilizarlas, pero esto es muy dependiente del problema a resolver. Aqu podemos encontrar:
Estructura secuencial






Estructuras de Seleccin












(a) Seleccin Simple - (b) Seleccin Doble - (c) Seleccin Mltiple

CONDICIN
Sentencia(s)
SI
NO
CONDICIN
Sentencia-1 Sentencia-2
INDICADOR
Sentencia(s)-1 Sentencia(s)-2 Sentencia(s)-(n-1) Sentencia(s)-(n)
Valor-1 Valor-2 Valor- (n-1) Else
Sentencia-1
Sentencia-2
Sentencia-n
ISFD DR JUAN PUJOL CORRIENTES Pg 3/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

Estructuras de repeticin







a) hacer mientras (while) y b) repetir hasta (do-while).
Lo que caracteriza a la estructura de repeticin hacer mientras, es que los enunciados del cuerpo del ciclo se
realizan cuando la condicin es verdadera, adems de que se pregunta por la condicin al principio, de donde
se deduce que las sentencias se podrn ejecutar de 0 a N veces. En la estructura de repeticin repetir hasta,
las sentencias del interior del ciclo se ejecutan una vez y continan repitindose hasta que la condicin sea
falsa. La verificacin de la condicin se realiza al final del ciclo, por lo que se deduce que las sentencias se
ejecutarn al menos una vez y hasta un mximo de N.

REGLAS BSICAS
1. Todos los smbolos han de estar conectados
2. A un smbolo de proceso pueden llegarle varias lneas
3. De un smbolo de proceso slo puede salir una lnea.
4. A un smbolo de decisin pueden llegarle varias lneas, pero slo saldrn dos.
5. A un smbolo de inicio nunca le llegan lneas.
6. De un smbolo de fin no parte ninguna lnea.
7. Los diagramas de flujo se desarrollan de arriba hacia abajo y de izquierda a derecha.





Sentencia(s)
Verdadero
Falso
CONDICIN
Sentencia(s)
Verdadero
Falso
CONDICIN
ISFD DR JUAN PUJOL CORRIENTES Pg 4/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

VARIABLES Y CONSTANTES
Todos los datos ingresados y procesados en la computadora deben ser contenidos temporariamente en la
memoria hasta que finalice la ejecucin del programa y/o sean almacenados de forma permanente en
archivos.
Los datos son guardados en posiciones de memoria y depende de cmo el programador los defina, el
contenido de esas posiciones podr ser VARIABLE CONSTANTE.
Una VARIABLE es una posicin de memoria a la cual se le asigna un valor inicial para reservar dicho espacio
(zona de inicializacin, seteo o cereo) que cambia su contenido por cada evento de programa (ingreso de
datos nuevos u operaciones internas).
P.e.
A = 0 (valor inicial)
A = A + 1 (a su valor original le suma la constante 1, es el caso de los contadores)
A = A + EDAD (a su valor original le suma el contenido de otra variable de entrada EDAD es el caso de los
acumuladores)
Una CONSTANTE es un valor esttico asignado por el programador y que se mantiene inalterable durante toda
la ejecucin del programa (salvo excepciones), puede ser definida en el rea de inicializacin directamente
usada en las operaciones.
VALOR_DOLAR = 4.56 (para este caso particular hablamos de una constante cuyo valor flucta diariamente,
por lo tanto cada vez que se ejecute el programa se tomarn las previsiones para solicitar la
cotizacin del da, ste valor puede ser modificado por el operador cada vez que inicia el programa o se
contempla en la programacin la posibilidad de modificarlo). Ms adelante se lo puede usar de la siguiente
manera:
PRECIO_FINAL = COSTO_DOLAR * VALOR_DOLAR (guardamos en la variable PRECIO_FINAL el producto de la
variable COSTO_DOLAR por VALOR_DOLAR que es nuestra constante contenida en una variable)
A= A + 1 (tomando el caso anterior, el 1 es una constante que slo puede ser modificada por el
programador, es la forma ms comn de utilizar una constante).

TIPOS DE VARIABLES:
Depende del contenido podemos tener:
NUMRICAS: slo guardan nmeros reales con los cuales se pueden aplicar las operaciones matemticas ms
frecuentes. Dentro de stas se pueden definir otras ms especficas, como INTEGER que aceptan slo nmeros
enteros (es el caso de la EDAD) u otras llamadas de punto flotante que definen la cantidad de trminos y de
decimales esperados. Por ahora nos manejamos de la manera ms sencilla.

ISFD DR JUAN PUJOL CORRIENTES Pg 5/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

PROMEDIO= TOTAL_EDAD / CANTIDAD_PERSONAS
RAIZ = SQR (N) (obtiene la raz cuadrada de N)
ALFABTICAS: guardan slo texto, pueden guardar hasta 256 caracteres. El contenido a transferir tiene que
estar encerrado entre comillas, porque de lo contrario se interpretara una transferencia de contenidos entre
variables.
NOMBRE =MARCOS (Guarda Marcos en la variable NOMBRE_APELLIDO)
NOMBRE=MARCOS (transfiere el contenido de la Variable MARCOS a la variable NOMBRE)
ALFANUMRICAS: guardan una combinacin de textos y nmeros, pero aqu los nmeros son tratados como
texto, por lo tanto no se puede operar con ellos.
DIRECCION: Lamadrid 4560

IMPRESIN DE VARIABLES
Cuando se quiere informar el contenido de las variables en el rea de impresin se debe colocar de la siguiente
manera:
El nombre del ganador es: NOMBRE (siempre la leyenda va entre comillas)
CONVERSION DE VARIABLES
Algunas veces, variables numricas necesitan ser tratadas como alfanumricas y viceversa, para ello existen
funciones de conversin:
Pasar de numrica a alfanumrica (string o cadena) : NUEVA_EDAD = STRING (EDAD)
Para el sistema EDAD contiene 25 y NUEVA_EDAD contiene 25 (lo trata como si fueran letras)
Pasar de alfanumrica a numrica: EDAD = VALUE (NUEVA_EDAD)

Existen otros tipos de variables utilizadas como de FECHA (donde se define el formato (DD/MM/AAAA), HORA
(HH:MM:SS), MEMO (puede guardar gran extensin de caracteres), OBJECT (puede guardar cualquier tipo de
objetos complejos, se usa en Programacin Orientada a Objetos), BOOLEANAS (puede guardar slo dos
contenidos TRUE FALSE)



ISFD DR JUAN PUJOL CORRIENTES Pg 6/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

CONTADORES y ACUMULADORES
Tal cual lo definimos anteriormente, los contadores y acumuladores son variables numricas que modifican
continuamente su contenido a lo largo de la ejecucin del programa.
A los contadores siempre se le suman valores fijos o constantes , esto es:
CONTA = CONTA + 1 CONTA= CONTA + 2 .
A los acumuladores siempre se le suman otras variables, generalmente son algunas de las variables de entrada
de datos, esto es :
ACUMULA = ACUMULA + EDAD (se acumula en ACUMULA la EDAD que puede ser cualquier valor)
El clculo del promedio es un caso tpico de uso combinado de contadores y acumuladores Ejemplo:
Calcular el promedio de edades de una lista de alumnos ingresados por teclado e informar.

















INICIO
CONTA = 0 ACUMULA = 0
NOMBRE
EDAD
EDAD=0
CONTA = CONTA + 1
ACUMULA = ACUMULA + EDAD
PROM = ACUMULA/CONTA
EL PROMEDIO DE
EDADES ES: PROM
FIN
SE INICIALIZAN AMBOS
MODIFICAN SUS CONTENIDOS
CON CADA EVENTO DE ENTRADA
SE UTILIZAN SUS VALORES
GUARDADOS
SE UTILIZAN SUS VALORES
GUARDADOS
SI
INICIO
CONTA = 0 ACUMULA = 0
NOMBRE
EDAD
EDAD=0
CONTA = CONTA + 1
ACUMULA = ACUMULA + EDAD
PROM = ACUMULA/CONTA
EL PROMEDIO DE
EDADES ES: PROM
FIN
SE INICIALIZAN AMBOS
MODIFICAN SUS CONTENIDOS
CON CADA EVENTO DE ENTRADA
SE UTILIZAN SUS VALORES
GUARDADOS
SE UTILIZAN SUS VALORES
GUARDADOS
SIEMPRE SE PREGUNTA POR EL POSIBLE
CONTENIDO ILGICO DE UNA VARIABLE DE
ENTRADA PARA INDICAR FIN DE PROCESO
NO
ISFD DR JUAN PUJOL CORRIENTES Pg 7/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

DETECCIN DE MAYOR Y MENOR
En varias ocasiones se solicita informar los valores extremos de una lista de datos: el mayor y menor valor.
Para realizar estas acciones, debemos DETECTAR y ALMACENAR el mayor/menor valor y a quien corresponde
(si pide que se informe esto ltimo por supuesto). Siguiendo el ejemplo anterior, tenemos























INICIO
MY = -999 MN = 999
CONTA=0 ACUMULA= 0
NOMBRE
EDAD
EDAD = 0
EDAD > MY
EDAD < MN
PROCESO NORMAL
PROCESO POR FINAL
MN = EDAD
MN_NOMBRE= NOMBRE

MY = EDAD
MY_NOMBRE= NOMBRE

Impresin normal .
LA MAYOR EDAD ES: MY Y
CORRESPONDE A: MY_NOMBRE
LA MENOR EDAD ES: MN Y
CORRESPONDE A: MN_NOMBRE

FIN
Siempre se inicializa el mayor
con el menor valor posible y el
menor con el mayor valor
posible.
Las preguntas se colocan aqu porque se solicita la mayor
y menor edad de la lista de personas. Ahora si pidiera la
mayor/menor edad de los varones de la lista, tendra que:
1. Agregar una variable de entrada SEXO
2. Preguntar si SEXO = M,
2.1. en caso positivo hacer el procedimiento de MAYOR Y
MENOR;
2.2. en caso negativo seguir el PROCESO NORMAL.

SI
NO
SI
NO
SI
NO
ISFD DR JUAN PUJOL CORRIENTES Pg 8/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

SELECCIN MULTIPLE
Algunas veces los datos contenidos en determinadas variables de ENTRADA indican categoras u opciones que
de alguna manera provocan la bifurcacin en una parte del programa para hacer algo especfico y luego vuelve
a integrarse nuevamente para seguir un camino comn. El caso ms tpico son los mens en pantalla (tal cual
vemos por ejemplo en un cajero automtico), al finalizar el proceso particular nuevamente regresa a la
pantalla principal para solicitar otra entrada de opciones.
Es evidente que el camino del procesamiento est dado en base a preguntas tal cual las vimos anteriormente
(EDAD=0? EDAD> MY?). Por otro lado, el excesivo nmero de preguntas lentifica el procesamiento y ocupa
importantes espacios en memoria. Para evitar esto y SLO PARA EL CASO DE IGUALDAD, se utiliza la
herramienta de seleccin mltiple CASE y en el caso de tener que hacer 3 preguntas o ms.
Ejemplo: Detectar la cantidad de personas por pas considerando que:
1: Alemania 2: Argentina - 3: Bolivia 4: Brasil 5:Paraguay
Ejemplo SIN CASE
















INICIO
NOMBRE EDAD PAIS


EDAD=0
PAIS=1
PAIS=2
PAIS=3
PAIS=4
INICIALIZO TODOS LOS CONTADORES
CONTA_ALE= CONTA_ALE + 1
CONTA_PAR= CONTA_PAR + 1
CONTA_BRA= CONTA_BRA + 1
CONTA_BOL= CONTA_BOL + 1
CONTA_ARG= CONTA_ARG + 1
TOTALES
ALEMANIA: CONTA_ALE
ARGENTINA: CONTA_ARG
BOLIVIA: CONTA_BOL
BRASIL: CONTA_BRA
PARAGUAY: CONTA_PAR


SI
SI
SI
SI
SI
NO
NO
NO
NO
NO
FIN
ISFD DR JUAN PUJOL CORRIENTES Pg 9/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO

Ejemplo CON CASE














Otherwise: (en otro caso) esta parte del programa se ejecuta cuando PAIS no asume el valor 1,2, 3 4; por lo
tanto la lgica afirma que sera 5. Para que realmente funcione con seguridad es necesario crear una mscara
de entrada al ingresar los datos (1.5) ya que si pusieran un 6 un CERO,, se lo contara como Paraguay.

ARREGLOS
Los arreglos son posibilidades que brindan las variables de poder guardar temporalmente una gran cantidad
de datos de igual tipo utilizando un mismo nombre de variable. Para poder acceder a cada dato en particular,
se utiliza uno o dos punteros para recorrerlo (segn sea el caso).
Si los arreglos son unidimensionales se los llaman vectores, pero si tienen ms dimensiones (2, 3, 4, ,,,n) se los
llaman matrices de n dimensiones.
Por ejemplo: Vec(5) vector de 5 elementos Mat(3,5) matriz de 3x5 elementos, (3 filas, 5 columnas).
Para poder generarlo es necesario utilizar bucles, los datos pueden ser cargados directamente de teclado
ser ledos de archivos. Es importante saber cundo utilizarlos.
FIN
INICIO
NOMBRE EDAD PAIS


EDAD=0
CASE PAIS
CONTA_ALE= CONTA_ALE + 1
CONTA_ARG= CONTA_ARG + 1
CONTA_BOL= CONTA_BOL + 1
CONTA_BRA= CONTA_BRA + 1
CONTA_PAR= CONTA_PAR + 1
PAIS=1 PAIS=2 PAIS=3 PAIS=4 OTHERWISE
INICIALIZO TODOS LOS CONTADORES
TOTALES
ALEMANIA: CONTA_ALE
ARGENTINA: CONTA_ARG
BOLIVIA: CONTA_BOL
BRASIL: CONTA_BRA
PARAGUAY: CONTA_PAR


SI
NO
ISFD DR JUAN PUJOL CORRIENTES Pg 10/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
A
B
C
D
E
F
MODELO DE PARCIAL con uso de ARREGLOS (arrays), deteccin de Mayor y Menor, seleccin mltiple, contadores y acumuladores
Enunciado:
Un importador de productos recibe un cargamento #2309845HER# en el puerto de BA, los mismos son de diferentes pases y estn cotizados al valor de la
moneda de origen. En el proceso de gravacin de impuestos la AFIP agrupa todos los productos por importador sin interesar el origen. A los efectos de
organizar los pagos se requiere un algoritmo que permita calcular los impuestos a pagar por la importacin segn el rubro de los productos; al mismo
tiempo se requiere un detalle de todos los productos como as tambin calcular la cantidad de productos por rubro y el rubro que ms y que menos se
import, asimismo la cantidad de dinero gravado por importar de cada pas y el total del gravamen del embarque.
Datos:
Pases de importacin: (1) Alemania - (2) China (3) Estados Unidos - (4) Brasil
Rubros de exportacin: (AL) Alimentos Enlatados - (EL) Electrnicos (MA) Maquinarias Agrcolas - (AU) Autopartes
Porcentajes de gravado: Cotizacin de las monedas (cantidad de $ ARG para comprar una unidad)


Formato de Entrada de Datos







AL EL MA AU
1,8% 2,1% 1,5% 2,5%
Alemania - Euro China - Yuan EEUU - Dlar Brasil - Real
5,583 0,7149 4,557 2,25
CODIGO PRODUCTO
C
A
N
T

R
U
B
R
O

P
R
E
C
I
O

U
N
I
T
A
R
I
O

O
R
I
G
E
N

A275 SALMON AHUMADO 300 AL 1,20 2
4F15 COSECHADORAS 15 MA 10.000,00 3
98U6 PALMITOS 140 AL 0,25 4
486H ODOMETROS 45 AU 180,00 1
458Y BOMBA DE AGUA 23 AU 87,50 2
AK23 WII VIDEO GAME 08 EL 700,00 2
.. . .. . ..
LISTADO DE PRODUCTOS DE IMPORTADORA LOS ROBLES S.A. CORRIENTES
CODIGO PRODUCTO CANTIDAD RUBRO ORIGEN
A275 SALMN AHUMADO 300 ALIMENTOS ENLATADOS CHINA
4F15 COSECHADORAS 15 MAQUINARIAS AGRICOLAS ESTADOS UNIDOS
98U6 PALMITOS 140 ALIMENTOS ENLATADOS BRASIL
486H ODOMETROS 45 AUTOPARTES ALEMANIA
458Y BOMBA DE AGUA 23 AUTOPARTES CHINA
AK23 WII VIDEO GAME 08 ELECTRNICOS CHINA

CANTIDAD DE IMPORTADOS AL: 9999 | MA: 999 | AU:9999 | EL: 999
RUBRO CON MAYOR CANTIDAD DE UNIDADES: AL MENOR CANTIDAD UNIDADES: MA

TOTAL GRAVADO POR ALIMENTOS ENLATADOS: $9999.99 POR AUTOPARTES: $9999.99
POR MAQUINARIAS AGRCOLAS: $9999.99 POR ELECTRNICOS: $9999.99
TOTAL GRAVADO POR EMBARQUE #2309845HER# : $ 999999.99
TOTAL DE $$ GRAVADOS POR IMPORTAR DE:
ALEMANIA: $$$$$ | CHINA: $$$$$$ | EEUU: $$$$$ | BRASIL: $$$$






ISFD DR JUAN PUJOL CORRIENTES Pg 11/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
A
B
C
D
E
F
Pasos para resolver el ejercicio
1) Se debe mirar atentamente los DATOS de entrada y la SALIDA esperada de manera que con las entradas, previo procesamiento, se pueda obtener
los requerimientos de salida. Podemos observar que:

Es una lnea de ttulos por lo tanto deber imprimirse al iniciar el algoritmo
Son lneas de detalle considerar una impresin de datos dentro del PROCESO NORMAL del algoritmo, hay que tener cuidado porque tanto
en rubros como en pases sale el texto completo, mientras que en la entrada de datos slo se tienen cdigos.
Solicita cantidad de productos por rubro utilizar contadores en el PROCESO NORMAL en este caso se utiliza un acumulador.
Solicita detectar el rubro con mayor y menor cantidad de unidades importadas. El total por rubros lo obtendremos en el punto C y al finalizar
carga de todos los datos de entrada recin estaremos en condiciones de comparar quien ha sumado la mayor y menor cantidad; por lo tanto
el proceso de deteccin de mayor y menor lo haremos por PROCESO DE FIN DE ARCHIVO.

El total gravado por rubro habilitar acumuladores en el PROCESO NORMAL para luego informarlos al final. Cmo lo que acumulamos es
Dinero que se obtiene de aplicar frmulas, es importante conformar las mismas:
GRAVADO = (CANT * PRECIO_UNITARIO * PORC_GRAV) /100 nos arroja en la moneda de origen lo que se grava por ese producto
GRAV_PESOS = GRAVADO * COTIZACION convierte a pesos lo que graba ese producto proveniente de ese pas en cuestin


GRAV_PESOS = ((CANT * PRECIO_UNITARIO * PORC_GRAV) /100) * COTIZACIN

As por ejemplo, si tomamos nuestro primer registro de la tabla de datos de entrada tendramos:
GRAV_PESOS = ((300 * 1,20 * 1,80) /100) * 0,7149
Este GRAV_PESOS es lo que deberemos acumular para informar al final.
Ojo!!! Eso pasara para el primer registro pero nuestro programa deber estar preparado para todos los registros y todos los casos posibles, por lo tanto
cuando llevemos esta frmula a nuestro DdF sufrir algunas modificaciones.

El total gravado por embarque usar tambin acumuladores, lo lgico sera ponerlos en el PROCESO NORMAL, pero ese mismo dato lo
podremos obtener sumando los totales obtenidos por rubro ms arriba y lo haremos en el PROCESO DE FIN DE ARCHIVO, esto es:
TOTAL_GRAV_EMB = TOTAL_AL + TOTAL_EL + TOTAL_MA + TOTAL_AU
Seguramente esta frmula variar en el DdF, pero lo importante aqu es saber que va en el PROCESO DE FIN DE ARCHIVO.

El total gravado por pas se procede de la misma forma que en el total gravado por rubro


Porque en cada registro
viene ms de 1 artculo.
ISFD DR JUAN PUJOL CORRIENTES Pg 12/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
A
Por ltimo, nuestra propuesta de solucin estara dada por la creacin de 1 matriz y 5 vectores:

RUBROS

PAISES AL EL MA AU ACUM_PAIS COTIZAC






ACUM_RUBRO


PORC_GRAV





















5,583
0,7149
4,557
2,25
ALEMANIA
CHINA
ESTADOS UNIDOS
BRASIL

1,8% 2,1% 1,5% 2,5%
Cada posicin acumular
el total en dinero
Reservo en memoria los
espacios para los vectores y
las matrices
INICIO
COTIZAC (n) = 4 ACUM_RUBRO(n) = 4 PORC_GRAV (n) = 4
RUBRO_PAIS(mxn) = (4,4) MY = -9999 MN= 9999
PAISES(n) = 4 ACUM_PAIS(n)= 4

LISTADO DE PRODUCTOS DE IMPORTADORA LOS ROBLES S.A. CORRIENTES
CODIGO PRODUCTO CANTIDAD RUBRO ORIGEN

1
RUBRO_PAIS (PF,PC)=0
PC 1
1 4
PF 1
1 4
De esta manera se recorre la matriz, en este
caso se la inicializa con 0, se posiciona en la
fila 1 y recorre todas las columnas ( de 1 a 4),
luego se posiciona en la fila 2 y repite el
proceso.
Se aprovecha el bucle de la fila para inicializar
los vectores que contarn la cantidad de
productos por RUBRO y por PAS.
ACUM_PAIS (PF)=0
ACUM_RUBRO (PF)=0
ISFD DR JUAN PUJOL CORRIENTES Pg 13/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
NO
SI


COTIZ_DIA,
POR_GRA, PAIS




CODI, PRODU, CANT,
RUBRO, PU, ORIGEN









1
COTIZAC (PF) = COTIZ_DIA
PORC_GRAV(PF) = POR_GRA
PAISES(PF)= PAIS
PF 1
1 4
Pide por teclado los 4 valores de cotizacin, los porcentajes de gravado por cada producto y el nombre de los pases
de los cuales se importan. El bucle tiene un puntero PF (puntero fila), que vara de 1 a 4 en intervalos de 1.
De manera que en el primer ingreso se cargar 5,583 (el valor del euro) y 1,83 (el porcentaje de gravado de AL) y
Alemania.
Se supone que la posicin 1 es para Euros, Alimentos y Alemania; la 2 para Yuan, Electrnicos y China; la 3 para
Dlar, Maquinarias y Estados Unidos; y la 4 para Real, Autopartes y Brasil.
CODI = 0

CASE RUBRO
RUBRO =AL RUBRO=EL RUBRO=MA OTHERWISE
PC=1
2
PC es el puntero de columna, y como
definimos anteriormente al detectar
el contenido del valor en letras, y
siguiendo nuestra lgica de las
matrices, se asigna un nmero que
va de 1 a 4 segn rubro.
Aprovechando el CASE, definimos la
leyenda que va en la impresin ms
adelante.
RUB = ALIMENTOS ENLATADOS
PC=2
RUB = ELECTRODOMSTICOS
PC=3
RUB = MAQUINARIAS AGRICOLAS
PC=4
RUB = AUTOPARTES
3
4
ISFD DR JUAN PUJOL CORRIENTES Pg 14/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
B
4














2
RUBRO_PAIS (ORIGEN,PC) = RUBRO_PAIS(ORIGEN,PC) + GRAV_PESOS
GRAV_PESOS = ((CANT * PU * PORC_GRAV(PC)) /100) * COTIZAC(ORIGEN)

Calculo el gravamen en pesos, para ello recupero
el % del vector y la cotizacin de la moneda de
origen.
Almaceno en la matriz RUBRO_PAIS el valor en
pesos de lo grabado por ese producto de ese pas.
CODI, PRODU, CANT, RUB, PAISES(ORIGEN)




Imprime la lnea de detalle
3
ACUM_RUBRO(PC) = ACUM_RUBRO(PC) + CANT
OTHERWISE POS = 1 POS = 2 POS = 3
CASE POS
PRMY= ALIMENTOS ENLATADOS PRMY= ELECTRNICOS PRMY= MAQUINARIAS AGRICOLAS PRMY= AUTOPARTES
5
Aqu realizamos la deteccin de la Mayor
cantidad de productos importados y
guardamos en POS la posicin del mismo,
para luego con un CASE poder recuperar el
nombre del producto.
A travs de un proceso de subrutinas (o
funciones) se puede simplificar la
repeticin de determinados procesos. Esto
lo veremos ms adelante.
SI
MY <
ACUM_RUBRO(PF)

MY = ACUM_RUBRO(PF)
POS= PF
PF 1
1 4
NO
ISFD DR JUAN PUJOL CORRIENTES Pg 15/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
C
D



















SI
MN >
ACUM_RUBRO(PF)

MN = ACUM_RUBRO(PF)
POS= PF
PF 1
1 4
NO
5
OTHERWISE POS = 1 POS = 2 POS = 3
CASE POS
PRMN= ALIMENTO ENLATADOS PRMN= ELECTRNICOS PRMN= MAQUINARIAS AGRICOLAS PRMN= AUTOPARTES
CANTIDAD DE IMPORTADOS:
ALIMENTOS ENLATADOS: ACUM_RUBRO(1) ELECTRNICOS:ACUM_RUBRO(2)
MAQUINARIAS AGRCOLAS: ACUM_RUBRO(3) AUTOPARTES: ACUM_RUBRO(4)

RUBRO CON MAYOR CANTIDAD DE UNIDADES: PRMY
MENOR CANTIDAD UNIDADES: PRMN





ACUM_RUBRO(PF) = 0
6
PF 1
1 4
Se vuelve a inicializar el vector
para reutilizarlo ms adelante.
ISFD DR JUAN PUJOL CORRIENTES Pg 16/16
PROFESORADO DE INFORMTICA - 1A ALGORITMOS Y PROGRAMACIN 2013
Prof. MACIEL CASTILLOS RODOLFO
E
F
















TOTAL GRAVADO POR: ALIMENTOS ENLATADOS: $ ACUM_RUBRO(1)
ELECTRNICOS: $ ACUM_RUBRO(2)
MAQUINARIAS AGRCOLAS: $ ACUM_RUBRO(3)
AUTOPARTES: $ ACUM_RUBRO(4)

TOTAL GRAVADO POR EMBARQUE #2309845HER# : $ TOTAL
TOTAL DE $$ GRAVADOS POR IMPORTAR DE:
ALEMANIA : $ ACUM_PAIS(1)
CHINA : $ ACUM_PAIS(2)
ESTADOS UNIDOS: $ ACUM_PAIS(3)
BRASIL : $ ACUM_PAIS(4)







ACUM_RUBRO(PC) = ACUM_RUBRO(PC) + RUBRO_PAIS(PF,PC)
ACUM_PAIS(PF) = ACUM_PAIS(PF) + RUBRO_PAIS(PF,PC)
PF 1
1 4
PC 1
1 4
Recorre la matriz para recuperar
los datos y los va acumulando en
los vectores que contienen las
cantidades por PAIS y por RUBRO
6
TOTAL = ACUM_RUBRO(1) + ACUM_RUBRO(2) + ACUM_RUBRO(3) + ACUM_RUBRO(4)
FIN

Potrebbero piacerti anche