Unidad 2: Diseño de software utilizando diagramas de flujo y pseudocódigo
Sesión 4: Entrada y salida de datos
Dentro del diseño de software uno de los elementos que debes abordar inicialmente es cómo interactúa el software con el usuario y como se diseñan esta interacción utilizando un diagrama de flujo.
¿QUÉ SABES SOBRE…?
¿Qué es una entrada de datos?
¿Qué es una salida de datos?
¿Cómo representar una entrada o salida de datos?
4.1 MODELO ENTRADA-PROCESO-SALIDA
Como se mencionó en la sesión 2, una de las características principales de un algoritmo es su estructura de entrada, proceso y salida y en este caso la intención es que profundices sobre este modelo.
Los algoritmos y en general el software están pensados para satisfacer unas necesidades o resolver problemas para hacer más eficiente el trabajo de las personas, y por esta razón, para que un software pueda cumplir una o muchas de las funciones que contiene, debe tener algún tipo de información del usuario. Esta información correspondería a la entrada.
La entrada hace referencia a los datos que ingresan al software (por cualquier medio, no sólo teclado, pueden ser sensores, gestos, interacciones, etc.) y que sirven de base para ejecutar algún proceso. Por ejemplo, si pensamos en una calculadora básica, si deseo realizar alguna operación el usuario debe digitar los dos valores y la operación que se quiere realizar entre dichos valores, y en este caso en particular debe ser en un orden específico: numero 1, operación, numero 2. Al realizar esto se da paso a la segunda parte del modelo que correspondería al proceso.
El proceso hace referencia a todas las operaciones que se realizan con los datos de entrada. Dependiendo del software, es posible que se ejecuten todas las operaciones o solo algunas, pero estas operaciones al final definen la funcionalidad y el objetivo del software. Haciendo la analogía de nuevo con la calculadora, si el usuario ingresa el número 1, luego suma, y posteriormente número 2, la calculadora internamente debe hacer la suma correcta de estos dos valores para que el usuario conozca el resultado. Esto da paso para la tercera parte del modelo que correspondería a la salida.
La salida hace referencia a los valores que retorna el software posterior a realizar las operaciones correspondientes en el proceso, es aquí donde se concluye la funcionalidad del software ya que con este dato el usuario podrá realizar alguna acción externa o tomar decisiones. Sin embargo, para el software es desconocido lo que el usuario va a realizar con el resultado dado. En el ejemplo de la calculadora, el resultado de la suma puede servirle al usuario para comprobar un procedimiento manual o para cobrar un total de una compra, pero la calculadora no puede determinar exactamente para que quiere este valor el usuario, su funcionalidad es solo hacer operaciones.
En ese sentido, es muy importante que tengas en cuenta que en el desarrollo de software siempre va estar presente este modelo, sin importar el paradigma de programación que se utilice.
4.2 CÓMO REPRESENTAR UNA ENTRADA DE DATOS
Teniendo en cuenta lo abordado anteriormente, para representar una entrada de datos se utiliza el siguiente diagrama:

Ahora bien, si quisieras realizar un programa en el cual le quieres solicitar el nombre al usuario que interactúa con el software, lo podrías diseñar de la siguiente forma:

Debes tener en cuenta siempre el uso adecuado de los símbolos de acuerdo a lo abordado en la sesión 2.
4.3 CÓMO REPRESENTAR UNA SALIDA DE DATOS
Aunque la salida de datos depende de los procesos que se realicen con los datos de entrada, la forma más simple en la que puedes diseñar una salida de datos es la siguiente:

Un ejemplo en el cual puedes aplicar este diseño de salida de datos es con el ejemplo “Hola Mundo” empleado mucho cuando se inicia el aprendizaje de un lenguaje de programación específico. En este caso, el diseño sería el siguiente:

Como puedes observar, en este diseño no está contemplado un ingreso de información, pero aun así correspondería al diseño de un programa muy básico.
4.4 CASO DE APLICACIÓN 1
Solicitar información personal al usuario y mostrarle esta información en pantalla es un procedimiento muy común en aplicaciones que requieren registro de usuarios. En este caso abordarás un problema en el cual se realiza de una forma muy básica este proceso.
Situación problema:
Construir un programa que solicite al usuario su identificación y su nombre, y posterior a esto que imprima en pantalla los datos ingresados.
Requerimientos:
El programa debe solicitar la identificación al usuario
El programa debe solicitar el nombre al usuario
El programa debe mostrar en pantalla los datos en el orden en el que fueron ingresados
Diagrama de flujo
En este caso debes tener en cuenta que en este diseño se está implementando dos etapas de las tres que se abordan en un algoritmo, por lo cual no se requiere realizar algún tratamiento con los datos ingresados.

ACTIVIDAD DE APRENDIZAJE 4
Propósito
Plantear un algoritmo a un caso planteado y realizar el diagrama de flujo correspondiente
Descripción
En esta actividad el estudiante deberá analizar un caso propuesto para determinar el algoritmo apropiado y realizar su correspondiente diagrama de flujo.
Criterios de evaluación (I)
Determina un algoritmo de acuerdo a un caso planteado
Construye un diagrama de flujo a partir de algoritmo determinado
Caso
Se desea construir un programa que le solicite al usuario la identificación, el nombre, la edad y un número de contacto para luego mostrar en pantalla la información.
Requerimientos
El software debe mostrar al usuario un mensaje de bienvenida
El software se debe solicitar al usuario que ingrese la identificación, el nombre, la edad y un número de contacto.
El software debe mostrar al usuario la información en el siguiente orden: nombre, edad, identificación y número de contacto.
A partir del caso anterior, plantear un algoritmo para dar solución al caso planteado y construir el respectivo diagrama de flujo.
Sesión 5: Variables y operaciones básicas
Posterior al diseño de interacciones básicas entre un programa y un usuario, el siguiente paso es abordar el concepto de variables y de tipos de operaciones para que puedas hacer un diseño de un algoritmo que incluye los tres momentos: entrada – proceso – salida.
¿QUÉ SABES SOBRE…?
- ¿Qué es una variable?
- ¿Qué tipos de operaciones se pueden hacer entre variables?
- ¿Cómo representar una operación entre variables?
5.1 VARIABLES Y DEFINICIÓN DE VARIABLES
Como observaste en la sesión anterior cuando se hizo el diseño de entrada de datos en el diagrama se utilizó una palabra para describir ese dato en particular, la pregunta sería, ¿Por qué no utilizar un dato de entrada particular?... Si revisamos el ejemplo en el cual se solicita al usuario que ingrese su nombre, a menos de que el programa sea para una persona en particular, no es posible determinar quién va a utilizarlo y qué nombre va a ingresar, por lo cual es necesario guardar esta información en algo denominado variable.
Una variable representa un espacio en memoria que se reserva para guardar información. Se le denomina variable porque no es posible determinar qué información va a guardar el usuario ni la cantidad de usuarios que puedan llegar a utilizar el software en un momento dado. Esto implica que, dentro del software, para definir una variable, se puede utilizar una letra o una palabra que indique que se va a separar un espacio en la memoria del dispositivo para guardar información y posterior a esto, se puede emplear para realizar operaciones. Para que puedas tener un ejemplo más aproximado de una variable, si se retoma el caso en el cual se le pide al usuario el número de identificación se podría utilizar las siguientes palabras para definir la variable:
identificacion
identificacionUsuario
id
a
Como puede observar, el software no puede determinar para qué se va a utilizar la variable ya que esto es decisión del programador, pero la recomendación es que siempre que definas variables utilices palabras que hagan referencia a la información que se va a guardar para que puedas tener un control más adecuado sobre el uso de las mismas en la construcción de todo el software. Teniendo esto en cuenta, para el ejemplo anterior, las tres primeras palabras serían apropiadas ya que cualquiera de las tres se encuentra contextualizada a la información solicitada al usuario.
Ahora bien, aunque este aspecto no afecta el diseño, debes conocer que las variables tienen algunas restricciones que dependen del lenguaje de programación utilizado:
- Deben ser definidas indicando el tipo de variable que se define: es decir, si lo que se va a guardar es información textual, numérica o booleana.
- No pueden ser definidas si se utilizan palabras reservadas por el lenguaje de programación utilizado.
Finalmente, al igual como se pueden definir variables, también se pueden definir constantes, como por ejemplo la constante PI que se emplea para diversas operaciones y funciones matemáticas.
5.2 OPERACIONES Y TIPOS DE OPERADORES
Después de que defines las variables que se requieren para guardar información solicitada al usuario, puedes emplear estas variables para hacer operaciones entre ellas. Una operación es un proceso que se realiza con información dada en un programa, sea ingresada por el usuario o definida por el desarrollador, y puede ser desde una operación matemática hasta un proceso de comparación de información.
Para plantear una operación es necesario utilizar un operador. El operador es el signo que representa la operación por ejemplo el signo “=” representa asignación mientras que el signo “/” representa división. Sin embargo, los signos que se emplean puede que varíen dependiendo del lenguaje de programación utilizado. Ahora, como en este caso este libro está enfocado al diseño, puedes utilizar los siguientes operadores en la construcción de los diagramas de flujo:
- Operadores aritméticos:

- Operadores booleanos:

Debes tener en cuenta que estos símbolos sólo los vamos a emplear para el diseño, tanto para diagramas de flujo como para diagramas de actividades, pero es muy probable que en un lenguaje de programación específico cambien.
5.3 CÓMO REPRESENTAR UNA OPERACIÓN
Las operaciones son esenciales porque permiten realizar procesos con datos, ya sean ingresados por el usuario o definidos por el programador. El diseño general para realizar una operación es la siguiente:

Un ejemplo en el cual puedes realizar un proceso es realizando un programa que multiplique dos valores y muestre el resultado en pantalla. A continuación, se muestra el diagrama para este caso:

Como puedes observar en el símbolo de proceso se efectúan dos operaciones: la primera es el producto de los dos valores, y la segunda es la asignación de este resultado a la variable producto.
5.4 CASO DE APLICACIÓN 2
Realizar cálculos matemáticos es un proceso que vas a realizar continuamente en desarrollo de software, por esta razón, vas a abordar un problema relacionado con este campo:
Situación problema:
Construir un programa que solicite al usuario que ingrese el valor de la base y la altura de un rectángulo y calcule el perímetro y área de esta figura.
Requerimientos:
El programa debe mostrar un mensaje de bienvenida
El programa debe solicitar la base y la altura del rectángulo
El programa debe calcular el perímetro y área del rectángulo de acuerdo a los datos ingresados
El programa debe imprimir en pantalla el perímetro y área encontrados
Algoritmo
De acuerdo al caso y los requerimientos establecidos, se plantea el siguiente algoritmo:
Paso 1: Mostrar al usuario el mensaje de bienvenida “Bienvenid@, este programa te permite encontrar el perímetro y área de un rectángulo”:
Paso 2: Solicitar al usuario que ingrese el valor de la base
Paso 2: Solicitar al usuario que ingrese el valor de la altura
Paso 3: Con los datos ingresados, calcular el perímetro del rectángulo empleando la ecuación perímetro = 2*base + 2*altura
Paso 4: Con los datos ingresados, calcular el área del rectángulo empleando la ecuación área = base*altura
Paso 5: Mostrar en pantalla el valor del perímetro y el valor del área
Diagrama de flujo
Teniendo en cuenta el algoritmo elaborado, el diagrama de flujo apropiado sería el siguiente:

ACTIVIDAD DE APRENDIZAJE 5
Propósito
Analizar una situación problema para plantear un algoritmo y realizar el diagrama de flujo correspondiente
Descripción
En esta actividad el estudiante deberá analizar un caso propuesto para determinar el algoritmo apropiado y realizar su correspondiente diagrama de flujo.
Criterios de evaluación (I)
Determina un algoritmo de acuerdo a un caso planteado
Construye un diagrama de flujo a partir de algoritmo determinado
Caso
Se desea construir un programa que permita calcular el área total y el volumen de un cubo.
Requerimientos
El software debe mostrar al usuario un mensaje de bienvenida
El software se debe solicitar al usuario que ingrese el valor de la longitud de uno de los lados del cubo
El software debe calcular el área total del cubo y el volumen
El software debe mostrar al usuario el valor del área y el valor del volumen del cubo.
A partir del caso anterior, plantear un algoritmo para dar solución al caso planteado y construir el respectivo diagrama de flujo.
Sesión 6: Estructuras básicas de comparación y decisión
Hasta este punto haz trabajado algoritmos secuenciales en los cuales el flujo de las acciones va en una sola dirección. Sin embargo, muchos o casi todos los problemas o necesidades que se presentan en desarrollo de software requieren de algoritmos más avanzados que contemplen la toma de decisiones. En este capítulo se abordará el proceso de diseño de este tipo de estructuras.
¿QUÉ SABES SOBRE…?
- ¿Qué es un condicional?
- ¿Qué se requiere para definir un condicional?
- ¿Cómo representar un condicional?
6.1 COMPARADORES Y CONDICIONALES
Constantemente estás tomando decisiones, desde la forma en la que te vistes hasta la forma como te expresas frente a las otras personas, y siempre las decisiones dependen de factores que pueden ser intrínsecos o extrínsecos. En desarrollo de software, cuando estás creando un programa generalmente te enfrentas a requerimientos en los cuales debes diseñar el software de tal forma que dependiendo de la información ingresada por el usuario se ejecuten unas instrucciones u otras, pero no las dos al mismo tiempo, y es aquí donde aparece la necesidad de los comparadores y de los condicionales.
Un comparador hace referencia a la comparación entre dos variables los cuales genera un valor de verdad y un condicional se refiere a la creación de la estructura que discrimina qué se debe realizar si se cumple o no el valor de verdad de una comparación. Un ejemplo bastante sencillo es solicitar en un software el género de la persona, ya que dependiendo de la respuesta el mensaje de bienvenida sería el siguiente:
• Masculino: “Bienvenido a nuestro software”
• Femenino: “Bienvenida a nuestro software”
Esto permite personalizar nuestro software haciéndolo más cercano al usuario. Sin embargo, esto implica que siempre una parte del código no se va a ejecutar para un mismo usuario.
6.2 CÓMO REPRESENTAR UN CONDICIONAL
A diferencia de los diagramas que has abordado en las sesiones anteriores, en este caso es importante que tengas en cuenta que los algoritmos que vas a crear tienen una estructura de selección, por lo cual, el esquema general de un diagrama de flujo no es lineal como se muestra a continuación:

Como puedes observar, en este caso en la comparación se abren dos flujos, uno si la comparación es verdadera y el otro si la comparación es falsa. Sólo se puede dar un valor de verdad por ejecución por lo cual solo se realizará un proceso y se dará un solo dato de salida.
Retomando el ejemplo del software que le solicita el género al usuario, como el mensaje que se imprime en pantalla depende de la información ingresada por el usuario, entonces el diagrama para este caso sería el siguiente:

6.5 CASO DE APLICACIÓN 3
Las empresas deben utilizar programas que les permita optimizar diversos tipos de procesos como por ejemplo el de establecer de forma correcta y acertada la nómina de los empleados. El caso que se describe a continuación está relacionado con este contexto:
Situación problema:
Construir un programa que le permita al usuario calcular los aportes a seguridad social y el valor de retención en la fuente de acuerdo al salario ingresado.
Requerimientos:
El programa debe solicitar al usuario que ingrese el género
El programa debe mostrar al usuario un mensaje de bienvenida dependiendo del valor de género ingresado
El programa debe solicitar al usuario que ingrese el valor de su salario
Si el valor ingresado por el usuario es menor o igual a 4 salarios mínimos sólo se debe calcular el valor de los aportes a seguridad social (4%), sino, se debe calcular adicionalmente el valor de retención en la fuente (1%)
El programa debe imprimir en pantalla el valor de cada descuento y el total que recibe después de hacer los descuentos
Algoritmo
De acuerdo al caso y los requerimientos establecidos, se plantea el siguiente algoritmo:
Paso 1: Solicitar al usuario que indique si es género masculino o femenino
Paso 2: Si el usuario indicó que el género es masculino mostrar en pantalla el mensaje “Bienvenido, este software te permite calcular el valor de los aportes a seguridad social y retención en la fuente de acuerdo a tu salario”; si el usuario indicó que el género es femenino mostrar en pantalla el mensaje “Bienvenida, este software te permite calcular el valor de los aportes a seguridad social y retención en la fuente de acuerdo a tu salario”.
Paso 3: Solicitar al usuario que ingrese el valor de su salario
Paso 4: Si el usuario ingresó un salario menor o igual a 4 SMLV calcular los aportes a seguridad social; sino, entonces calcular los aportes a seguridad social y la retención en la fuente.
Paso 5: Calcular el valor Neto que recibe el usuario después de realizar los descuentos.
Paso 6: Mostrar en pantalla el valor de cada descuento y el valor neto que recibe el empleado.
Diagrama de flujo
Teniendo en cuenta lo anterior, el diagrama de flujo correspondiente a este algoritmo es el siguiente:


ACTIVIDAD DE APRENDIZAJE 6
Propósito
Analizar una situación problema para plantear un algoritmo y realizar el diagrama de flujo correspondiente
Descripción
En esta actividad el estudiante deberá analizar un caso propuesto para determinar el algoritmo apropiado y realizar su correspondiente diagrama de flujo.
Criterios de evaluación (I)
Determina un algoritmo de acuerdo a un caso planteado
Construye un diagrama de flujo a partir de algoritmo determinado
Caso
La hamburguesería “Tayrona Express” requiere un software que le permita calcular el valor a pagar de un usuario por la compra de sus hamburguesas. Esta hamburguesería vende dos tipos de hamburguesas: sencillas y dobles; y permite dos tipos de pago: efectivo o tarjeta de crédito. Las hamburguesas sencillas cuestan $9.000 y las dobles cuestan $13.000; pero si el método de pago elegido por el usuario es por tarjeta de crédito, se cobra un 8% adicional al valor de la compra.
Requerimientos
- El software debe mostrar al usuario un mensaje de bienvenida
- El software se debe solicitar al usuario que ingrese la cantidad de hamburguesas que compró para cada tipo de hamburguesa
- El software debe solicitar al usuario que elija la forma de pago
- El software debe mostrar al usuario el valor total a pagar por su pedido
A partir del caso anterior, plantear un algoritmo para dar solución al caso planteado y construir el respectivo diagrama de flujo.
Sesión 7: Estructuras básicas de repetición
Las estructuras de selección permiten tomar decisiones, pero no permite controlar cuántas veces se debe ejecutar un procedimiento o acción dentro de un programa. En esta sesión se abordarán los conceptos básicos para diseñar diferentes tipos de estructuras de repetición haciendo uso de los ciclos.
¿QUÉ SABES SOBRE…?
- ¿Qué es un ciclo?
- ¿Qué tipos de ciclos existen?
- ¿Cómo representar un ciclo?
7.1 CICLOS Y TIPOS DE CICLOS
Así como existen situaciones o problemas en los cuales se deben hacer comparaciones para tomar decisiones, también existen situaciones o problemas en los cuales es necesario repetir procesos dependiendo de los requerimientos del programa, y para esto se utiliza el concepto de ciclo.
Un ciclo representa un proceso que se repite un número determinado de veces, esto puede depender de los parámetros ingresados por el desarrollador o por información ingresada por el usuario. Generalmente se le denomina estructura de repetición precisamente por su definición.
Con los ciclos debes tener bastante cuidado ya que se deben programar para que puedan finalizar en algún momento, ya que de lo contrario estarías creando ciclos infinitos lo cual implica que el proceso se ejecuta indefinidamente generando inconvenientes en la ejecución y en el uso de los recursos de hardware de los dispositivos.
Respecto a esto, existen dos tipos de ciclos: ciclos con delimitador fijo (ciclos for) y ciclos controlados por centinela (ciclos while). En los ciclos con delimitador fijo se conoce exactamente cuántas veces se va a repetir un ciclo y cuando finaliza mientras que en los ciclos controlados por centinela no se conoce cuántas veces se va a repetir el ciclo ya que depende del valor de verdad de una comparación. Un ejemplo de cada tipo de ciclo se muestra a continuación:

En ese sentido, dependiendo de los requerimientos debes establecer cuál es el ciclo más apropiado para desarrollar de forma correcta tu software.
7.2 CÓMO REPRESENTAR UN CICLO
Para representar un ciclo es necesario utilizar el esquema que se emplea para una estructura de comparación, como se muestra a continuación:

En este caso se está comparando en cada ciclo si la variable “contador” es igual al número final definido por el desarrollador, lo que implica que hay control sobre la cantidad de veces que se repite el ciclo, es decir, un ciclo FOR. En el siguiente ejemplo se muestra como diseñar un ciclo tipo WHILE.

De igual forma, se puede diseñar un ciclo WHILE en el cual primero se realice el proceso y luego se realice la comparación para determinar si se ejecuta de nuevo el ciclo o no. Sin embargo, como puedes observar, en este diseño no es claro cuántas veces se debe ejecutar el ciclo, porque esto depende de la comparación que se haga y así mismo esta comparación depende de los datos ingresados por el usuario.
7.3. CASO DE APLICACIÓN 4
Cuando construyes software, uno de las actividades que debes realizar es crear menús que permitan a los usuarios ejecutar procesos tantas veces como lo deseen. Por esta razón, en este caso vamos a abordar un ejemplo en el cuál se requiere la creación de un menú.
Situación problema:
Construir un programa que le permita al usuario realizar operaciones básicas entre dos números ingresados.
Requerimientos:
El programa debe mostrar al usuario un mensaje de bienvenida personalizado
El programa debe mostrar al usuario un menú con 5 opciones: 1. Suma, 2. Resta, 3. Producto, 4. Cociente, 5. Salir.
El programa debe ejecutar la operación correspondiente dependiendo de la elección del usuario.
Posterior a la ejecución de alguna selección, se le debe mostrar al usuario de nuevo el menú.
El programa solo finalizará si el usuario selecciona la opción Salir
Algoritmo
De acuerdo al caso y los requerimientos establecidos, se plantea el siguiente algoritmo:
Paso 1: Solicitar al usuario que ingrese el género
Paso 2: Si el usuario ingresó el género masculino, mostrar al usuario el siguiente mensaje de bienvenida: “Bienvenido, este programa te permite realizar operaciones básicas”; si por el contrario ingresó femenino, mostrar al usuario el siguiente mensaje: “Bienvenida, este programa te permite realizar operaciones básicas”
Paso 3: Solicitar al usuario que ingrese los dos valores que va a operar.
Paso 4: Mostrar al usuario un menú con las opciones solicitadas en los requerimientos:
- Suma
- Resta
- Producto
- Cociente
- Salir
Paso 5: Si el usuario elige suma, realizar esta operación entre los dos valores ingresados y mostrar el resultado.
Paso 6: Si el usuario elige resta, realizar esta operación entre los dos valores ingresados y mostrar el resultado.
Paso 7: Si el usuario elige producto, realizar esta operación entre los dos valores ingresados y mostrar el resultado.
Paso 8: Si el usuario elige cociente, realizar esta operación entre los dos valores ingresados y mostrar el resultado.
Paso 9: Si el usuario elige la opción salir, se termina la ejecución del programa.
Diagrama de flujo
Teniendo en cuenta lo anterior, el diagrama de flujo correspondiente a este algoritmo es el siguiente:

Como puedes observar, en esta primera parte se solicita al usuario que ingrese el género para mostrar el mensaje de bienvenida personalizado y posterior a esto solicitar los dos valores que se van a operar dependiendo de la selección del usuario. Esto correspondería con los 3 primeros pasos descritos en el algoritmo.

Posterior al ingreso de información, en este diagrama se puede evidenciar cómo se muestra al usuario el menú correspondiente y dependiendo de la respuesta ingresada se ejecuta una acción determinada. Al finalizar cada procedimiento, la línea conecta de nuevo con el menú lo cual indica que siempre se va a ejecutar el menú hasta que el usuario no seleccione la opción 5 el cual lleva a la finalización del programa.
Este ejemplo del menú hace referencia a un algoritmo en el cual se aplica un ciclo controlado por centinela o ciclo While, ya que no sabemos cuántas veces el usuario va a realizar las operaciones del menú.
ACTIVIDAD DE APRENDIZAJE 7
Propósito
Analizar una situación problema para plantear un algoritmo y realizar el diagrama de flujo correspondiente
Descripción
En esta actividad el estudiante deberá analizar un caso propuesto para determinar el algoritmo apropiado y realizar su correspondiente diagrama de flujo.
Criterios de evaluación (I)
Determina un algoritmo de acuerdo a un caso planteado
Construye un diagrama de flujo a partir de algoritmo determinado
Caso
Un aprendiz de desarrollo de videojuegos está creando un personaje para un videojuego el cual tiene asociadas, inicialmente, tres variables: puntos de vida, puntos de magia y experiencia. El personaje tiene los siguientes valores ya predefinidos:
Puntos de Vida = 1500
Puntos de Magia = 1200
Experiencia = 0
El aprendiz debe crear un programa básico que le permita realizar 2 acciones, la primera es aumentar los puntos de vida sacrificando puntos de magia, y la segunda es aumentar los puntos de magia sacrificando los puntos de vida. La primera acción da 3 puntos de experiencia y la segunda 2 puntos de experiencia. Cada vez que se realice la primera acción, el personaje obtendrá 100 puntos de vida sacrificando 150 puntos de magia; y para la segunda obtendrá 80 puntos de magia sacrificando 60 puntos de vida.
Requerimientos
El software debe mostrar al usuario un mensaje de bienvenida
El software se debe mostrar al usuario un menú con 3 opciones: Aumentar puntos de vida, aumentar puntos de magia y salir.
El software debe realizar las operaciones correspondientes a la acción seleccionada por el usuario de acuerdo a la descripción del caso.
El menú se debe repetir tantas veces como el usuario lo desee
Si los puntos de vida o los puntos de magia llegan a ser menores o iguales a cero, se le debe mostrar al usuario un mensaje indicando que ya no puede realizar la acción que implique sacrificar puntos de vida o puntos de magia respectivamente.
Si el usuario elige la opción salir, se le debe mostrar al usuario un mensaje indicando los puntos de vida, los puntos de magia y la experiencia que tuvo al final.
A partir del caso anterior, plantear un algoritmo para dar solución al caso planteado y construir el respectivo diagrama de flujo.