Cobol - Archivo

 
Vista:

Archivo

Publicado por Jorge Suarez (1 intervención) el 18/07/2001 03:30:00
Hola espero que me puedan ayudar tengo que hacer un programa que lee de un archivo un código por registro el cual contiene 200 registro se desea que el programa almacene los códigosen un vector y luego los clasifique utilizando el metodo de burbujas. Terminada la clasificación el programa debe leer otro archivo que contiene información corceniente a las diferentes ventas que realiza la empresa, cuyos códigos de productos corresponden a los 200 codigos leido y almacenados en las tablas se requiere leer cada registro transaccion de venta y verificar que el codigo de articulos esté correcto y que el tipo de transacción sea 3,4,6, ó 9. Use el méto de busqueda binaria para buscar cada código de la tabla.
La entrada esta compuesta por codigo de transacciónb valor fecha y tipo de transacción.
En caso de que no exista el códigoo o el tipo de transacción no corresponde a los arriba indicados se debe imprimir el registro leido de un mensajes indicativo. Si l a validación resulta correcta, no se hace nada y se procede con el siguien te registro.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Programa de clasificación y validación de ventas

Publicado por Alejandro (299 intervenciones) el 04/09/2023 17:54:42
A continuación, te proporciono un programa COBOL que realiza la clasificación de códigos de productos utilizando el método de burbujas y luego valida las transacciones de venta según los criterios especificados. Este programa asume que tienes dos archivos de entrada: uno con los códigos de productos y otro con las transacciones de venta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
IDENTIFICATION DIVISION.
PROGRAM-ID. ClasificacionYValidacion.
 
DATA DIVISION.
 
WORKING-STORAGE SECTION.
01 Codigos-Productos.
   05 Codigo-Producto PIC 9(4) OCCURS 200 TIMES.
01 Contador PIC 9(3) VALUE 0.
 
01 Transaccion-Venta.
   05 Codigo-Transaccion PIC X(4).
   05 Valor PIC 9(6)V99.
   05 Fecha PIC 9(8).
   05 Tipo-Transaccion PIC 9.
 
01 Tabla-Tipos-Validos.
   05 Tipo-Valido PIC 9 OCCURS 4 TIMES.
       10 Valor-Tipo-Valido PIC 9 VALUES 3 4 6 9.
 
01 Registro-Leido.
   05 Registro PIC X(50).
 
01 Mensaje-Error.
   05 Mensaje PIC X(50).
 
01 Indice PIC 9(3).
01 Swapped PIC X VALUE 'N'.
01 Temp PIC 9(4).
 
PROCEDURE DIVISION.
 
* Leer códigos de productos y almacenar en el vector
OPEN INPUT 'CodigosProductos.txt'.
PERFORM UNTIL Contador = 200 OR EOF
   READ Codigos-Productos
   AT END
       DISPLAY 'Se llegó al final del archivo de códigos.'
   NOT AT END
       ADD 1 TO Contador
   END-READ
END-PERFORM.
CLOSE Codigos-Productos.
 
* Realizar la clasificación utilizando el método de burbujas
PERFORM UNTIL Swapped = 'N'
   MOVE 'N' TO Swapped
   PERFORM Varios-Pasos
END-PERFORM.
 
* Leer transacciones de venta y validar
OPEN INPUT 'TransaccionesVentas.txt'.
PERFORM UNTIL EOF
   READ Registro-Leido
   AT END
       DISPLAY 'Se llegó al final del archivo de transacciones.'
   NOT AT END
       MOVE Registro-Leido(1:4) TO Codigo-Transaccion
       MOVE Registro-Leido(5:11) TO Valor
       MOVE Registro-Leido(12:19) TO Fecha
       MOVE Registro-Leido(20:20) TO Tipo-Transaccion
 
       PERFORM Busqueda-Binaria
       IF Indice = 0 OR NOT Table-Search
           MOVE 'Código o tipo de transacción inválido: ' & Registro-Leido TO Mensaje
           DISPLAY Mensaje
       ELSE
           CONTINUE
       END-IF
   END-READ
END-PERFORM.
CLOSE Transacciones-Ventas.
 
STOP RUN.
 
Varios-Pasos.
   PERFORM UNTIL Indice = Contador - 1
       MOVE 'N' TO Swapped
       PERFORM Un-Paso
   END-PERFORM.
 
Un-Paso.
   PERFORM UNTIL Indice = Contador - 1
       IF Codigo-Producto(Indice) > Codigo-Producto(Indice + 1)
           MOVE Codigo-Producto(Indice) TO Temp
           MOVE Codigo-Producto(Indice + 1) TO Codigo-Producto(Indice)
           MOVE Temp TO Codigo-Producto(Indice + 1)
           MOVE 'S' TO Swapped
       END-IF
       ADD 1 TO Indice
   END-PERFORM.
 
Busqueda-Binaria.
   MOVE 1 TO Indice
   SET Table-Search TO FALSE
   PERFORM UNTIL Indice > Contador OR Table-Search
       COMPUTE Indice = (Indice + Contador) / 2
       IF Tipo-Transaccion = Tipo-Valido(Indice)
           MOVE Indice TO Indice
           MOVE TRUE TO Table-Search
       ELSE
           IF Tipo-Transaccion < Tipo-Valido(Indice)
               SUBTRACT 1 FROM Indice
           ELSE
               ADD 1 TO Indice
           END-IF
       END-IF
   END-PERFORM.

Asegúrate de que los nombres de los archivos de entrada ('CodigosProductos.txt' y 'TransaccionesVentas.txt') sean los correctos y que los datos en los archivos estén formateados según las especificaciones dadas. Este programa primero lee los códigos de productos y los clasifica utilizando el método de burbujas. Luego, lee las transacciones de venta, busca los códigos en la tabla clasificada y valida el tipo de transacción. Si la validación falla, se muestra un mensaje de error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar