SlideShare una empresa de Scribd logo
1 de 76
Descargar para leer sin conexión
PROGRAMACIÓN
ING. MARÍA BELÉN TOLEDO ILLESCAS
NOVIEMBRE 2022 – MARZO 2023
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
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
UNIDAD 1.
OBJETIVO
Aplicar las diferentes estructuras de
control dentro de la especificación de
un algoritmo.
Estructura de
Control y
Condicionales
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
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.
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
Estructuras de Control:
Condicional:
Las instrucciones se ejecutan
acorde una condición. Instrucción 1
Instrucción 2 Instrucción 3
Condición
No
Si
Estructuras de Control:
Condicional simple:
Instrucción 1
Instrucción 2 Instrucción 3
Condición
No
Si
Condicional Doble:
Instrucción 1
Instrucción 2
Condición
1 No
Si
Condición
2
Instrucción 3
Estructuras de Control:
Repetitivas(Bucles):
Las instrucciones se ejecutan
acorde una condición. Instrucción 1
Instrucción 2 Instrucción 3
Condición
No
Si
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.
If… Diagrama de flujo de la sentencia condicional condicional if
If… Diagrama de flujo de la sentencia condicional condicional if
If… Diagrama de flujo de la sentencia condicional condicional if
If… Diagrama de flujo de la sentencia condicional condicional if
If… Diagrama de flujo de la sentencia condicional condicional if
If… Diagrama de flujo de la sentencia condicional condicional if
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.
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
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.
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.
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
If…Elif…Else…
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
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.
While
While
While
While
While
While
While
While
While
While
While
While
While
While
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")
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")
While
Escriba SI para continuar.
¿Desea continuar el programa?: sí
¿Desea continuar el programa?: sí
¿Desea continuar el programa?: NO
¡Hasta la vista!
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)
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.
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
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.
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}.
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
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 ...
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
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 ...
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
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
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
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.
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
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.
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)
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)
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]
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
La evaluación de la unidad 1 se llevara acabo el sábado 25 /02/2023

Más contenido relacionado

Similar a Unidad 1: Estructuras de control y condicionales

Similar a Unidad 1: Estructuras de control y condicionales (20)

Benemérita universidad autónoma de puebla
Benemérita universidad autónoma de pueblaBenemérita universidad autónoma de puebla
Benemérita universidad autónoma de puebla
 
Estructuras de Control
Estructuras de Control Estructuras de Control
Estructuras de Control
 
Selectivas
SelectivasSelectivas
Selectivas
 
Taller Python
Taller PythonTaller Python
Taller Python
 
Introducción al PSeint
Introducción al PSeintIntroducción al PSeint
Introducción al PSeint
 
Intropseint
IntropseintIntropseint
Intropseint
 
Introducción a la Programación
Introducción a la Programación Introducción a la Programación
Introducción a la Programación
 
Sentencias de Programacion
Sentencias de ProgramacionSentencias de Programacion
Sentencias de Programacion
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
4.instrucciones de control en c++
4.instrucciones de control en c++4.instrucciones de control en c++
4.instrucciones de control en c++
 
Estructuras básicas.docx
Estructuras básicas.docxEstructuras básicas.docx
Estructuras básicas.docx
 
Estructuras
EstructurasEstructuras
Estructuras
 
Lenguajes de Programación: Estructuras de Control
Lenguajes de Programación: Estructuras de ControlLenguajes de Programación: Estructuras de Control
Lenguajes de Programación: Estructuras de Control
 
Lenguaje c
Lenguaje c Lenguaje c
Lenguaje c
 
Plan de clase
Plan de clasePlan de clase
Plan de clase
 
Semana 05 - Estructuras repetitivas (1).pptx
Semana 05 - Estructuras repetitivas (1).pptxSemana 05 - Estructuras repetitivas (1).pptx
Semana 05 - Estructuras repetitivas (1).pptx
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Recurso Educativo Lenguaje de Programaciòn C++
Recurso Educativo Lenguaje de Programaciòn C++Recurso Educativo Lenguaje de Programaciòn C++
Recurso Educativo Lenguaje de Programaciòn C++
 
Ciclos
CiclosCiclos
Ciclos
 
Open class 3_PE.pptx
Open class 3_PE.pptxOpen class 3_PE.pptx
Open class 3_PE.pptx
 

Último

6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxCeciliaGuerreroGonza1
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 

Último (20)

6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 

Unidad 1: Estructuras de control y condicionales

  • 1. PROGRAMACIÓN ING. MARÍA BELÉN TOLEDO ILLESCAS NOVIEMBRE 2022 – MARZO 2023
  • 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
  • 8. Estructuras de Control: Condicional: Las instrucciones se ejecutan acorde una condición. Instrucción 1 Instrucción 2 Instrucción 3 Condición No Si
  • 9. Estructuras de Control: Condicional simple: Instrucción 1 Instrucción 2 Instrucción 3 Condición No Si Condicional Doble: Instrucción 1 Instrucción 2 Condición 1 No Si Condición 2 Instrucción 3
  • 10. Estructuras de Control: Repetitivas(Bucles): Las instrucciones se ejecutan acorde una condición. Instrucción 1 Instrucción 2 Instrucción 3 Condición No Si
  • 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.
  • 19. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 20. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 21. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 22. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 23. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 24. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 25. If…Else… Diagrama de flujo de la sentencia condicional if ... else ...
  • 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.
  • 40. While
  • 41. While
  • 42. While
  • 43. While
  • 44. While
  • 45. While
  • 46. While
  • 47. While
  • 48. While
  • 49. While
  • 50. While
  • 51. While
  • 52. While
  • 53. 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