Computadoras y Programación · ENES Juriquilla · UNAM
Módulo 2 · Sesión 1 · Extra de práctica
Piénsalo en mapa.
Escríbelo en pasos.
Diez problemas, un reto de equipos — la misma lógica de siempre, en pseudocódigo y en
diagrama de flujo, hasta que te salga sin pensarlo.
No es contenido nuevo
Es la misma sesión, con las manos en la masa.
Repaso rápido. Diez problemas. Un reto en equipo.
Primero un repaso visual y breve de los siete conceptos de hoy. Después, diez ejercicios cortos
—de básico a intermedio— para resolver en pseudocódigo y en diagrama de flujo. Y al final, un
reto de equipos con un algoritmo real, propio, para exponer.
Repaso · 7 piezas, 2 minutos
Variable
Tipo de dato
Asignación
Entrada / Salida
Secuencia
Condicional
Ciclo
Variable · tipo de dato
edad : entero
18
altura : decimal
1.75
nombre : texto
"Ana"
activo : booleano
verdadero
Una variable es una caja con nombre. El tipo de dato dice qué clase de valor cabe adentro.
Asignación
La flecha manda: el valor de la derecha entra en la caja de la izquierda. Nunca al revés.
Entrada · salida
El mismo símbolo —paralelogramo— para los dos: algo entra al algoritmo, o algo sale de él.
Secuencia
Un paso sigue al otro, en el orden en que se escribieron. Nada más.
Condicional — SI / SINO
El rombo divide el flujo en dos caminos. Solo uno se recorre, nunca los dos.
Ciclo — MIENTRAS
El mismo rombo — pero aquí el "Sí" no avanza, regresa. Eso es un ciclo.
Ahora, a resolver
Diez problemas.
De básico a intermedio.
Cada uno en dos láminas: el problema, y la respuesta en pseudocódigo + diagrama de flujo lado a lado.
Ejercicio 1 de 10 · básico
Convertir una temperatura de Celsius a Kelvin.
K = C + 273.15
Respuesta · Ejercicio 1
Pseudocódigo
INICIO
LEER C
K ← C + 273.15
ESCRIBIR K
FIN
Diagrama
Inicio
Leer C
K ← C + 273.15
Escribir K
Fin
Ejercicio 2 de 10 · básico
Calcular el promedio de 5 calificaciones.
Respuesta · Ejercicio 2
Pseudocódigo
INICIO
LEER n1, n2, n3, n4, n5
promedio ← (n1+n2+n3+n4+n5) / 5
ESCRIBIR promedio
FIN
Diagrama
Inicio
Leer n1..n5
promedio ← suma / 5
Escribir promedio
Fin
Ejercicio 3 de 10 · básico
Decidir si un número es par o impar.
Respuesta · Ejercicio 3
Pseudocódigo
INICIO
LEER numero
SI numero MOD 2 = 0 ENTONCES
ESCRIBIR "Par"
SINO
ESCRIBIR "Impar"
FIN SI
FIN
Diagrama
Inicio
Leer numero
¿numero MOD 2 = 0?
Ejercicio 4 de 10 · intermedio
Encontrar el mayor de tres números.
Respuesta · Ejercicio 4
Pseudocódigo
INICIO
LEER a, b, c
SI a > b Y a > c ENTONCES
mayor ← a
SINO SI b > c ENTONCES
mayor ← b
SINO
mayor ← c
FIN SI
ESCRIBIR mayor
FIN
Diagrama (simplificado)
Inicio
Leer a, b, c
¿a > b y a > c?
El diagrama completo anida un segundo rombo dentro del "No" — dibújalo tú en tu cuaderno.
Ejercicio 5 de 10 · intermedio
Calcular el factorial de un número.
Respuesta · Ejercicio 5
Pseudocódigo
INICIO
LEER n
factorial ← 1
contador ← 1
MIENTRAS contador <= n HACER
factorial ← factorial × contador
contador ← contador + 1
FIN MIENTRAS
ESCRIBIR factorial
FIN
Diagrama
Inicio
Leer n
factorial←1, contador←1
¿contador <= n?
Sí
factorial ← factorial × contador; contador ← contador+1; ↺
Ejercicio 6 de 10 · intermedio
Mostrar la tabla de multiplicar de un número (1 a 10).
Respuesta · Ejercicio 6
Pseudocódigo
INICIO
LEER n
contador ← 1
MIENTRAS contador <= 10 HACER
ESCRIBIR n × contador
contador ← contador + 1
FIN MIENTRAS
FIN
Diagrama
Inicio
Leer n
¿contador <= 10?
Sí
Escribir n × contador; contador++; ↺
Ejercicio 7 de 10 · básico-intermedio
Validar que una contraseña tenga al menos 8 caracteres.
Respuesta · Ejercicio 7
Pseudocódigo
INICIO
LEER contraseña
SI LONGITUD(contraseña) >= 8 ENTONCES
ESCRIBIR "Válida"
SINO
ESCRIBIR "Muy corta"
FIN SI
FIN
Diagrama
Inicio
Leer contraseña
¿longitud >= 8?
Ejercicio 8 de 10 · intermedio
Sumar N números capturados uno por uno.
Respuesta · Ejercicio 8
Pseudocódigo
INICIO
LEER n
suma ← 0
contador ← 1
MIENTRAS contador <= n HACER
LEER numero
suma ← suma + numero
contador ← contador + 1
FIN MIENTRAS
ESCRIBIR suma
FIN
Diagrama
Inicio
Leer n
suma←0, contador←1
¿contador <= n?
Sí
Leer numero; suma←suma+numero; contador++; ↺
Ejercicio 9 de 10 · intermedio
Encontrar el número más grande de una lista de N números.
Respuesta · Ejercicio 9
Pseudocódigo
INICIO
LEER n
LEER numero
máximo ← numero
contador ← 2
MIENTRAS contador <= n HACER
LEER numero
SI numero > máximo ENTONCES
máximo ← numero
FIN SI
contador ← contador + 1
FIN MIENTRAS
ESCRIBIR máximo
FIN
Diagrama (ciclo con decisión anidada)
Leer n, primer numero
máximo ← numero
¿contador <= n?
Sí
Leer numero;
¿numero > máximo?
Ejercicio 10 de 10 · intermedio
Clasificar una edad en: niño, adolescente, adulto o adulto mayor.
Respuesta · Ejercicio 10
Pseudocódigo
INICIO
LEER edad
SI edad < 13 ENTONCES
ESCRIBIR "Niño"
SINO SI edad < 18 ENTONCES
ESCRIBIR "Adolescente"
SINO SI edad < 60 ENTONCES
ESCRIBIR "Adulto"
SINO
ESCRIBIR "Adulto mayor"
FIN SI
FIN
Diagrama (cadena de rombos)
No
¿edad < 18?
…y así sucesivamente
Segunda ronda — sube el nivel
Diez resueltos.
Siete más, de los que sí se usan.
Los mismos dos lenguajes —pseudocódigo y diagrama de flujo— para problemas que ya se parecen
a los que vas a programar de verdad.
Avanzado 1 de 7 · alto
Buscar un número en una lista YA ORDENADA, partiendo la búsqueda a la mitad en cada paso.
Respuesta · Avanzado 1
Pseudocódigo
INICIO
LEER lista, n, objetivo
inicio ← 1
fin ← n
encontrado ← falso
MIENTRAS inicio <= fin Y NO encontrado HACER
medio ← (inicio + fin) DIV 2
SI lista[medio] = objetivo ENTONCES
encontrado ← verdadero
SINO SI lista[medio] < objetivo ENTONCES
inicio ← medio + 1
SINO
fin ← medio - 1
FIN SI
FIN MIENTRAS
ESCRIBIR encontrado, medio
FIN
Diagrama (ciclo con decisión doble)
Leer lista, n, objetivo
inicio←1, fin←n
¿inicio<=fin y no encontrado?
Sí
medio←(inicio+fin)/2;
¿lista[medio]=objetivo?
No
Escribir encontrado, medio
Si no coincide, mueve "inicio" o "fin" según sea mayor o menor — y vuelve a partir a la mitad.
Avanzado 2 de 7 · alto
Ordenar una lista de menor a mayor, comparando e intercambiando parejas vecinas.
Respuesta · Avanzado 2
Pseudocódigo
INICIO
LEER lista, n
PARA i DESDE 1 HASTA n-1 HACER
PARA j DESDE 1 HASTA n-i HACER
SI lista[j] > lista[j+1] ENTONCES
intercambiar lista[j], lista[j+1]
FIN SI
FIN PARA
FIN PARA
ESCRIBIR lista
FIN
Diagrama (ciclos anidados)
Leer lista, n
¿quedan pasadas i?
Sí
¿lista[j] > lista[j+1]?
(recorre j)
No
Escribir lista ordenada
Cada pasada completa "empuja" el número más grande restante hasta el final — por eso "burbujea".
Avanzado 3 de 7 · alto
Calcular el máximo común divisor de dos números, con residuos sucesivos.
Respuesta · Avanzado 3
Pseudocódigo
INICIO
LEER a, b
MIENTRAS b <> 0 HACER
residuo ← a MOD b
a ← b
b ← residuo
FIN MIENTRAS
ESCRIBIR a
FIN
Diagrama
Inicio
Leer a, b
¿b <> 0?
Sí
residuo←a MOD b; a←b; b←residuo; ↺
Cuando el residuo llega a 0, el número que queda en "a" es el MCD.
Avanzado 4 de 7 · alto
Convertir un número decimal a binario, con divisiones sucesivas entre 2.
Respuesta · Avanzado 4
Pseudocódigo
INICIO
LEER n
binario ← ""
MIENTRAS n > 0 HACER
residuo ← n MOD 2
binario ← residuo + binario
n ← n DIV 2
FIN MIENTRAS
ESCRIBIR binario
FIN
Diagrama
Leer n
binario ← ""
¿n > 0?
Sí
residuo←n MOD 2; binario←residuo+binario; n←n DIV 2; ↺
Cada residuo se acomoda AL FRENTE del resultado — el primero que sale es el último dígito.
Avanzado 5 de 7 · alto
Generar los primeros N números de Fibonacci —cada uno es la suma de los dos anteriores.
Respuesta · Avanzado 5
Pseudocódigo
INICIO
LEER n
anterior ← 0
actual ← 1
contador ← 1
ESCRIBIR anterior
MIENTRAS contador < n HACER
ESCRIBIR actual
siguiente ← anterior + actual
anterior ← actual
actual ← siguiente
contador ← contador + 1
FIN MIENTRAS
FIN
Diagrama
Leer n
anterior←0, actual←1, contador←1
Escribir anterior
¿contador < n?
Sí
Escribir actual; siguiente←anterior+actual; anterior←actual; actual←siguiente; ↺
Avanzado 6 de 7 · alto
Decidir si una palabra se lee igual al derecho y al revés.
Respuesta · Avanzado 6
Pseudocódigo
INICIO
LEER palabra
izquierda ← 1
derecha ← LONGITUD(palabra)
esPalindromo ← verdadero
MIENTRAS izquierda < derecha Y esPalindromo HACER
SI palabra[izquierda] <> palabra[derecha] ENTONCES
esPalindromo ← falso
FIN SI
izquierda ← izquierda + 1
derecha ← derecha - 1
FIN MIENTRAS
ESCRIBIR esPalindromo
FIN
Diagrama (dos punteros)
Leer palabra
izq←1, der←longitud
¿izq<der y esPalindromo?
Sí
¿palabra[izq]<>palabra[der]?
izq++, der--
Dos "dedos" —uno en cada extremo— se acercan al centro comparando letras. Si alguno no coincide, ya no es palíndromo.
Avanzado 7 de 7 · alto
Simular un cajero automático: hasta 3 intentos para escribir el NIP correcto.
Respuesta · Avanzado 7
Pseudocódigo
INICIO
intentos ← 0
acceso ← falso
MIENTRAS intentos < 3 Y NO acceso HACER
LEER nip
SI nip = nipCorrecto ENTONCES
acceso ← verdadero
SINO
intentos ← intentos + 1
FIN SI
FIN MIENTRAS
SI acceso ENTONCES
ESCRIBIR "Acceso concedido"
SINO
ESCRIBIR "Tarjeta bloqueada"
FIN SI
FIN
Diagrama
intentos←0, acceso←falso
¿intentos<3 y no acceso?
Sí
Leer nip;
¿nip=nipCorrecto?
No
Escribir "Acceso" o "Bloqueada"
El ciclo revisa DOS condiciones a la vez: que no se acaben los intentos, y que aún no haya acceso.
Último reto — en equipos
Ahora el algoritmo
lo eligen ustedes.
No de la vida de una computadora — de la vida real. Algo que ya hacen, paso a paso, sin pensarlo.
En equipos
Tres pasos, un algoritmo real.
1 · ElijanSu algoritmo favorito de la vida real —el suyo propio, o uno de los tres de la siguiente lámina.
2 · EscribanEl mismo algoritmo en pseudocódigo Y en diagrama de flujo — con INICIO/FIN, al menos una decisión o un ciclo si aplica.
3 · ExponganCada equipo pasa al frente y explica su algoritmo: qué entra, qué pasos sigue, qué sale.
Si no se les ocurre uno propio, elijan entre estas tres
A
Preparar un café
Entrada: agua, café, taza. Decisión: ¿con azúcar o sin? Salida: la bebida lista.
B
Cruzar la calle con seguridad
Entrada: lo que ven a los dos lados. Ciclo: revisar hasta que esté despejado. Salida: cruzar.
C
Elegir qué ver en streaming
Entrada: tiempo disponible y ánimo. Decisión: ¿serie o película? Ciclo: seguir viendo capítulos hasta terminar o dormirse.
Cierre · dinámica en vivo
El pizarrón es de todos.
Un algoritmo, un equipo, un cronómetro — y los demás compitiendo por encontrar el error.
Dinámica final · pizarrón en vivo
En vivo, por rondas
Cuatro pasos, un cronómetro.
1 · SorteoSe sortea qué equipo pasa y qué algoritmo resuelve — uno de los que ya vimos hoy.
2 · Resuelven en vivoPseudocódigo O diagrama de flujo, a su elección — el cronómetro corre desde que empiezan.
3 · Cazan erroresCualquier otro equipo puede levantar la mano y señalar un error real mientras tanto — si tiene razón, se lleva puntos.
4 · RotanEl siguiente equipo sortea otro algoritmo — hasta que todos hayan pasado al menos una vez.
Puntos por velocidad y por qué tan correcto quedó. Cazar un error ajeno también suma.
Cada comodín se usa UNA sola vez por equipo
1
Línea directa
Una sola pregunta puntual a la IA proyectada en pantalla — una sola respuesta, y siguen solos.
2
Consulta al público
Piden ayuda a los demás equipos — el equipo que ayuda de verdad también gana puntos.
3
Pista del profe
Walter da una pista — nunca la respuesta completa.
El mensaje de hoy
Practicar pseudocódigo y diagramas de flujo
es aprender a pensar antes de programar.
Diez problemas resueltos, y uno más —el suyo— diseñado desde cero. Eso es exactamente lo que la
próxima sesión, con selección e iteración a fondo, va a construir encima.
Gracias
Walter Rosales
CEO & Co-Founder, iGalenus
walter.rosales@igalenus.com
@walterr_rosales
walter-rosales.com