Clase 2
10/05/2025
Programación secuencial, estructuras de control y algoritmos
1. Recopilación
Partes de la computadora
Partes internas
a) Gabinete
b) Unidades ópticas
c) Fuente de poder
d) Procesador
e) CPU Cooler
f) Memoria
g) Tarjeta de gráficos
h) Tarjeta de audio
i) Tarjeta madre
j) Disco duro
Parte externa
a) Unidad de disquete
b) Unidad de CD
c) Monitor
d) Bocinas
e) Ratón o mouse
f) Impresora
La programación consiste en escribir un conjunto de instrucciones, que
con ayuda de algún lenguaje de programación son convertidas del
lenguaje natural a lenguaje máquina para que la computadora pueda
entendernos y así realizar tareas específicas.
Un programador debe realizar
1. Análisis y comprensión de requerimientos
2. Diseño y estructura de código
3. Pruebas, depuración y mantenimiento
4. Colaboración en equipos y uso de herramientas de desarrollo
(frameworks, ide’s y editores)
Paradigmas de programación
Tarea/problema Paradigma más adecuado
Algoritmos matemáticos, Secuencial
científicos (GUI)
Entidades del mundo real Poo
(Objetos)
Procesamiento de datos o IA Funcional
Reglas lógicas o IA Lógico/Funcional
Interfaces gráficas y/o videojuegos Poo
Proyectos de IA modernos Secuencial + Poo + Funcional
Los algoritmos son secuencia finita y ordenada de instrucciones o pasos
para realizar una tarea especifica o resolver un problema
Los algoritmos se utilizan en:
a) Informática: Son la base de la programación y el desarrollo del
software.
b) Matemáticas: Se utilizan para resolver problemas matemáticos y
cálculos.
c) Vida cotidiana: Desde recetas de cocina hasta instrucciones de
montaje de muebles, muchos procesos del día a día pueden ser
vistos como algoritmos.
d) Monitores de búsqueda: Los algoritmos determinan la clasificación
de los resultados de búsqueda.
e) Redes sociales: Los algoritmos influyen en lo que vemos en
nuestro FEED.
Proceso para la resolución de problemas en programación
1. Análisis del problema
1.1 Comprensión del enunciado
1.2 Restricciones y condiciones especiales
2. Recolección y organización de datos
2.1 Definir claramente los tipos de datos, sus formatos, rangos y
relaciones
2.2 ¿Qué información necesita el programa? ¿Qué resultados
debe producir?
2.3 Establecer formulas o relaciones lógicas
3. Diseño de la solución
3.1 Diagrama de flujo: Representación gráfica de la lógica del
algoritmo. Ayuda a visualizar el flujo del programa y tomar
decisiones
Símbolo Nombre Función
Inicio/Final Representa el inicio y el
final de un proceso.
Línea de Indica el orden de la
flujo ejecución de las
operaciones. La fecha
indica la siguiente
instrucción.
Entrada/ Representa la lectura de
Salida datos en la entrada y la
impresión de datos en la
salida.
Proceso Representa cualquier tipo
de operación.
Decisión Nos permite analizar una
situación, con base en los
valores verdadero y falso.
3.2 Pseudocódigo: descripción textual, similar al código, pero en
lenguaje natural o estructurado. Permite definir claramente los
pasos antes de programar.
4. Codificación
Traducir el Pseudocódigo al lenguaje de programación elegido
(Python, C++, etc.).
5. Pruebas y depuración
Probar el programa con diferentes casos, incluyendo lo límites,
corregir errores y mejorar o aumentar el código si es necesario.
6. Documentación y mantenimiento
Comentarios de código e instructivos
2. Sintaxis de Python
El término de sintaxis hace referencia al conjunto de reglas que definen
como se tiene que escribir el código en un determinado lenguaje de
programación.
Características importantes de la sintaxis de Python:
a) No usa llaves {} ni punto y coma;
b) Usa indentación (sangría) con espacios para delimitar bloques.
c) Las funciones se definen con def, y los bloques como if, while, etc.,
se declaran con dos puntos:
d) Es un lenguaje de tipado dinámico: no necesitas declarar el tipo de
variable explícitamente
Tipos de datos en Python
Los tipos de datos en Python representan la naturaleza del valor que
una variable puede almacenar. Son fundamentales porque definen que
operaciones se pueden realizar con ese valor.
Sirven para:
Ayudar al programa a entender cómo usar un dato
Permiten controlar el comportamiento de las operaciones
Facilitan la organización y manipulación de la información
Por ejemplo:
Un int (entero): 5,-12
Un float, representa decimales: 3.14, -0.5
Un str es texto o cadena de caracteres: “Hola, 123” (aunque
parezca un número, es cadena).
Un bool representa lógica: True o False.
Un list puede guardar varios valores ordenados [1,2,3]
Variables en Python
Una variable en Python es un nombre que se le da a un valor
almacenado en memoria. Permite guardar y manipular datos dentro de
un programa,
Características clave:
No necesitas declarar el tipo (Python es de tipado dinámico) es
decir se crean automáticamente al asignarles un valor
El nombre de una variable debe comenzar con una letra o guion
bajo (_), y no puede contener espacios ni empezar con un número
Variable Tipo
nombre = “Ana” Str
edad = 25 Int
pi = 3.1416 Float
es_estudiante = Bool
True
Reglas para nombrar variables:
nombre
edad1
_temp
1_edad1
nombre completo
for (palabras reservadas)
Palabras reservadas
False await else import pass
None break exce in raise
pt
True class finall is retur
y n
and continu for lamda try
e
as def from nonloc whil
al e
asse del globa not with
rt l
asyn elif if or yeild
c
Operadores aritméticos
Operad Descripción Ejemplo
or
+ Suma a+ b
- Resta a–b
* Multiplicación a∗b
/ División a /b
// División entera a /¿ b
% Modulo (residuo) a %b
** Potencia a∗¿ b
Operadores de asignación
Operad Ejempl Equivalente a
or o
¿ a=b Asignación
directa
+¿ a+ ¿ b a=a+ b
−¿ a−¿ b a=a−b
¿=¿ a∗¿ b a=a∗b
¿=¿ a /¿ b a=s/b
¿ /¿ a /¿=b a=a /¿ a
%=¿ a %=b q=a %b
¿∗¿ a∗¿=b a=a∗¿ b
Operadores lógicos (comparativos)
Operad Descripción Ejempl
or o
¿=¿ Igual a a=¿ b
!=¿ Distinto de a !=b
¿ Mayor que a> b
¿ Menor que a< b
¿ Mayor o igual a≥b
que
¿ Menor o igual a≤b
que
3. Estructuras de control
Las estructuras de control permiten que un programa tome decisiones o
repita acciones según ciertas condiciones. Son fundamentales para
construir lógica dinámica y flexible
1. Estructuras condicionales (if, if else, elif)
Permiten ejecutar bloques de código solo si se cumplen ciertas
condiciones.
2. Estructuras repetitivas (bucles “for” y “while”)
Se usan para repetir acciones varias veces según sea necesario.
a) El bucle for (para) es ideal cuando sabemos cuántas veces
repetir un proceso
b) El bucle while (mientras) es ideal cuando sabemos cuántas
veces repetir un proceso
3. Anidamiento y combinación de estructuras
Podemos combinar condicionales y bucles, o incluir unos dentro de
otros.
¿Qué es Bubble Sort?
Bubble sort es un algoritmo de ordenamiento, va comprobando partes
de elementos dentro de una lista y los intercambia si están en el orden
incorrecto. Este proceso se repite varias veces hasta que toda la lista
está ordenada.
¿Por qué se llama “burbuja”?
Porque los valores grandes van “subiendo” al final de la lista, como
burbujas que suben a la superficie del agua
¿Cómo funciona paso a paso?
Supongamos que tenemos esta lista desordenada: [ 5 ,3 ,1 , 4 ]
Paso 1: comparamos el primer par: 5 y 3 → como 5>3 los intercambiamos
→ [3 , 5 , 1 , 4 ]
Luego: 5 y 1 → como 5>1 → intercambio → [ 3 , 5 , 1 , 4 ]
Luego: 5 y 4 → como 5> 4 → intercambio → [ 3 , 1 , 4 , 5 ]
Ya hicimos una vuelta completa. El mayor ( 5 ) ye está al final.
Paso 2: Repetimos el proceso, pero ya no comparamos el último (ya está
en su lugar)
1 y 3 →3> 1→ intercambio → [ 1 , 3 , 4 , 5 ]
3 y 4 → ya están bien → no hacemos nada
Paso 3: 1 y 3 → están bien al igual que el resto → no se intercambian.
¡Listo! La lista está ordenada