edu.alceres.com

Matemáticas con Python -Clase III A-

Elementos de Lógica

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:

Ejemplo. La tabla de la verdad en ejecución

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.

Sentencias de control de flujo

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

Operadores de comparación

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:

Ejemplo

Juan tiene 20 años y Jesús tiene 18. Use los operadores de comparación con estas edades. En python es:

Sentencias de toma de decisiones

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).

Ejemplo. Aprobado o reprobado

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.

Ejemplo. Es positivo o negativo

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.

Ejemplo: Determinar si una persona es mayor o menor de edad

Observe el código:

condicional if

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:

Ejemplo: Hola Mundo! con condicionales

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:

Hola mundo con condicional

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.

Condicional forma if-elif-else

Esta estructura del condicional es para evaluar varias condiciones. La estructura es:

Ejemplo. Estados físicos del agua.

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:

programa python estado agua

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:

Pseudocodigo estado físico del agua

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:

Diagrama flujo estados físicos agua

Ejemplo. Bono

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:

programa condicional

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:

Ejemplo. Condicionales con conectores lógicos

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