Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol COBOL - General
COBOL - General Discusiones de temática general sobre el lenguaje COBOL y todo lo relacionado con él.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[PowerCOBOL + WinAPI] Obtener la version de SO Windows Kuk Cocina PowerCOBOL 3 6 de junio de 2018 05:22
[Sintaxis] Obtener version de Windows en ejecución Hector PowerCOBOL (ActiveX, v4 - v11) 1 4 de mayo de 2018 22:35
[Sintaxis] Obtener el Directorio de la aplicación Eslopes PowerCOBOL v3 (V3L10, Win32) 2 21 de junio de 2016 15:26
[PowerCOBOL v3] Obtener el Handle (HWND) de un control Kuk Cocina PowerCOBOL 0 21 de diciembre de 2015 21:53
[Sintaxis] Obtener una ruta en Red Roger PowerCOBOL (ActiveX, v4 - v11) 16 1 de mayo de 2015 22:40

Respuesta

  #1
Antiguo 12 de abril de 2023, 06:11
dariodr
Forero
Última Actividad 20.09.2026 10:04
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11
Sonido Obtener el monto menor
0 Inactivo Inactivo

Hola amigos coboleros, tengo este codigo.
Pregunta: como obtengo el monto de venta menor.

Código COBOL:
  1.        identification division.
  2.        program-id. ventas1.
  3.  
  4.        environment division.
  5.        input-output section.
  6.        file-control.
  7.            select ventas assign to "ventas.txt".
  8.  
  9.        data division.
  10.        file section.
  11.        fd  ventas recording mode f.
  12.        01 reg-ventas.
  13.          03 num-vendedor pic 999.
  14.          03 cod-articulo pic x(5).
  15.          03 des-articulo pic x(30).
  16.          03 unid-vendidas pic 9(4).
  17.          03 monto-venta pic 9(6)V99.
  18.      *Variables
  19.        working-storage section.
  20.        01 cabecera.
  21.          03 filler pic x(15) value "Nro de Vendedor".
  22.          03 filler pic x(2) value spaces.
  23.          03 filler pic x(19) value "Codigo del Articulo".
  24.          03 filler pic x(2) value spaces.
  25.          03 filler pic x(11) value "Descripcion".
  26.          03 filler pic x(10) value spaces.
  27.          03 filler pic x(14) value "Unid. Vendidas".
  28.          03 filler pic x(2) value spaces.
  29.          03 filler pic x(14) value "Monto de Venta".
  30.        01  linea-p.
  31.          03 filler pic x(90) value all "-".
  32.  
  33.        01 fin-archivo pic xx value "no".
  34.        01 linea       pic 99 value 3.
  35.        01 tecla       pic x.
  36.        01 suma        pic 9(6)v99.
  37.        01  menor      pic 9(6)v99.
  38.        01 promedio    pic 9(6)v99.
  39.        01  con-formato.
  40.          03 promedio-f pic zzzzz9.99.
  41.  
  42.        procedure division.
  43.        proceso-apertura.
  44.            open output ventas.
  45.            perform ingreso-datos 3 times.
  46.            close ventas.
  47.            open input ventas.
  48.            display erase.
  49.            display cabecera.
  50.            display linea-p.
  51.            perform proceso-lectura until fin-archivo = "si".
  52.            close ventas.
  53.            perform mostrar-promedio.
  54.            accept tecla.
  55.            goback.
  56.  
  57.        proceso-lectura.          
  58.            read ventas
  59.                at end
  60.                    move "si" to fin-archivo
  61.                not at end
  62.                    move monto-venta to menor (hice esto pero no funciono).
  63.                    perform listar
  64.                    perform calcular-promedio
  65.            end-read.
  66.  
  67.        ingreso-datos.
  68.            display "Numero de vendedor: " no advancing.
  69.            accept num-vendedor.
  70.            display "Codigo del articulo: " no advancing.
  71.            accept cod-articulo.
  72.            display "Descripcion: " no advancing.
  73.            accept des-articulo.
  74.            display "Unidades vendidas: " no advancing.
  75.            accept unid-vendidas.
  76.            display "Monto de venta: " no advancing.
  77.            accept monto-venta.
  78.            write reg-ventas.
  79.  
  80.        listar.
  81.            display num-vendedor  line linea col 1.
  82.            display cod-articulo  line linea col 18.
  83.            display des-articulo  line linea col 39.
  84.            display unid-vendidas line linea col 60.
  85.            display monto-venta   line linea col 76.
  86.            add 1 to linea.
  87.  
  88.        calcular-promedio.
  89.            compute suma = suma + monto-venta.
  90.  
  91.        mostrar-promedio.
  92.            compute promedio = suma / 3.
  93.            display "Promedio: " line 10 col 30.
  94.            move promedio to promedio-f.
  95.            display promedio-f line 10 col 43.

Salu2
dariodr is offline   Responder Con Cita
  #2
Antiguo 12 de abril de 2023, 12:30
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

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.-
Josber is offline   Responder Con Cita
  #3
Antiguo 12 de abril de 2023, 23:05
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

@dariodr, define una variable en working

Código COBOL:
  1.        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


Código COBOL:
  1.        calcular-promedio.
  2.            compute suma = suma + monto-venta.
  3.            if venta-menor = 0 then
  4.                  move monto-venta to venta-menor
  5.            end-if.
  6.            if venta-menor > monto-venta then
  7.                  move monto-venta to venta-menor
  8.            end-if.
  9.  
  10.  
  11.        mostrar-promedio.
  12.            compute promedio = suma / 3.
  13.            display "Promedio: " line 10 col 30.
  14.            move promedio to promedio-f.
  15.            display promedio-f line 10 col 43.
  16.  
  17.            display "Venta menor: " line 11 col 30.
  18.            move venta-menor to promedio-f.
  19.            display promedio-f line 11 col 43.
JCantero is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:07.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.