Validación de rango del espectro de luz visible en PSeInt

Más ejercicios resueltos

Si deseas revisar más ejercicios resueltos, haz click en el siguiente botón. 

El problema de validación del rango del espectro de luz visible es un ejercicio básico que permite entender el funcionamiento de las condicionales dobles. En este artículo analizamos con bastante detalle este ejercicio poniendo énfasis en la lógica de programación y en la estructura algorítmica selectiva doble empleando como herramienta PSeInt. Si deseas conocer con más detalle el enunciado del ejercicio validación de rango del espectro de luz visible, haz click en el siguiente enlace.

El análisis de este ejercicio se encuentra sintetizado en el vídeo «Selectiva Doble en PSeInt» en nuestro canal de YouTube. Te invitamos a que lo visites.

A continuación presentamos la solución al problema de la validación del rango del espectro de luz visible usando una selectiva doble en PSeInt. Se analizará la solución considerando los siguientes puntos:

  • Lectura de datos
  • Control de flujo cuando la condición es verdadera
  • Control de flujo cuando la condición es falsa

Lectura de datos

La primera tarea a realizar, es la lectura de los datos de entrada. Para esto usamos la instrucción \texttt{Leer}. El dato leído se almacena en la variable \texttt{lon\_onda}.

Antes de hacer la lectura, se emite un mensaje descriptivo al usuario para que le permita saber cierto detalle de la operación de lectura, como por ejemplo, la unidad de medida de la longitud de onda.  Dicho mensaje lo realizamos a través de la instrucción \texttt{Escribir}. Todo lo que se encuentra entre las comillas dobles se imprime.

pseudocódigo espectro de luz visible v1
Lectura de datos de entrada

Control de flujo cuando la condición es verdadera

Luego de realizar la lectura de la longitud de onda, se debe reconocer si dicha longitud de onda pertenece al rango visible. Para que dicha onda de luz pertenezca al rango de luz visible, la longitud de onda se debe encontrar entre 380 y 780 nanómetros. ¿Cómo podemos determinar si la longitud de onda se encuentra en dicho rango? Pues usando una selectiva doble.  En la condición de la selección doble se deben usar dos expresiones lógicas unidas por el operador de conjunción.

La condición sería \texttt{lon\_onda>=380 y lon\_onda<=780} como se puede apreciar. Es importante recordar que los operadores relacionales en PSeInt son binarios, es decir admiten únicamente dos operandos, por lo que para gestionar un rango de valores, debe hacerse uso de conectores lógicos. Si la condición se cumple, se imprime el mensaje \texttt{Dentro del espectro visible}.

pseudocódigo espectro de luz visible v2
Control de flujo cuando la condición es verdadera

Control de flujo cuando la condición es falsa

Hasta el momento nuestra solución es capaz de detectar o reconocer una onda de luz en el espectro visible, pero no nos dice nada cuando no está dentro del rango. Como queremos que se emita un mensaje cuando se está fuera del espectro visible, debe incluir el comando \texttt{SiNo} para que el flujo se dirija hacia otro conjunto de instrucciones, en caso la condición sea falsa. En nuestra solución, cuando la condición se hace falsa, se imprime el mensaje \texttt{Fuera del espectro visible}.

pseudocódigo espectro de luz visible v3
Control de flujo cuando la condición es falsa

Diseño algorítmico en diagrama de flujo​

Lectura de datos

La lectura en el diagrama de flujo se realiza con el símbolo representado por el romboide rosado en la figura siguiente. Es fácil reconocerlo pues posee una fecha hacia adentro representado una operación de entrada. En la figura que se muestra a continuación, puede apreciarse como se lee la variable \texttt{lon\_onda}

diagrama de flujo espectro de luz visible v1
Lectura de datos de entrada

Control de flujo cuando la condición es verdadera

A continuación se procede a incluir la selectiva para controlar el flujo cuando la condición es verdadera. Como podrá notar, el camino etiquetado con V contiene la instrucción que imprimirá \texttt{Dentro del espectro visible}, que se ejecutará cuando la condición \texttt{lon\_onda>=380\ y\ lon\_onda<=780} sea verdadera.

diagrama de flujo espectro de luz visible v2
Control de flujo cuando la condición es verdadera

Control de flujo cuando la condición es falsa

De forma análoga al paso anterior, se procede a controlar el flujo cuando la condición es falsa. Como podrá notar, el camino etiquetado con F contiene la instrucción que imprimirá \texttt{Fuera del espectro visible}, que se ejecutará cuando la condición \texttt{lon\_onda>=380\ y\ lon\_onda<=780} sea falsa.

diagrama de flujo espectro de luz visible v3
Control de flujo cuando la condición es falsa

Conclusión​

Hemos presentado en este artículo, una alternativa de solución al problema de validación de rango del espectro de luz visible. Se ha utilizado para el control de flujo la estructura selectiva doble. Podrá descargar la solución propuesta en el repositorio GitHub de iterando++ a través del siguiente enlace

Hemos preparado otros artículos adicionales en donde describimos al detalle la implementación de este problema en lenguajes de programación. Te invitamos a leer los siguientes artículos de iterando+

Si te interesa profundizar más sobre diseño algorítmico, te recomendamos el libro Foundations of Programming Languages de Kent D. D. Lee. En este libro encontrarás además información detallada sobre la programación orientada a objetos, funcional y lógica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *