Codificación aprenderaprogramar.com: CU00260A
GESTIÓN DE NOTAS. EJERCICIO CON TABLAS DE DECISIÓN Y ARBOL ESQUEMA DE DECISIÓN.
Construir el esquema de decisión y el pseudocódigo asociado para el problema que se expone a continuación, relativo a la gestión de calificaciones en una asignatura universitaria estructurada en cuatro módulos (teoría, problemas, prácticas de laboratorio y prácticas de campo).
Una asignatura universitaria se estructura en cuatro módulos: teoría, problemas, prácticas de laboratorio y prácticas de campo. Si se aprueban los cuatro módulos se obtiene la calificación como nota media. En otro caso se siguen estas premisas:
· Los exámenes se hacen en el siguiente orden: teoría --> problemas --> prácticas de laboratorio --> prácticas de campo.
· El alumno que no haya aprobado la teoría no se puede presentar a problemas ni a prácticas de laboratorio.
· Si un alumno aprueba teoría se le guardará la nota durante ese curso y el siguiente.
· Si un alumno suspende un solo módulo se le citará en despacho antes de evaluarlo.
SOLUCIÓN
Primero buscamos filas con menor número de indiferencias. Con criterio lógico elegimos C1. Por lo tanto C1 divide a la tabla. Construimos C1 – Sí.
Con criterio lógico elegimos C2. C2 divide a C1 – Sí. Construimos C1 – Sí – C2 – Sí.
Elegimos C3. C3 divide a C1 – Sí – C2 – Sí. Construimos C1 – Sí – C2 – Sí – C3 – Sí.
Cuatro filas con una variante que es C4. C4 divide a C1 – Sí – C2 - Sí – C3 – Sí. Y esto nos lleva a las siguientes acciones:
C1 – Sí – C2 – Sí – C3 – Sí – C4 – Sí = Acción A
C1 – Sí – C2 – Sí – C3 – Sí – C4 – No = Acción B
Construimos C1- Sí – C2 – Sí – C3 – No.
Cuatro filas con una variante que es C4. C4 divide a C1 – Sí – C2 – Sí – C3 – No.
C1 – Sí – C2 – Sí – C3 – No – C4 – Sí = Acción C
C1 – Sí – C2 – Sí – C3 – No – C4 – No = Acción D
Construimos la tabla: C1 – Sí – C2 – No.
Elegimos C3. C3 divide a C1 – Sí – C2 – No. Construimos C1 – Sí – C2 – No – C3 – Sí.
Cuatro filas con una variante que es C4. C4 divide a C1 – Sí – C2 – No – C3 – Sí.
C1 – Sí – C2 – No – C3 – Sí – C4 – Sí = Acción E
C1 – Sí – C2 – No – C3 – Sí – C4 – No = Acción F
Construimos C1 – Sí – C2 – No – C3 – No.
C1 – Sí – C2 – No – C3 – No lleva a la acción G.
C1 – Sí – C2 – No – C3 – No = Acción G
Finaliza la rama. Construimos C1 – No.
C1 – No lleva a la acción H. Construimos el esquema de decisión.
El número de acciones coincide con el de casos en la tabla original, lo cual queda reflejado con los números entre paréntesis.
En este problema teníamos distintos casos que daban lugar a la misma lista de acciones y que no fueron simplificados. Por ello los casos 2, 3 y 4 los hemos nombrado como B, B´ y B´´ y 7 – 13, 8, 9 han sido nombrados como C, C´, C´´ con el fin de que al construir el programa se tenga esto en cuenta para por ejemplo que 2 – 3 – 4 contengan llamadas al mismo módulo. En igual circunstancia nos encontramos con 7 – 13 – 8 – 9. De un buen análisis y conocimiento del problema a resolver siempre podremos extraer información que ayudará a mejorar nuestros programas.
Pseudocódigo:
[Pseudocódigo aprenderaprogramar.com] Si C1 = “Sí” Entonces Si C2 = “Sí” Entonces Si C3 = “Sí” Entonces Si C4 = “Sí” Entonces Acción A(1) SiNo Acción B(2) FinSi SiNo Si C4 = “Sí” Entonces Acción B´(3) SiNo Acción C´(8) FinSi FinSi SiNo Si C3 = “Sí” Entonces Si C4 = “Sí” Entonces Acción B´´(4) SiNo Acción C´´(9) FinSi SiNo Acción C(7-13) FinSi FinSi SiNo Acción H(12-16) FinSi |
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.