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.


8 comentarios:

  1. Muchas gracias, muy útil lo que nos compartes.
    Me interesa en C++, cómo lo compartirías?
    Por acá, o por correo??

    ResponderEliminar
  2. El Pseudocodigo es del problema de:
    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.

    ResponderEliminar
  3. el pseudocodigo no esta mal, pero no es lo que realmente se solicita atentos con eso y leer bien el enunciado

    ResponderEliminar

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