Cobol - Necesito Ayuda!!!

 
Vista:

Necesito Ayuda!!!

Publicado por Roberto (1 intervención) el 01/12/2001 17:52:59
Por diversos problemas personales no he tenido tiempo para hacer una tarea de Lenguajes de Programación, me gustaría saber si alguien fuera tan amable y me ayudara a hacer un programa en Cobol del siguiente Problema:
Desarrollar un programa que permita ingresar, calcular y mostrar la asignación de salas de una escuela secundaria, indicando la carrera, la asignatura, el profesor, el semestre, número de alumnos, listado de alumnos y números de sala.
El edificio de la escuela secundaria tiene 3 pisos, cada uno con 5 salas de clases de tamaños diversos como se muestra en el ejemplo.

Piso 01 02 03 04 05
1 30 30 15 30 40
2 25 30 25 40 110
3 62 30 40 10 30

Cada semestre, la escuela imparte 15 cursos que deben distribuirse en las salas. Desarrolle un programa en los siguientes lenguajes:
Perl
PL/I
Pascal
Prolog
Fortran
Cobol
Small Talk
Lisp
Ada

Que intente hacer una asignación de salas satisfactoria que acomode las 15 clases, dados la capacidad de cada sala, y el tamaño de cada grupo. Para los grupos que no puedan ser adecuadamente ubicados, el programa mostrará el mensaje (no hay Sala Disponible); además indicar al número de asientos vacíos en cada sala y en todo el edificio.

Observación: En el listado de alumnos debe aparecer el rut del alumno, año de ingreso, semestre que cursa la asignatura. A cada sala se le debe asignar un código y el estado de ocupado o desocupado.
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 para asignación de salas en una escuela secundaria

Publicado por Alejandro (299 intervenciones) el 04/09/2023 19:24:36
Puedo ofrecerte un esqueleto básico de un programa COBOL que aborda el problema que has planteado. Tendrás que desarrollar y adaptar este esqueleto según tus necesidades y requisitos específicos. Además, ten en cuenta que el problema es bastante complejo y requiere una lógica detallada para realizar la asignación de salas de manera eficiente.

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
IDENTIFICATION DIVISION.
PROGRAM-ID. AsignacionSalas.
 
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Sala OCCURS 3 TIMES.
   02 Piso PIC 9(2).
   02 Capacidades OCCURS 5 TIMES PIC 9(3).
01 Cursos OCCURS 15 TIMES.
   02 Carrera PIC X(20).
   02 Asignatura PIC X(30).
   02 Profesor PIC X(30).
   02 Semestre PIC 9(1).
   02 NumAlumnos PIC 9(3).
   02 ListadoAlumnos OCCURS 30 TIMES.
       03 RutAlumno PIC X(12).
       03 AnioIngreso PIC 9(4).
       03 SemestreActual PIC 9(1).
   02 SalaAsignada PIC 9(2).
   02 EstadoSala PIC X(1).
 
01 AsientosVacios TOTAL PIC 9(5) VALUE 0.
 
PROCEDURE DIVISION.
   PERFORM AssignRooms VARYING SalaIndex FROM 1 BY 1 UNTIL SalaIndex > 3.
   DISPLAY "Asientos vacios en sala " Sala(SalaIndex): " : " Capacidades(SalaIndex) - AsientosVacios(SalaIndex).
   ADD Capacidades(SalaIndex) - AsientosVacios(SalaIndex) TO AsientosVacios.
   END-PERFORM.
   DISPLAY "Asientos vacios en todo el edificio: " AsientosVacios.
 
AssignRooms.
   PERFORM VaryCourses VARYING CourseIndex FROM 1 BY 1 UNTIL CourseIndex > 15.
       PERFORM AssignCourse CourseIndex.
   END-PERFORM.
 
AssignCourse CourseIndex.
   PERFORM VaryRooms VARYING RoomIndex FROM 1 BY 1 UNTIL RoomIndex > 5.
       IF Capacidades(Sala(RoomIndex)) >= Cursos(CourseIndex).NumAlumnos
           AND Sala(RoomIndex).EstadoSala = 'D'
           AND Cursos(CourseIndex).SalaAsignada = 0
       THEN
           MOVE 'O' TO Sala(RoomIndex).EstadoSala.
           MOVE CourseIndex TO Cursos(CourseIndex).SalaAsignada.
           ADD Cursos(CourseIndex).NumAlumnos TO AsientosVacios(RoomIndex).
           EXIT.
       END-IF.
   END-PERFORM.
 
   IF Cursos(CourseIndex).SalaAsignada = 0
   THEN
       DISPLAY "No hay Sala Disponible para el curso " CourseIndex.
   END-IF.
 
   EXIT.

Este esqueleto de programa COBOL muestra cómo puedes estructurar el programa para abordar el problema. Debes completar la lógica de asignación de salas y gestionar los datos de entrada y salida según tus necesidades. Ten en cuenta que este es solo un punto de partida y que la implementación real puede ser más compleja, especialmente en lo que respecta a la lógica de asignación de salas y la gestión de datos.
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