Anda di halaman 1dari 4

Algoritmo

Almacenes
Tipo
Registro: Almacen
Inicio
Entero: cant_A, cant_B, opcin
Real: monto_vtaA, monto_vtaB
Lgico: ban_1, ban_2
Fin_registro
Array[13] de almacen: vector
Var
Lgico: hay_stock
Vector: V1
Entero: op, i, N_alm, tipo_prod, cant, tipo_venta
Real: monto_desc
Inicio
Op1
Monto_desc0
Opcion0
desde i1 hasta 3 hacer
V1[i].monto_vtaA0
V1[i].monto_vtaB0
V1[i].cant_A50
V1[i].cant_B50
V1[i].ban_1falso
V1[i].ban_2falso
Fin_desde
Monto_desc0
Mientras op=1 hacer
Mostrar(Almacen 1, 2 o 3?)
Leer(N_alm)
Mostrar(Para producto A ingresar 1, para producto B ingresar 2)
Leer(tipo_prod)
Mostrar(Ingresar cantidad de producto)
Leer(cant)
Hay_stockvalida_venta(V1, N_alm, tipo_prod, cant)
Si hay_stock=verdadero entonces
Mostrar(Para pago de contado 1, para otro tipo de pago 2)
Leer(tipo_venta)
Llamar_a registrar_venta(V1,N_alm, tipo_prod, cant, tipo_venta, monto_desc)
Si_no
Mostrar(La cantidad a vender no esta en el almacen)
Fin_si
Mostrar(Para realizar otra venta ingresar 1, para finalizar ingresar otro
numero)
Si
Leer(op)
Fin_mientras
Opcionconsultas( )
Segn_sea opcin entonces
Caso 1 llamar_a vta_prod(V1)
Caso 2 llamar_a vta_almac(V1)
Caso 3 llamar_a stock_almac
Caso 4 llamar_a cant_prod
Caso 5 Mostrar(El monto de descuentos es,monto_desc)
Caso 6 llamar_a repos_almac(V1)

Si_no
Mostrar(Opcion incorrecta)
Fin_segun_sea
Fin

Lgico funcin valida_venta(E/S vector:V1, E entero: N_alm, tipo_prod, cant)


Var
Lgico: bandera
Inicio
Banderafalso
Si tipo_prod=1 entonces
Si(V1[N_alm].ban_1=verdadero) o (V1[N_alm].cant_A<cant)
entonces
Banderafalso
Devolver bandera
Si_no
Banderaverdadero
Devolver bandera
Fin_si
Si_no
Si(V1[N_alm].ban_2=verdadero) o (V1[N_alm].cant_B<cant)
entonces
Banderafalso
Devolver bandera
Si_no
Banderaverdadero
Devolver bandera
Fin_si
Fin_si
Fin_funcion

Procedimiento registra_venta(E/S vector: V1, E entero: N_alm, tipo_prod,


cant, E/S real: monto_desc)
Inicio
Si tipo_prod=1 entonces
V1[N_alm].cant_AV1[N_alm].cant_A-cant
V1[N_alm].monto_vtaAV1[N_alm].monto_vtaA+cant*100
Si V1[N_alm].cant_A<10 entonces
V1[N_alm].ban_1verdadero
Fin_si
Monto_descmonto_desc+monto_vtaA
Si_no
V1[N_alm].cant_BV1[N_alm].cant_B-cant
V1[N_alm].monto_vtaBV1[N_alm].monto_vtaB+cant*200
Si V1[N_alm].cant_B<12 entonces
V1[N_alm].ban_2verdadero
Fin_si
Monto_descmonto_desc+monto_vtaB
Fin_si
Fin_procedimiento

Entero funcin consultas( )


Var
Entero:op
Inicio
Repetir
Mostrar(1.Ventas por producto
2.Ventas por almacen
3.Stock por almacen
4.Cantidad de productos
5.Monto de descuentos
6.Informe de reposiciones para stock por debajo del
minimo)
Leer(op)
Hasta_que op>=1 y op <=6
Devolver op
Fin_funcion

Procedimiento vta_prod (E vector: V1, E entero: tipo_venta)


Var
Real: total
Entero: i
Inicio
Total0
Desde i1 hasta 3 hacer
Totaltotal+V1[i].monto_vtaA
Fin_desde
Mostrar(Las ventas totales del producto A son de $,total)
Total0
Desde i1 hasta 3 hacer
Totaltotal+V1[i].monto_vtaB
Fin_desde
Mostrar(Las ventas totales del producto B son de $,total)
Fin_procedimiento

Procedimiento vta_almac(E vector: V1)


Var
Real:total
Entero: i
Inicio
TotalV1[1].monto_vtaA+V1[1].monto_vtaB
Mostrar(Las ventas del almacen 1 son de $,total)
TotalV1[2].monto_vtaA+V1[2].monto_vtaB
Mostrar(Las ventas del almacen 2 son de $,total)
TotalV1[3].monto_vtaA+V1[3].monto_vtaB
Mostrar(Las ventas del almacen 3 son de $,total)
Fin_procedimiento

Procedimiento stock_almac(E vector: V1)

Var
Entero: i
Inicio
Mostrar(el stock del almacen 1 de producto A es, V1[1].cant_A,y de
producto B es, V1[1].cant_B)
Mostrar(el stock del almacen 2 de producto A es, V1[1].cant_A,y de
producto B es, V1[1].cant_B)
Mostrar(el stock del almacen 3 de producto A es, V1[1].cant_A,y de
producto B es, V1[1].cant_B)
Fin_procedimiento

Procedimiento repos_almac(E vector: V1)


Inicio
Desde i1 hasta 3 hacer
Si V1[i].ban_1=verdadero
Mostrar(Se debe realizar reposicin del producto A del almacen,i)
Fin_si
Si V1[i].ban_2=verdadero
Mostrar(Se debe realizar reposicin del producto B del almacen,i)
Fin_si
Fin_desde
Fin_procedimiento

Anda mungkin juga menyukai