Es importante recordar la Tabla de la Verdad que nos da la lógica, y la cual es una herramienta fundamental al escribir programas con condicionales.
Los conectores lógicos a recordar o estudiar aquí, son:
Dé clic en una celda de texto y escriba la tabla en lenguaje HTML:
Prueba toda la tabla de la verdad dada, como se indica:
Inicie con las proposiciones p y q en false como se ilustró en la imagen previa, luego p en false y q en true y así sucesivamente hasta abarcar todas las posibilidades.
En python se ejecuta el código de arriba a abajo. Las sentencias del código se ejecutan según el orden en el que aparecen. Sin embargo, Python proporciona sentencias que se pueden utilizar para controlar el flujo del código. Dichas sentencias se denominan sentencias de flujo de control.
Python proporciona tres tipos de sentencias de flujo de control.
- Sentencias de toma de decisiones
- sentencias if
- sentencia match (o adaptar el switch de otros lenguajes)
- sentencias de ciclo o bucle
- bucle while
- bucle for
- bucle for-in
- sentencias de Salto o salida
-sentencia break
- sentencia continue
Antes de tratar los condicionales, es importante mirar los símbolos para comparar entre dos variables. En python se tienen los siguientes operadores de comparación:
Juan tiene 20 años y Jesús tiene 18. Use los operadores de comparación con estas edades. En python es:
Estas deciden qué sentencia ejecutar y cuándo. Las sentencias de toma de decisiones evalúan la expresión booleana y controlan el flujo del programa según el resultado de la condición proporcionada. Hay dos tipos de sentencias de toma de decisiones en Java, es decir, la sentencia if y la sentencia match.
1) Sentencia if: La sentencia "if" se utiliza para evaluar una condición. El control del programa se desvía según la condición específica. La condición de la sentencia if da un valor booleano, ya sea verdadero o falso. En Python, hay cuatro tipos de sentencias if: - Sentencia if simple - Sentencia if-else - Escalera if-elif-else - Sentencia if anidada
La estructura del condicional if-else es:
Aquí es donde Python se diferencia de otros lenguajes, ya que al abrir un condicional if-else se crea un bloque y este debe estar indentado (sangría o espacio).
Dada la nota de un estudiante, escribir si ha aprobado con la condición de notas mayores o iguales que 3.0, o reprobado si no cumple esta condición.
Programa para comprobar si el número ingresado es positivo o negativo (use if y else). Como solo hay dos posibilidades, se toma la primera (>0) para probar si es positivo, y si no lo es, puede ser cero o negativo.
Observe que la línea 6 final está fuera del condicional y de esta manera no debe tener indentación.
Observe el código:
Para escribir en PSeInt, en el momento de escribir el condicional puede presionar la herramienta Si-Entonces como se observa a continuación:
Al dar clic se muestra el pseudocódigo como:
Dé doble click sobre expresion_logica y las otras partes necesarias para completar el código como se muestra:
Al crear el diagrama de flujo, se tiene la forma romboidal para la condición con las dos salidas de acuerdo a si la condición lógica es verdadera o falsa:
Ahora vamos a ampliar el programa Hola Mundo! con condicionales, en este caso el programa pide el nombre, edad y género para enviar el saludo. Observe el código:
Observe cómo en el bloque del condicional se debe tener la indentación. También observe el comando .upper, el usuario puede escribir H o h y siempre toma el valor en mayúscula.
Esta estructura del condicional es para evaluar varias condiciones. La estructura es:
Elabore un programa para establecer el estado físico del agua según la temperatura en grados celsius a condiciones de 1 atmósfera de presión, teniendo en cuenta:
- 0° C: Punto de fusión, por debajo de cero es sólido (hielo), a cero se funde a agua líquida. - 100 ° C: punto de ebullición del agua, por encima el agua está en estado gaseoso (vapor).
De acuerdo al punto de fusión y ebullicion del agua, se tiene que los estados físicos del agua según la temperatura en Celsius, son:
Claramente a 0° C que es el punto de fusión (o congelamiento) el agua está pasando de sólido a líquido (si se calienta) o viceversa, de líquido a sólido si se enfría.
Así mismo, a 100° C que es el punto de ebullición, el agua está pasando de líquido a vapor (si se calienta) o de vapor a líquido.
Por simplicidad se hace el programa como se muestra a continuación:
Al realizar este programa en PSeInt, se requiere hacer otro bloque Si-Entonces para decidir sobre la segunda condición (punto de ebullición), esto es otro bloque Si-Entonces que está dentro o anidado, luego el programa es:
y de esta manera se obtiene el diagrama de flujo, con los términos más populares como hielo y vapor, el cual es como se espera:
En una institución ofrecen un curso sin créditos académicos de Física Cero de forma virtual a los estudiantes de primer semestre de Ingenierías. Si el estudiante aprueba este curso, tiene una bonificación en el curso con créditos de Álgebra Lineal (AL) según:
- Física Cero en 4.0 o más: Bono de 0.2 en nota de A.L. - Física Cero entre 3.0 - 3.9: Bono de 0.1 en nota de A.L. - Sin bono si tiene menos de 3.0 en Física Cero.
Observe una posible solución:
En este caso se utiliza la estructura if-elif-else, observe que como hay dos condiciones de bonificación, en el primer if se prueba la condición ≥ 4.0, mientras en el elif se prueba la segunda condición ≥ 3.0 teniendo en cuenta que se evalúa esta segunda condición cuando la primera condición es false. Si ninguna de las dos condiciones se cumple, se llega al else en que no hay bono.
También observe la línea 7, en que se puede hacer de cualquiera de las formas:
AL = AL + 0.2 AL = AL + bono AL += 0.2 AL +=bono
Es decir, La nueva nota de AL es la actual más un incremento de ...
También se puede tener un decremento con -=, así como otros según:
y += x #Incrementa y en un valor x y -= x #Decrementa y en un valor x y *= x #Amplifica y por un factor x y /=x #Divide y entre x
Observe el ejemplo:
Se ingresan tres números, ordenarlos de menor a mayor.
La solución sigue los pasos
Datos de entrada: Los números x, y, z Definir tres variables: Mayor, Menor, Medio. - Con condicionales asignar Mayor al número más grande. - Con condicionales asignar Menor al número más pequeño. - Con condicinoales asignar el valor restante al medio. Salida: Entregar Menor, Medio y mayor.
Analicemos la línea 6: la primera proposición del if es x >y, si esta es verdadera (true), entonces será el mayor si además es mayor que z que es la segunda proposición. Si alguna de las propocisiones es falsa, se prueba con la variable y, luego el else aparece en la línea 10 cuando ni x ni y son los mayores, entonces tiene que ser z el número mayor.
Para el numero menor se usa un procedimiento similar. Ejecute y revise qué pasa si hay dos números iguales