domingo, 30 de marzo de 2014

Algoritmo: Conviertiendo Calificaciones numericas a Letras ¿Habrás aprobado el examen con una A?

Calificaciones númericas: Enunciado del Problema

      Hola, en este post, hablaremos sobre como convertir una calificación numérica, como un 20, 19, 15, 07, a una letra como una A, B, C, D hasta E. Para ello, es preciso, conocer el siguiente enunciado:

      Un algoritmo que permita convertir calificaciones numéricas, según la siguiente tabla:
A = 19 y 20, B =16, 17 y 18, C = 13, 14 y 15, D = 10, 11 y 12, E = 1 hasta el 9. Se asume que la nota está comprendida entre 1 y 20.

Ahora, la solución en diagrama de flujo

      Y para completar, el diagrama de flujo del algoritmo para que seas capaz de auditar el pseudocodigo por ti mismo. Vamos, sólo es cuestión de escribir el mismo pseudocodigo de arriba, en la ventana del Pseint (programa para ejecutar pseudocodigo) y luego ya verás como genera por sí mismo el diagrama correspondiente.



      Allí está el pseudocodigo en forma de diagrama de flujo, aunque no se vea muy bien porque no pude pasar bien el interprete de Pseint. Es impresionante que dicha herramienta no sea capaz de producir apropiadamente el diagrama, a pesar de que ya lleva uno años en encima. Debería unirme como colaborador del proyecto a ver si puedo reparar unos cuantos errores. XD.

Ahora, la solución en pseudocódigo

      Para solucionar el problema, es posible inferir que requeriremos de muchos condicionales if, que sean capaces de comprobar si el valor de la nota se encuentra en el rango que permite cada letra, y en consecuencia asignarle un valor en letras. Para ello, aqui te presento el algoritmo que necesitas en forma de pseudocodigo:

(Pseudocodigo 100% fiable, ya depurado)

Proceso Calificaciones
Definir calificacion_a_leer como Entero;
Escribir Sin Saltar "Ingrese calificacion en valor numerico: ";
Leer calificacion_a_leer;
Si (calificacion_a_leer = 20) || (calificacion_a_leer = 19) Entonces
Escribir Sin Saltar "Su nota: ", "A  (Brillante)";
FinSi
Si (calificacion_a_leer > 15) && (calificacion_a_leer < 19) Entonces
Escribir Sin Saltar "Su nota: ", "B  (Sobresaliente)";
FinSi
Si (calificacion_a_leer > 9) && (calificacion_a_leer < 16) Entonces
Escribir Sin Saltar "Su nota: ", "C  (Regular)";
FinSi
Si (calificacion_a_leer < 10) Entonces
Escribir Sin Saltar "Su nota: ", "E  (No muy bueno)";
FinSi
FinProceso

      En otra ocasión, mostraré su equivalente en C++, por si alguien le interesa.


1 comentario:

Por favor deja un comentario dejando tus sugerencias y dudas sobre temas de este blog.