El material didáctico sobre Estructuras de control y Condicionales va dirigido al grupo de estudiantes de la asignatura programación de la "Tecnología Superior en Administración de Infraestructuras y Plataformas Tecnológicas", interesados en aprender a programar y desarrollar habilidades técnicas en el área. Estos estudiantes pueden variar en edad, desde adolescentes hasta adultos, y pueden tener diferentes niveles de experiencia previa en programación.
Las motivaciones de este grupo de estudiantes pueden ser diversas, desde el deseo de crear su propio software, hasta la búsqueda de una carrera en el desarrollo de software. También pueden tener intereses específicos en cuanto a los lenguajes de programación que desean aprender, enfocándose en el desarrollo web, la inteligencia artificial, la programación de sistemas, entre otros.
En cuanto a las formas de aprender, este grupo tiene diferentes preferencias, desde el estudio individual, hasta la enseñanza en el aula o en línea(por pertenecer a una carrera d emodalidad hibrida), y la práctica a través de proyectos y ejercicios.
Las dificultades en el aprendizaje que este grupo puede enfrentar incluyen la comprensión de conceptos técnicos avanzados, la aplicación de los conceptos en la práctica, y la motivación y disciplina necesarias para el aprendizaje constante.
El objetivo de este material didáctico es brindar una experiencia de aprendizaje completa y accesible a los estudiantes de programación. Se busca fomentar el aprendizaje activo y práctico, permitiendo a los estudiantes aplicar los conceptos de programación en la resolución de problemas reales y proyectos prácticos. Se espera generar una comprensión sólida de los lenguajes de programación y su aplicación en diferentes contextos.
La estructura del material se dividirá en secciones que aborden los conceptos básicos de la programación y los lenguajes de programación, seguido de secciones más avanzadas para cubrir temas específicos en profundidad. Se incluirán ejercicios prácticos y proyectos en cada sección para que los estudiantes puedan aplicar lo que han aprendido y construir su propio software.
El material se distribuirá a través de plataformas en línea (Moodle), para que los estudiantes puedan acceder a él desde cualquier lugar y en cualquier momento. Además, se promoverá la interacción y el aprendizaje colaborativo entre los estudiantes a través de foros de discusión.
2. El material didáctico sobre Estructuras de control y Condicionales va dirigido al grupo de estudiantes de la asignatura
programación de la "Tecnología Superior en Administración de Infraestructuras y Plataformas Tecnológicas",
interesados en aprender a programar y desarrollar habilidades técnicas en el área. Estos estudiantes pueden variar en
edad, desde adolescentes hasta adultos, y pueden tener diferentes niveles de experiencia previa en programación.
Las motivaciones de este grupo de estudiantes pueden ser diversas, desde el deseo de crear su propio software, hasta
la búsqueda de una carrera en el desarrollo de software. También pueden tener intereses específicos en cuanto a los
lenguajes de programación que desean aprender, enfocándose en el desarrollo web, la inteligencia artificial, la
programación de sistemas, entre otros.
En cuanto a las formas de aprender, este grupo tiene diferentes preferencias, desde el estudio individual, hasta la
enseñanza en el aula o en línea(por pertenecer a una carrera d emodalidad hibrida), y la práctica a través de proyectos
y ejercicios.
Las dificultades en el aprendizaje que este grupo puede enfrentar incluyen la comprensión de conceptos técnicos
avanzados, la aplicación de los conceptos en la práctica, y la motivación y disciplina necesarias para el aprendizaje
constante.
Descripción sobre Material Didáctico
3. El objetivo de este material didáctico es brindar una experiencia de aprendizaje completa y accesible a los estudiantes de
programación. Se busca fomentar el aprendizaje activo y práctico, permitiendo a los estudiantes aplicar los conceptos de
programación en la resolución de problemas reales y proyectos prácticos. Se espera generar una comprensión sólida de los
lenguajes de programación y su aplicación en diferentes contextos.
La estructura del material se dividirá en secciones que aborden los conceptos básicos de la programación y los lenguajes de
programación, seguido de secciones más avanzadas para cubrir temas específicos en profundidad. Se incluirán ejercicios
prácticos y proyectos en cada sección para que los estudiantes puedan aplicar lo que han aprendido y construir su propio
software.
El material se distribuirá a través de plataformas en línea (Moodle), para que los estudiantes puedan acceder a él desde
cualquier lugar y en cualquier momento. Además, se promoverá la interacción y el aprendizaje colaborativo entre los
estudiantes a través de foros de discusión.
Descripción sobre Material Didáctico
4. UNIDAD 1.
OBJETIVO
Aplicar las diferentes estructuras de
control dentro de la especificación de
un algoritmo.
Estructura de
Control y
Condicionales
5. UNIDAD 1.
UNIDAD DIDÁCTICA 1
1.1 Qué es el control de flujo.
1.2 Flujo Secuencial
1.3 Estructuras de Decisión.
1.4 Estructura de Repetición e
Iteración
Estructura de
Control y
Condicionales
6. Control de flujo
Flujo =Orden en la que se ejecutan las sentencias de un programa.
• El flujo es secuencial si no se especifica otra cosa.
• Este tipo de flujo significa que las sentencias se ejecutan en secuencia, una después de otra, en el
orden en que se sitúan dentro del programa.
• Para cambiar esta situación se utilizan las estructuras que permiten modificar el flujo secuencial del
programa.
• Así, las estructuras de selección se utilizan para seleccionar las sentencias que se han de ejecutar a
continuación y las estructuras de repetición (repetitivas o iterativas) se utilizan para repetir un
conjunto de sentencias.
7. Estructuras de Control:
Secuenciales :
Definen el orden de ejecución
de las instrucciones, se ejecutan
secuencialmente.
Instrucción 1
Instrucción 2
Instrucción 3
11. If…
La estructura de control if ... permite que un programa ejecute unas instrucciones cuando se cumplan una
condición.
Sintaxis de la sentencia condicional if ...
if condición:
Bloque de instrucciones
La ejecución de esta construcción es la siguiente:
•La condición se evalúa siempre.
• Si el resultado es True se ejecuta el bloque de sentencias
• Si el resultado es False no se ejecuta el bloque de sentencias.
12. If… Diagrama de flujo de la sentencia condicional condicional if
13. If… Diagrama de flujo de la sentencia condicional condicional if
14. If… Diagrama de flujo de la sentencia condicional condicional if
15. If… Diagrama de flujo de la sentencia condicional condicional if
16. If… Diagrama de flujo de la sentencia condicional condicional if
17. If… Diagrama de flujo de la sentencia condicional condicional if
18. If…Else…
Sintaxis de la sentencia condicional if ... else ...
if condición:
Bloque de Instrucciones 1
else:
Bloque de Instrucciones 2
La ejecución de esta construcción es la siguiente:
•La condición se evalúa siempre.
• Si el resultado es True se ejecuta solamente el bloque de instrucciones 1
• Si el resultado es False se ejecuta solamente el bloque de instrucciones 2.
26. If…Elif…Else…
La estructura de control if ... elif ... else ... permite encadenar varias condiciones. elif es una contracción de else if.
La sintaxis de la construcción if ... elif ... else ... es la siguiente:
if condición_1:
bloque 1
elif condición_2:
bloque 2
else:
bloque 3
•Si se cumple la condición 1, se ejecuta el bloque 1
•Si no se cumple la condición 1 pero sí que se cumple la
condición 2, se ejecuta el bloque 2
•Si no se cumplen ni la condición 1 ni la condición 2, se ejecuta
el bloque 3.
27. If…Elif…Else…
Esta estructura es equivalente a la siguiente estructura de if ... else ... anidados:
if condición_1:
bloque 1
else:
if condición_2:
bloque 2
else:
bloque 3
Se pueden escribir tantos bloques elif como sean necesarios. El bloque else (que es opcional) se ejecuta
si no se cumple ninguna de las condiciones anteriores.
38. Estructura de Repetición e Iteración
• La estructura de repetición o bucle hace posible la ejecución repetida de una o más
instrucciones.
• Las estructuras de repetición nos permiten ejecutar varias veces unas mismas líneas de código
• Estas estructuras describen procesos que se repiten varias veces en la solución del problema.
• El conjunto de acciones que se repiten conforman el cuerpo del bucle y cada ejecución del
cuerpo del bucle se denomina iteración
• En Python tenemos:
• While
• For
39. While
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras se cumpla una
condición (es decir, mientras la condición tenga el valor True).
La sintaxis del bucle while es la siguiente:
while condicion:
cuerpo del bucle
• Si el resultado es True se ejecuta el cuerpo del bucle. Una vez ejecutado el cuerpo del bucle, se
repite el proceso (se evalúa de nuevo la condición y, si es cierta, se ejecuta de nuevo el cuerpo del
bucle) una y otra vez mientras la condición sea cierta.
• Si el resultado es False, el cuerpo del bucle no se ejecuta y continúa la ejecución del resto del
programa.
La variable o las variables que aparezcan en la condición se suelen llamar variables de control. Las
variables de control deben definirse antes del bucle while y modificarse en el bucle while.
54. While
Por ejemplo, el siguiente programa escribe los números del 1 al 3:
i = 1
while i <= 3:
print(i)
i += 1
print("Programa terminado")
55. While
Pide un número positivo al usuario una y otra vez hasta que el usuario lo haga correctamente:
numero = int(input("Escriba un número positivo: "))
while numero < 0:
print("¡Ha escrito un número negativo! Inténtelo de nuevo")
numero = int(input("Escriba un número positivo: "))
print("Gracias por su colaboración")
56. While
Escriba SI para continuar.
¿Desea continuar el programa?: sí
¿Desea continuar el programa?: sí
¿Desea continuar el programa?: NO
¡Hasta la vista!
57. While
• Escriba un programa que solicite una contraseña (el texto de la contraseña no es importante) y la
vuelva a solicitar hasta que las dos contraseñas coincidan.
• Escriba un programa que simule una alcancía. El programa solicitará primero una cantidad, que
será la cantidad de dinero que queremos ahorrar. A continuación, el programa solicitará una y
otra vez las cantidades que se irán ahorrando, hasta que el total ahorrado iguale o supere al
objetivo. Comprobar que no se puede retirar mas dinero de lo que tengo ahorrado.
• Sobre el ejercicio de la alcancía no permita que se ingresen cantidades negativas. (es decir no
permita que el usuario saque dinero)
58. For
Qué es un iterable?
Un iterable es un objeto que se puede iterar sobre él, es decir, que permite recorrer sus elementos uno a uno.
Un bucle for es un bucle que repite el bloque de instrucciones un número prederminado de
veces. El bloque de instrucciones que se repite se suele llamar cuerpo del bucle y cada repetición
se suele llamar iteración.
59. For
La sintaxis de un bucle for es la siguiente:
for variable in elemento iterable (lista, cadena, range, etc.):
cuerpo del bucle
El cuerpo del bucle se ejecuta tantas veces como elementos tenga el elemento recorrible
60. For Testigos, contadores y acumuladores
En muchos programas se necesitan variables que indiquen si simplemente ha ocurrido algo
(testigos), o que cuenten cuántas veces ha ocurrido algo (contadores), o que acumulen valores
(acumuladores). Las situaciones pueden ser muy diversas
Testigo
Se entiende por testigo una variable que indica simplemente si una condición se ha cumplido o no.
61. For
import random
print("Comienzo")
sacaste_cinco = False
for i in range(3):
dado = random.randrange(1, 7)
print(f"Tirada {i + 1}: {dado}")
if dado == 5:
sacaste_cinco = True
if sacaste_cinco:
print("Ha salido al menos un 5.")
else:
print("No ha salido ningún 5.")
print("Final")
Comienzo
Tirada 1: 3
Tirada 2: 5
Tirada 3: 1
Ha salido al menos un 5.
Final
Ejemplo de testigo
Detalles importantes:
•Antes del bucle se debe dar un valor inicial al testigo (en este
caso, False)
•En cada iteración, el programa comprueba si dado es 5.
•El testigo se modifica la primera vez que la variable i es 5.
•El testigo no cambia a False una vez ha cambiado True.
•Se podría haber utilizado un range(1, 4) para poder escribir la
tirada escribiendo {i} en vez de {i + 1}.
62. For
Contador
Se entiende por contador una variable que lleva la cuenta del número de veces que se ha cumplido una condición.
import random
print("Comienzo")
Cuenta_cincos =0
for i in range(3):
dado = random.randrange(1, 7)
print(f"Tirada {i + 1}: {dado}")
if dado == 5:
cuenta_cinco += 1
print(“En total han salido.“, cuenta_cincos)
print("Final")
Comienzo Tirada 1: 5
Tirada 2: 1
Tirada 3: 5
En total ha(n) salido 2.
Final
63. For
Detalles importantes:
•Antes del bucle se debe dar un valor inicial al contador (en este caso, 0)
•En cada iteración, el programa comprueba si dado es 5.
•El contador se modifica sólo si la variable dado es cinco.
•El contador va aumentando de uno en uno.
•Si la frase indicando el número de cincos obtenidos se quisiera adaptar al número de
cincos obtenidos (por ejemplo, "no se han obtenido cincos", "sólo se ha obtenido un
cinco" o "se han obtenido XX cincos") se debería utilizar una estructura if ... elif ... else ...
64. For
Acumulador
Se entiende por acumulador una variable que acumula el resultado de una operación.
import random
print("Comienzo")
total = 0
for i in range(3):
dado = random.randrange(1, 7)
print(f"Tirada {i + 1}: {dado}")
total += dado
print("En total ha obtenido {total} punto(s).")
print("Final")
Comienzo
Tirada 1: 3
Tirada 2: 2
Tirada 3: 6
En total ha obtenido 11 punto(s).
Final
65. For
Detalles importantes:
•El acumulador se modifica en cada iteración del bucle (en este caso, el valor de dado se
añade al acumulador total).
•Antes del bucle se debe dar un valor inicial al acumulador (en este caso, 0)
•Si la frase indicando el número de puntos obtenidos se quisiera adaptar al número de
puntos obtenidos (por ejemplo, "sólo se ha obtenido un puntos" o "se han obtenido XX
puntos") se debería utilizar una estructura if ... else ...
66. Bucle for en diccionarios
Un caso es especial de bucle for se da al recorrer los elementos de un diccionario. Dado que un
diccionario está compuesto por pares clave/valor, hay distintas formas de iterar sobre ellas.
1 – Recorrer las claves del diccionario.
valores = {'A': 4, 'E': 3, 'I': 1, 'O': 0}
for k in valores:
print(k)
A
E
I
O
67. 2 – Iterar sobre los valores del diccionario
valores = {'A': 4, 'E': 3, 'I': 1, 'O': 0}
for v in valores.values():
print(v)
4
3
1
0
3 – Iterar a la vez sobre la clave y el valor de cada uno de los elementos del diccionario.
valores = {'A': 4, 'E': 3, 'I': 1, 'O': 0}
for k, v in valores.items():
print('k=', k, ', v=', v)
k=A, v=4
k=E, v=3
k=I, v=1
k=O, v=0
68. for y la clase range
Se usa para implementar y/o simulamor en Python el bucle for basado en una
secuencia numérica.
Python pone a nuestra disposición la clase range (en Python 2 era una función). El
constructor de esta clase, range(max), devuelve un iterable cuyos valores van desde 0
hasta max - 1.
for i in range(11):
print(i)
0
1
2
...
10
69. El tipo de datos range se puede invocar con uno, dos e incluso tres parámetros:
range(max): Un iterable de números enteros consecutivos que empieza en 0 y acaba en
max - 1
range(min, max): Un iterable de números enteros consecutivos que empieza en min y
acaba en max - 1
range(min, max, step): Un iterable de números enteros consecutivos que empieza en
min acaba en max - 1 y los valores se van incrementando de step en step. Este último
caso simula el bucle for con variable de control.
70. For
Mostrar por pantalla los números pares del 0 al 10 podríamos usar la función range
for num in range(0, 11, 2):
print(num)
0
2
4
6
8
10
71. Modificando la iteración del bucle for: break y continue
Por último, vamos a ver que es posible alterar la iteración de un bucle for en Python. Para ello,
nos valdremos de las sentencias break y continue
• break se utiliza para finalizar y salir el bucle, por ejemplo, si se cumple alguna condición.
• continue salta al siguiente paso de la iteración, ignorando todas las sentencias que le
siguen y que forman parte del bucle.
72. Uso de break. Encontrar un elemento en una colección
coleccion = [2, 4, 5, 7, 8, 9, 3, 4]
for e in coleccion:
if e == 7:
break
print(e)
73. Uso de continue. Imprimir solo los números pares de una colección
coleccion = [2, 4, 5, 7, 8, 9, 3, 4]
for e in coleccion:
if e % 2 != 0:
continue
print(e)
74. For anidados
Es posible anidar los for, es decir, meter uno dentro de otro. Esto puede ser muy útil si
queremos iterar algún objeto que en cada elemento, tiene a su vez otra clase iterable.
Podemos tener por ejemplo, una lista de listas, una especie de matriz.
lista = [[56, 34, 1],
[12, 4, 5],
[9, 4, 3]]
Si iteramos usando sólo un for, estaremos realmente accediendo a la segunda lista, pero no a los
elementos individuales.
for i in lista:
print(i)
#[56, 34, 1]
#[12, 4, 5]
#[9, 4, 3]
75. For anidados
Si queremos acceder a cada elemento individualmente, podemos anidar dos for. Uno de
ellos se encargará de iterar las columnas y el otro las filas.
for i in lista:
for j in i:
print(j)
# Salida: 56,34,1,12,4,5,9,4,3
76. La evaluación de la unidad 1 se llevara acabo el sábado 25 /02/2023