0% encontró este documento útil (0 votos)
94 vistas

03 IS EstructurasControl

Este documento presenta tres tipos principales de estructuras de control en programación: selección, iteración y secuencia. Describe variables booleanas y ejemplos de estructuras condicionales como if/else. También explica estructuras iterativas como while y for que permiten repetir instrucciones.

Cargado por

Juan Antonio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
94 vistas

03 IS EstructurasControl

Este documento presenta tres tipos principales de estructuras de control en programación: selección, iteración y secuencia. Describe variables booleanas y ejemplos de estructuras condicionales como if/else. También explica estructuras iterativas como while y for que permiten repetir instrucciones.

Cargado por

Juan Antonio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 40

Estructuras de control

1. Variables booleanas
2. Ejemplos de estructuras de selección
3. Estructuras iterativas: while, for

secuencia decisión iteración

instruction False bool True bool


False

True
instruction
instruction instruction
instruction
instruction
Introducción a los bool
qué son los bool

Las expresiones booleanas


permiten expresar decisiones o
condiciones complejas

Las variables bool ayudan a nombrar y


recordar estados y condiciones
2
2.4.1 Expresiones booleanas

Una expresión booleana es una expresión cuyo


resultado es un valor booleano, cierto o falso.

En aritmética normal:
2+2→4

En aritmética booleana:
6 > 5 → True
Variables y expresiones booleanas

Se pueden declarar variables booleanas.


Pueden guardar True o False.

A una variable booleana se le puede asignar


directamente un valor True o un valor False:
• mayor = False

o el resultado de una expresión booleana:


• sonIguales = (a == b) no hacen falta los paréntesis

• esSobresaliente = notaExamen >= 9


Expresiones que DEVUELVEN boolean

nota > 5 es True/False (dependerá de lo que haya en nota)

operador significado

> ¿mayor que?


los operadores de < ¿menor que?
comparación devuelven == ¿iguales?
valores booleanos ¿distintos?
!=
<= ¿menor o igual?
>= ¿mayorque
o igual?
Ejemplos:
•esAprobado = (nota >= 5) and (nota < 7)

•distintos = (a != b) # los paréntesis no son necesarios


Expresiones booleanas en general
Una expresión booleana puede ser:

• Una constate booleana (True, o False )


• Una variable booleana
• Una relación entre valores >, <, etc. ( )
nota >= 5

• Una conjunción (Y, and) o disyunción (O, or),


entre expresiones booleanas

• La negación (NO, not) de una expresión booleana


Operadores entre booleanos
• Y es la conjunción, ¿son ciertos ambos? ¿se dan a la vez?
• O es la disyunción, ¿alguno cierto? ¿se da algún valor?
• NO es la negación, cierto cuando el valor es falso

castellano Y O NO
python and or not
Matemáticas ∧ ∨ ¬
A B A⋀B A⋁B ¬A
T T T T F
T F F T F
F T F T T
F F F F T
ejercicios

Suponiendo
x contiene un número
s contiene una cadena

Construir una 1. x sea mayor que 5


expresión que sea 2. x tenga dos dígitos
cierta cuando 3. s sea una letra mayúscula
4. s sea una letra
probar en el Shell 5. s sea una vocal
usar la flecha arriba 6. x sea impar

del teclado 7. x termine en 0
8. x termine en dos ceros
Expresiones booleanas

Leyes de Morgan
•not (P and Q) ≡ (not P) or (not Q)

•not (P or Q) ≡ (not P) and (not Q)

Ejemplos:
•not( (A==B) or (A==C) ) equivale a (A != B) and (A != C)

•not( (A==B) and (C>D) ) equivale a (A != B) or (C <= D)


Expresiones booleanas
not( encontrado and (A==B) or (A==C) )

Cuando actúan varios operadores booleanos en una


expresión se tienen prioridades

•Dentro de las expresiones booleanas, el operador


negación tiene siempre la más alta prioridad y el de
disyunción la más baja.
•es como las de –a, a * b y a + b
Estructuras de control
True bool False

acción A acción B
Permiten:
mientras hacer… sigue

• ejecutar una parte u


otra del código G?
no

• repetir la ejecución …

11
s;e;c;u;e;n;c;i;a;
e c
s le ci n
ó
iteración
Selección le
p
i m si N > 100 entonces
s N = 100


N>100?
if N > 100:
no N = 100
N=100

sigue
Decisión
ejercicio

• Pedir un número y decir si es par


Selección si d < 0 entonces
i
enotrocaso
t a r
e fin si
pl ojo :
o m
c
no sí if d < 0:
d < 0?
# hace A
else:
Br Ai # hace B
else if → elif
Selección
compuesta if A:
a
elif B:
b
elif C:
A?
c
sí no else:
d
B?
sí no

C?
sí no ojo a la
a b c d
indentación
PROBLEMAS
de decisión
Decisión compuesta

Pedir la nota numérica de un


examen y escribir: suspenso,
aprobado, notable o
sobresaliente
Hacer un programa que lea del
usuario tres números enteros y
diga si están en orden
Hacer un programa que lea
del usuario TRES números
enteros y escriba el mayor
de ellos en la pantalla.
Pedir al usuario los tres coeficientes
de una ecuación de segundo grado y
escribir en pantalla si tiene raíces
complejas o no.

2
ax + bx + c = 0
Basta con calcular el discriminante
2
b 4ac
ax2 + bx + c = 0

a, b, c

no a=b=c yes
= 0?

a = 0? yes

no

d = b2 4ac

no yes
d = 0? b = 0?
no yes

no yes
d < 0?

TWO REALS
p COMPLEXS
p DOUBLE SINGLE TRIVIAL
ABSURD
( b ± d/(2a) ( b±i d/(2a) b/(2a) c/b 8x

END
🤯
Bucles
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase ¡Escribe 100 veces!
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase
“No lanzaré más
No lanzaré más avioncitos en clase avioncitos en clases”
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase
No lanzaré más avioncitos en clase

i = 0
while i < 100:
print("No lanzaré más avioncitos en clase")
i = i + 1
mientras hacer…
while guardaBooleana:
  # acciones
Se pregunta
antes de repetir,
una y otra vez
no
while
G? recorridos que no se
sabe cuándo
sí terminarán


i = 0
while i < 100:
    print("No lanzaré avioncitos en clases")
    i += 1
Ejemplo:

repetir hasta que ocurra algo sin saberse cuándo
Sumar todos los números que vaya
entrando el usuario (números reales)

hasta que introduzca el número cero
Entonces, imprimir la suma

recorridos que no se sabe al


programar cuándo terminarán
for

recorridos en rango previsto

se usan cuando nos queremos mover en


un rango que se sabe al empezar y sin
interrupciones

Es una especialización del tipo de bucle while


for i in [10, 2, -2, 4]:
    print(i)

range([start], stop[, step])

for hace que la variable nueva recorra


un rango de valores, típicamente con
range()
for i in range(10): print(i)
for
range
ejemplo uso for Iteración

range(10) → 0,1,2…,9

for i in range(10):
print("Hola ")
Hola Hola Hola Hola Hola Hola Hola Hola Hola Hola

for i in range(100):
    print("No lanzaré avioncitos en clases")
usando la variable
contadora
s = 0
for i in range(1, 10):
¡ojo,
indentación!s = s+i
print("La suma es: ", s)
PRO
BLE
MAS
Escribir en la pantalla
10 asteriscos

**********
Sumar los números impares
hasta 1000
1 + 3 + 5 + · · · + 999
Hac
erlo
s con
fo r

Sumar los números naturales


hasta 1000 1000
X
1 + 2 + 3 + 4 + · · · + 1000 =? i
i=1
Hallar el factorial de un número:
n! = 1 ⇥ 2 ⇥ 3 · · · ⇥ n
Averiguar si un número dado
es primo
Difícil
Último 12
Difícil
Hacer un programa que pida una secuencia de
números acabada en 0.

El programa irá contando las posiciones de


cada número que va entrando.

Después del bucle el programa dirá en qué


posición apareció el último 12
números
8 9 7 12 13 24 12 56 9 9 9 2 0
1 2 3 4 5 6 7 8 9 10 11 12
posiciones
Difícil Número “perfecto”

Un número es perfecto cuando él mismo es la


suma de todos sus divisores propios (¡no él!),
hacer un programa que pida un entero y diga si
es perfecto o no.

Por ejemplo:
1 + 2 + 3  = 6 → Luego 6 es perfecto
28 = 1 + 2 + 4 + 7 + 14, luego 28 también.

Los siguientes son: 496, 8.128, 33.550.336, etc


Escribir en la pantalla
𝟙 n asteriscos

**********

Escribir en la pantalla
n x n asteriscos
𝟚

****
****
****
****
fin

También podría gustarte