Iniciar Sesión

Ver la Versión Completa : [Duda] Obtener el monto menor


dariodr
12 de abril de 2023, 06:11
Hola amigos coboleros, tengo este codigo.
Pregunta: como obtengo el monto de venta menor.

identification division.
program-id. ventas1.

environment division.
input-output section.
file-control.
select ventas assign to "ventas.txt".

data division.
file section.
fd ventas recording mode f.
01 reg-ventas.
03 num-vendedor pic 999.
03 cod-articulo pic x(5).
03 des-articulo pic x(30).
03 unid-vendidas pic 9(4).
03 monto-venta pic 9(6)V99.
*Variables
working-storage section.
01 cabecera.
03 filler pic x(15) value "Nro de Vendedor".
03 filler pic x(2) value spaces.
03 filler pic x(19) value "Codigo del Articulo".
03 filler pic x(2) value spaces.
03 filler pic x(11) value "Descripcion".
03 filler pic x(10) value spaces.
03 filler pic x(14) value "Unid. Vendidas".
03 filler pic x(2) value spaces.
03 filler pic x(14) value "Monto de Venta".
01 linea-p.
03 filler pic x(90) value all "-".

01 fin-archivo pic xx value "no".
01 linea pic 99 value 3.
01 tecla pic x.
01 suma pic 9(6)v99.
01 menor pic 9(6)v99.
01 promedio pic 9(6)v99.
01 con-formato.
03 promedio-f pic zzzzz9.99.

procedure division.
proceso-apertura.
open output ventas.
perform ingreso-datos 3 times.
close ventas.
open input ventas.
display erase.
display cabecera.
display linea-p.
perform proceso-lectura until fin-archivo = "si".
close ventas.
perform mostrar-promedio.
accept tecla.
goback.

proceso-lectura.
read ventas
at end
move "si" to fin-archivo
not at end
move monto-venta to menor (hice esto pero no funciono).
perform listar
perform calcular-promedio
end-read.

ingreso-datos.
display "Numero de vendedor: " no advancing.
accept num-vendedor.
display "Codigo del articulo: " no advancing.
accept cod-articulo.
display "Descripcion: " no advancing.
accept des-articulo.
display "Unidades vendidas: " no advancing.
accept unid-vendidas.
display "Monto de venta: " no advancing.
accept monto-venta.
write reg-ventas.

listar.
display num-vendedor line linea col 1.
display cod-articulo line linea col 18.
display des-articulo line linea col 39.
display unid-vendidas line linea col 60.
display monto-venta line linea col 76.
add 1 to linea.

calcular-promedio.
compute suma = suma + monto-venta.

mostrar-promedio.
compute promedio = suma / 3.
display "Promedio: " line 10 col 30.
move promedio to promedio-f.
display promedio-f line 10 col 43.



Salu2

Josber
12 de abril de 2023, 12:30
Sí claro, una de las soluciones es, a la vez que lees el fichero, vas metiendo los datos que necesites, por ejemplo la clave principal y el total de venta en una tabla y, al finalizar, con un SORT, la ordenas por la columna de ventas.

Un salu2.-

JCantero
12 de abril de 2023, 23:05
@dariodr, define una variable en working


01 venta-menor pic 9(6)v99 value 0.



y a la vez que calculas suma vas metiendo la venta menor y luego la displayas



calcular-promedio.
compute suma = suma + monto-venta.
if venta-menor = 0 then
move monto-venta to venta-menor
end-if.
if venta-menor > monto-venta then
move monto-venta to venta-menor
end-if.


mostrar-promedio.
compute promedio = suma / 3.
display "Promedio: " line 10 col 30.
move promedio to promedio-f.
display promedio-f line 10 col 43.

display "Venta menor: " line 11 col 30.
move venta-menor to promedio-f.
display promedio-f line 11 col 43.