Objetivo del módulo
Construir algoritmos que repitan acciones de forma controlada, comprendiendo cuántas veces se ejecutan, por qué terminan y cómo conservan resultados entre una repetición y la siguiente.
Al terminar el módulo, podrá:
- reconocer cuándo un problema necesita una repetición;
- identificar el bloque de instrucciones que debe repetirse;
- explicar qué es una iteración;
- diferenciar repeticiones de cantidad conocida y repeticiones controladas por una condición;
- construir ciclos de tipo
PARA,MIENTRASyREPETIR HASTA QUEen pseudocódigo; - identificar inicio, condición, cuerpo, actualización y salida;
- utilizar contadores y acumuladores;
- calcular totales, cantidades y promedios mediante repeticiones;
- utilizar un valor centinela para finalizar una entrada de datos;
- validar datos mediante repetición;
- combinar decisiones y repeticiones;
- seguir un ciclo mediante una tabla de rastreo;
- detectar errores de límites;
- reconocer y corregir ciclos infinitos;
- diseñar casos de prueba para cero, una y varias iteraciones.
Este módulo no enseña los bucles de un lenguaje específico. Las palabras
PARA,MIENTRASyREPETIRse utilizan como pseudocódigo para representar ideas que existen en prácticamente todos los lenguajes.
Distribución del tiempo
| Sección | Tiempo |
|---|---|
| Activación y video inicial | 10 min |
| Concepto y anatomía de una repetición | 20 min |
| Repeticiones de cantidad conocida | 20 min |
| Repeticiones controladas por condición | 30 min |
| Contadores, acumuladores y centinelas | 25 min |
| Ejemplos, actividad y ejercicios | 35 min |
| Retos | 10 min |
| Mini proyecto | 25 min |
| Evaluación y cierre | 5 min |
| Total | 180 min |
Mapa del aprendizaje
ACCIÓN QUE SE REPITE
↓
¿CUÁNTAS VECES O HASTA CUÁNDO?
↓
INICIO → CONDICIÓN → CUERPO → ACTUALIZACIÓN
↑ │
└────────────────────┘
↓ CUANDO LA CONDICIÓN TERMINA
SALIDA DEL CICLO
↓
RESULTADO FINALPARTE 1 — ACTIVACIÓN
Pregunta guía
¿Cómo puede un algoritmo realizar una misma tarea muchas veces sin copiar la misma instrucción una y otra vez?
Imagine que debe mostrar la tabla del número 7.
Una solución repetitiva y difícil de mantener sería:
MOSTRAR 7 * 1
MOSTRAR 7 * 2
MOSTRAR 7 * 3
MOSTRAR 7 * 4
MOSTRAR 7 * 5
MOSTRAR 7 * 6
MOSTRAR 7 * 7
MOSTRAR 7 * 8
MOSTRAR 7 * 9
MOSTRAR 7 * 10Todas las líneas representan la misma acción:
MOSTRAR 7 * multiplicadorLo único que cambia es el valor de multiplicador.
Una repetición permite expresar:
Repetir la misma acción usando los valores del 1 al 10.El objetivo no es únicamente escribir menos. Es describir el patrón con claridad y poder cambiarlo sin reescribir muchas instrucciones.
Diagnóstico inicial sin calificación
Una persona guarda dinero hasta reunir 100 unidades monetarias. Realiza estos aportes:
20, 15, 30, 10, 25Responda sin pseudocódigo:
- ¿Qué acción se repite con cada aporte?
- ¿Qué cantidad cambia después de cada aporte?
- ¿Cómo sabe la persona cuándo debe dejar de ahorrar?
- ¿Cuántos aportes realizó?
- ¿Qué ocurriría si un aporte fuera negativo?
- ¿La persona conoce de antemano cuántos aportes necesitará?
Propósito
En este problema aparecen los elementos centrales del módulo:
- una acción repetida;
- un total que se actualiza;
- una cantidad de aportes;
- una condición de salida;
- un número de repeticiones que no se conoce al comenzar.
Video introductorio obligatorio
Ciclo MIENTRAS (WHILE) en PSeInt — Charly Cimino
Duración: 4 minutos y 58 segundos Tema exacto: Repetición mientras una condición sea verdadera y prevención de ciclos infinitos Antes de continuar: Concéntrese en inicio, condición, instrucciones y actualización. No memorice la sintaxis de PSeInt.
Pregunta después del video
En un ciclo que cuenta del 1 al 5:
- ¿con qué valor comienza el contador?
- ¿qué condición permite continuar?
- ¿qué instrucción lo acerca al final?
PARTE 2 — COMPRENDER LA REPETICIÓN
¿Qué es una repetición?
Una repetición es una estructura que permite ejecutar un bloque de instrucciones varias veces.
También puede llamarse:
- ciclo;
- bucle;
- lazo;
- estructura repetitiva.
Cada ejecución completa del bloque se denomina iteración.
Si una acción se realiza cinco veces, el ciclo tiene cinco iteraciones.
Analogía: dar vueltas a una pista
Cada vuelta contiene las mismas etapas:
salir de la línea
recorrer la pista
volver a la línea
registrar una vueltaDespués de cada vuelta se pregunta:
¿Ya completé la cantidad necesaria?Si la respuesta es no, se realiza otra vuelta. Si es sí, se abandona la pista.
¿Cuándo utilizar una repetición?
Una repetición es apropiada cuando:
- una acción debe realizarse una cantidad conocida de veces;
- una acción debe continuar mientras se cumpla una condición;
- deben procesarse varios datos con las mismas reglas;
- se necesita pedir nuevamente un dato hasta que sea válido;
- se acumula un resultado poco a poco;
- se espera que ocurra una situación de salida.
Ejemplos:
Mostrar los números del 1 al 20.
Procesar las notas de 10 estudiantes.
Pedir una contraseña mientras sea incorrecta.
Registrar ventas hasta que termine el día.
Sumar aportes hasta alcanzar una meta.Cuándo no utilizarla
No es necesario crear un ciclo si:
- la acción ocurre una sola vez;
- cada paso es diferente y no existe un patrón repetido;
- la repetición no tiene un límite o condición comprensible;
- copiar dos instrucciones diferentes sería más claro que forzar una estructura repetitiva.
Dos preguntas antes de escribir un ciclo
Antes de elegir una estructura, responda:
Pregunta 1
¿Qué instrucciones deben repetirse?
Ese conjunto forma el cuerpo del ciclo.
Pregunta 2
¿Cuándo debe terminar la repetición?
La respuesta puede ser:
- después de una cantidad exacta;
- cuando una condición deje de cumplirse;
- cuando se alcance una meta;
- cuando se ingrese un valor especial;
- cuando el dato sea válido.
Si no puede responder la segunda pregunta, el ciclo todavía no está correctamente diseñado.
Anatomía de un ciclo
Una repetición controlada por una variable suele tener cinco elementos.
1. INICIO
2. CONDICIÓN
3. CUERPO
4. ACTUALIZACIÓN
5. SALIDAEjemplo: contar del 1 al 3
contador ← 1
MIENTRAS contador ≤ 3 HACER
MOSTRAR contador
contador ← contador + 1
FIN MIENTRAS
MOSTRAR "Terminó"| Elemento | En el ejemplo |
|---|---|
| Inicio | contador ← 1 |
| Condición | contador ≤ 3 |
| Cuerpo | MOSTRAR contador |
| Actualización | contador ← contador + 1 |
| Salida | Mostrar "Terminó" |
Recorrido
contador = 1 → cumple → muestra 1 → aumenta a 2
contador = 2 → cumple → muestra 2 → aumenta a 3
contador = 3 → cumple → muestra 3 → aumenta a 4
contador = 4 → no cumple → sale del cicloSalida:
1
2
3
TerminóTabla de rastreo de una repetición
Una tabla de rastreo registra el estado al comienzo y al final de cada iteración.
| Iteración | Contador al evaluar | contador ≤ 3 | Valor mostrado | Contador después |
|---|---|---|---|---|
| 1 | 1 | VERDADERO | 1 | 2 |
| 2 | 2 | VERDADERO | 2 | 3 |
| 3 | 3 | VERDADERO | 3 | 4 |
| Salida | 4 | FALSO | — | 4 |
La fila de salida es importante. Demuestra exactamente qué hizo falsa la condición.
Método de prueba manual
- Escriba los valores iniciales.
- Evalúe la condición.
- Si es falsa, salga.
- Si es verdadera, ejecute el cuerpo línea por línea.
- Registre cada actualización.
- Regrese a la condición.
- Continúe hasta demostrar la salida.
PARTE 3 — CANTIDAD CONOCIDA DE REPETICIONES
Repetir una cantidad exacta
Cuando se conoce de antemano cuántas veces debe ejecutarse una acción, puede utilizarse una repetición de tipo PARA.
Estructura conceptual
PARA contador DESDE inicio HASTA final HACER
instrucciones
FIN PARAPara este curso, el valor indicado en HASTA está incluido.
Ejemplo: mostrar cinco saludos
PARA numero DESDE 1 HASTA 5 HACER
MOSTRAR "Hola"
FIN PARAEl cuerpo se ejecuta cinco veces.
La variable numero toma estos valores:
1, 2, 3, 4, 5Aunque no se muestre, el contador controla la cantidad de iteraciones.
Utilizar el valor del contador
El contador puede formar parte de la acción.
PARA numero DESDE 1 HASTA 5 HACER
MOSTRAR "Repetición", numero
FIN PARASalida:
Repetición 1
Repetición 2
Repetición 3
Repetición 4
Repetición 5Ejemplo: tabla de multiplicar
LEER numero
PARA multiplicador DESDE 1 HASTA 10 HACER
resultado ← numero * multiplicador
MOSTRAR numero, " x ", multiplicador, " = ", resultado
FIN PARAEl patrón se escribe una vez y se aplica a diez valores.
Contar hacia atrás
Una repetición también puede disminuir.
PARA numero DESDE 5 HASTA 1 CON PASO -1 HACER
MOSTRAR numero
FIN PARA
MOSTRAR "Despegue"Salida:
5
4
3
2
1
DespegueEl paso indica cuánto cambia el contador después de cada iteración.
PASO 1: aumenta uno;PASO 2: aumenta dos;PASO -1: disminuye uno.
Ejemplo con paso de dos
PARA numero DESDE 2 HASTA 10 CON PASO 2 HACER
MOSTRAR numero
FIN PARASalida:
2, 4, 6, 8, 10Elegir PARA
PARA es una buena elección cuando:
- la cantidad de iteraciones se conoce antes de comenzar;
- existe un inicio y un final numérico claros;
- se procesará exactamente una cantidad determinada de datos;
- el contador avanza con un paso regular.
Ejemplos:
Revisar 12 meses.
Pedir las notas de 5 estudiantes.
Mostrar los números del 1 al 100.
Realizar una cuenta regresiva de 10 a 1.No es la opción más natural cuando se desconoce cuántos intentos o aportes serán necesarios.
Error de una iteración
Regla:
Mostrar los números del 1 al 5.
Incorrecto:
PARA numero DESDE 1 HASTA 4 HACER
MOSTRAR numero
FIN PARAFalta el 5.
También sería incorrecto comenzar en 0 si el problema solicita del 1 al 5.
Estos errores suelen llamarse errores de límite o errores de “uno más/uno menos”.
Prueba de límites
Antes de aceptar un ciclo PARA, escriba:
primer valor
segundo valor
...
penúltimo valor
último valorDespués cuente cuántos valores existen realmente.
PARTE 4 — REPETICIONES CONTROLADAS POR UNA CONDICIÓN
Ciclo MIENTRAS
MIENTRAS repite un bloque mientras una condición sea verdadera.
MIENTRAS condición HACER
instrucciones
FIN MIENTRASLa condición se evalúa antes del cuerpo.
Por eso, el cuerpo puede ejecutarse:
- cero veces;
- una vez;
- muchas veces.
Ejemplo: avanzar hasta llegar a una meta
distancia ← 0
MIENTRAS distancia < 10 HACER
distancia ← distancia + 2
MOSTRAR distancia
FIN MIENTRASValores mostrados:
2, 4, 6, 8, 10Cuando distancia vale 10:
distancia < 10es falso y el ciclo termina.
La condición de continuación
En MIENTRAS, la condición expresa cuándo continuar.
Regla cotidiana:
Seguir pidiendo la contraseña mientras sea incorrecta.
LEER contraseña
MIENTRAS contraseña ≠ contraseña_correcta HACER
MOSTRAR "Contraseña incorrecta"
LEER contraseña
FIN MIENTRAS
MOSTRAR "Acceso permitido"La lectura debe aparecer:
- una vez antes del ciclo, para evaluar la primera condición;
- otra vez dentro del ciclo, para permitir que el dato cambie.
Si nunca se leyera una nueva contraseña, la condición conservaría el mismo resultado.
Cero iteraciones
Suponga:
saldo ← 120
MIENTRAS saldo < 100 HACER
LEER aporte
saldo ← saldo + aporte
FIN MIENTRASLa primera condición:
120 < 100es falsa.
El cuerpo no se ejecuta porque la meta ya estaba alcanzada.
Esto no es un error. Es el comportamiento correcto de una estructura que comprueba antes de actuar.
Ciclo REPETIR HASTA QUE
REPETIR HASTA QUE ejecuta el cuerpo primero y comprueba la condición al final.
REPETIR
instrucciones
HASTA QUE condición_de_salidaEl cuerpo se ejecuta al menos una vez.
Ejemplo: pedir una nota válida
REPETIR
LEER nota
SI nota < 0 O nota > 100 ENTONCES
MOSTRAR "Nota inválida"
FIN SI
HASTA QUE nota ≥ 0 Y nota ≤ 100
MOSTRAR "Nota aceptada"La condición expresa cuándo terminar:
nota ≥ 0 Y nota ≤ 100El ciclo continúa mientras esa condición todavía sea falsa.
MIENTRAS y REPETIR no preguntan lo mismo
MIENTRAS utiliza una condición de continuación:
MIENTRAS dato_es_invalido HACER
...
FIN MIENTRASREPETIR HASTA QUE utiliza una condición de salida:
REPETIR
...
HASTA QUE dato_es_validoAmbos pueden resolver problemas parecidos, pero la forma de pensar la condición es diferente.
| Característica | MIENTRAS | REPETIR HASTA QUE |
|---|---|---|
| Momento de comprobar | Antes del cuerpo | Después del cuerpo |
| Mínimo de iteraciones | 0 | 1 |
| La condición indica | Seguir | Terminar |
| Uso común | Continuar mientras falte algo | Pedir hasta obtener algo válido |
Elegir entre PARA, MIENTRAS y REPETIR
Utilice esta guía:
¿Conozco la cantidad exacta de repeticiones?
├── Sí → PARA
└── No
└── ¿La acción debe ocurrir al menos una vez?
├── Sí → REPETIR HASTA QUE
└── No o puede ser cero → MIENTRASEjemplos
| Problema | Estructura natural | Razón |
|---|---|---|
| Mostrar 10 resultados | PARA | Cantidad conocida |
| Ahorrar hasta reunir una meta | MIENTRAS | Cantidad desconocida |
| Pedir una opción hasta que sea válida | REPETIR | Debe pedirla al menos una vez |
| Procesar exactamente 7 días | PARA | Cantidad conocida |
| Intentar mientras queden oportunidades | MIENTRAS | Depende de una condición |
Las estructuras pueden sustituirse en algunos problemas. La meta es elegir la que comunique mejor la intención.
Diagrama de flujo de un ciclo
Un ciclo controlado por condición vuelve al rombo.
┌────────┐
│ INICIO │
└───┬────┘
▼
┌───────────────┐
│ contador ← 1 │
└───────┬───────┘
▼
◇ contador ≤ 3 ◇
/ \
Sí No
▼ ▼
┌──────────────┐ ┌─────┐
│MOSTRAR │ │ FIN │
│contador │ └─────┘
└──────┬───────┘
▼
┌──────────────────┐
│contador ← │
│contador + 1 │
└────────┬─────────┘
│
└─────── vuelve al romboLa flecha de regreso muestra la repetición. La salida No permite abandonar el ciclo.
PARTE 5 — RECORDAR LO OCURRIDO
Contador
Un contador registra cuántas veces ocurre algo.
Normalmente:
contador ← 0y cuando sucede el evento:
contador ← contador + 1Ejemplo: contar notas aprobadas
aprobadas ← 0
PARA estudiante DESDE 1 HASTA 5 HACER
LEER nota
SI nota ≥ 70 ENTONCES
aprobadas ← aprobadas + 1
FIN SI
FIN PARA
MOSTRAR aprobadasEl ciclo tiene cinco iteraciones, pero aprobadas solo aumenta cuando se cumple la condición.
Analogía
Una persona coloca una marca en una hoja cada vez que entra un visitante. Al final, la cantidad de marcas es el contador.
Acumulador
Un acumulador guarda una suma que crece con valores diferentes.
Normalmente:
total ← 0y por cada dato:
total ← total + valorEjemplo: sumar gastos de siete días
total_gastos ← 0
PARA dia DESDE 1 HASTA 7 HACER
LEER gasto
total_gastos ← total_gastos + gasto
FIN PARA
MOSTRAR total_gastosSi los gastos son:
5, 3, 0, 10, 4, 2, 6el acumulador toma estos valores:
5, 8, 8, 18, 22, 24, 30Contador y acumulador no son lo mismo
| Elemento | Pregunta que responde | Actualización típica |
|---|---|---|
| Contador | ¿Cuántos hay? | contador ← contador + 1 |
| Acumulador | ¿Cuánto suman? | total ← total + valor |
Ejemplo con aportes:
cantidad_aportes ← cantidad_aportes + 1
total_ahorrado ← total_ahorrado + aporteSi los aportes son 10, 25 y 5:
- el contador termina en
3; - el acumulador termina en
40.
Video obligatorio sobre contadores y acumuladores
Contadores y Acumuladores | Curso de Programación desde 0 — SEFER educación
Duración: 3 minutos y 23 segundos Tema exacto: Diferencia entre contar sucesos y acumular valores
Comprobación rápida
Indique cuál variable es contador y cuál es acumulador:
cantidad_ventas ← cantidad_ventas + 1
ingresos ← ingresos + precioCalcular un promedio
Un promedio necesita:
suma de los valores
cantidad de valoresFórmula:
promedio ← total / cantidadEjemplo
total_notas ← 0
PARA estudiante DESDE 1 HASTA 5 HACER
LEER nota
total_notas ← total_notas + nota
FIN PARA
promedio ← total_notas / 5
MOSTRAR promedioEvitar división entre cero
Si la cantidad no es fija, debe comprobarse:
SI cantidad > 0 ENTONCES
promedio ← total / cantidad
MOSTRAR promedio
SINO
MOSTRAR "No hay datos para calcular el promedio"
FIN SIValor centinela
Un centinela es un valor especial que indica el final de la entrada.
Ejemplo:
Registrar aportes positivos. Ingresar
0para terminar.
total ← 0
cantidad ← 0
LEER aporte
MIENTRAS aporte ≠ 0 HACER
SI aporte > 0 ENTONCES
total ← total + aporte
cantidad ← cantidad + 1
SINO
MOSTRAR "Aporte inválido"
FIN SI
LEER aporte
FIN MIENTRAS
MOSTRAR total
MOSTRAR cantidadEl 0:
- detiene el ciclo;
- no se suma;
- no se cuenta como aporte.
Elegir un buen centinela
El centinela no debe confundirse con un dato válido.
Si 0 pudiera ser un dato normal, sería necesario utilizar otro valor o formular una pregunta separada como:
¿Desea registrar otro dato?Condición, contador y acumulador trabajando juntos
Problema:
Registrar ventas hasta ingresar
0. Contar y sumar únicamente las ventas positivas.
cantidad_ventas ← 0
total_ventas ← 0
LEER venta
MIENTRAS venta ≠ 0 HACER
SI venta > 0 ENTONCES
cantidad_ventas ← cantidad_ventas + 1
total_ventas ← total_ventas + venta
SINO
MOSTRAR "Venta inválida"
FIN SI
LEER venta
FIN MIENTRAS
SI cantidad_ventas > 0 ENTONCES
promedio ← total_ventas / cantidad_ventas
MOSTRAR cantidad_ventas
MOSTRAR total_ventas
MOSTRAR promedio
SINO
MOSTRAR "No se registraron ventas"
FIN SIEste algoritmo combina:
- lectura;
- repetición;
- decisión;
- validación;
- contador;
- acumulador;
- promedio;
- caso sin datos.
PARTE 6 — EJEMPLOS RESUELTOS
Ejemplo 1: tabla del 6
Problema
Mostrar la tabla de multiplicar del 6 desde 6 × 1 hasta 6 × 10.
Pseudocódigo
numero ← 6
PARA multiplicador DESDE 1 HASTA 10 HACER
resultado ← numero * multiplicador
MOSTRAR numero, " x ", multiplicador, " = ", resultado
FIN PARAPrimeras y últimas iteraciones
| Iteración | Multiplicador | Resultado |
|---|---|---|
| 1 | 1 | 6 |
| 2 | 2 | 12 |
| ... | ... | ... |
| 9 | 9 | 54 |
| 10 | 10 | 60 |
No es necesario escribir diez multiplicaciones diferentes.
Ejemplo 2: tres intentos de acceso
Problema
Permitir como máximo tres intentos para ingresar una clave.
Pseudocódigo
clave_correcta ← "COA"
intentos ← 0
acceso_concedido ← FALSO
MIENTRAS intentos < 3 Y NO acceso_concedido HACER
LEER clave_ingresada
intentos ← intentos + 1
SI clave_ingresada = clave_correcta ENTONCES
acceso_concedido ← VERDADERO
SINO
MOSTRAR "Clave incorrecta"
FIN SI
FIN MIENTRAS
SI acceso_concedido ENTONCES
MOSTRAR "Acceso permitido"
SINO
MOSTRAR "Intentos agotados"
FIN SI¿Por qué termina?
El ciclo termina cuando:
- la clave es correcta; o
intentosllega a 3.
La condición exige simultáneamente:
quedan intentos Y todavía no hay accesoEjemplo 3: gastos y promedio
Problema
Registrar los gastos de cinco días, calcular el total y el promedio.
total_gastos ← 0
PARA dia DESDE 1 HASTA 5 HACER
MOSTRAR "Gasto del día", dia
LEER gasto
total_gastos ← total_gastos + gasto
FIN PARA
promedio ← total_gastos / 5
MOSTRAR total_gastos
MOSTRAR promedioRastreo con 5, 0, 8, 3, 4
| Día | Gasto | Total anterior | Total nuevo |
|---|---|---|---|
| 1 | 5 | 0 | 5 |
| 2 | 0 | 5 | 5 |
| 3 | 8 | 5 | 13 |
| 4 | 3 | 13 | 16 |
| 5 | 4 | 16 | 20 |
Resultado:
total = 20
promedio = 4Ejemplo 4: validar una opción
Problema
Pedir una opción del 1 al 3. Si el dato está fuera del rango, solicitarlo nuevamente.
REPETIR
MOSTRAR "1. Consultar"
MOSTRAR "2. Registrar"
MOSTRAR "3. Salir"
LEER opcion
SI opcion < 1 O opcion > 3 ENTONCES
MOSTRAR "Opción inválida"
FIN SI
HASTA QUE opcion ≥ 1 Y opcion ≤ 3
MOSTRAR "Opción aceptada:", opcionEste algoritmo no ejecuta todavía un menú repetitivo. Solo valida una entrada.
La construcción de aplicaciones completas con menús pertenece a los cursos de programación. Aquí interesa comprender la repetición de la pregunta hasta obtener un dato válido.
PARTE 7 — ERRORES COMUNES
Olvidar la actualización
contador ← 1
MIENTRAS contador ≤ 5 HACER
MOSTRAR contador
FIN MIENTRAScontador siempre vale 1. La condición siempre es verdadera.
Corrección:
contador ← contador + 1dentro del ciclo.
Actualizar en la dirección equivocada
contador ← 1
MIENTRAS contador ≤ 5 HACER
MOSTRAR contador
contador ← contador - 1
FIN MIENTRASLos valores serían:
1, 0, -1, -2, ...Cada actualización aleja al contador de la salida.
Comenzar con el valor equivocado
Regla:
Mostrar del 1 al 5.
contador ← 0
MIENTRAS contador ≤ 5 HACER
MOSTRAR contador
contador ← contador + 1
FIN MIENTRASEl algoritmo muestra seis valores:
0, 1, 2, 3, 4, 5La condición no es el único elemento que determina la cantidad. El inicio también importa.
Utilizar < cuando el límite debe incluirse
contador ← 1
MIENTRAS contador < 5 HACER
MOSTRAR contador
contador ← contador + 1
FIN MIENTRASMuestra:
1, 2, 3, 4Si el 5 debe incluirse:
contador ≤ 5Reiniciar el acumulador dentro del ciclo
Incorrecto:
PARA dia DESDE 1 HASTA 5 HACER
total ← 0
LEER gasto
total ← total + gasto
FIN PARAEn cada iteración se borra lo acumulado anteriormente.
Corrección:
total ← 0
PARA dia DESDE 1 HASTA 5 HACER
LEER gasto
total ← total + gasto
FIN PARAContar datos inválidos
Si solo se aceptan aportes positivos, este fragmento es incorrecto:
cantidad ← cantidad + 1
SI aporte > 0 ENTONCES
total ← total + aporte
FIN SILa cantidad aumenta incluso para aportes inválidos.
Corrección:
SI aporte > 0 ENTONCES
total ← total + aporte
cantidad ← cantidad + 1
FIN SISumar el centinela
El valor que finaliza la entrada no pertenece al conjunto de datos.
Si -1 significa terminar, no debe:
- sumarse;
- contarse;
- utilizarse en el promedio.
Por eso se comprueba antes de procesarlo.
Dividir entre cero
Si la primera entrada es el centinela, la cantidad de datos puede ser cero.
Incorrecto:
promedio ← total / cantidadCorrección:
SI cantidad > 0 ENTONCES
promedio ← total / cantidad
SINO
MOSTRAR "No hay datos"
FIN SICiclo infinito
Un ciclo es infinito cuando nunca alcanza su condición de salida.
Preguntas para detectarlo:
- ¿Qué variable controla la condición?
- ¿Esa variable cambia dentro del ciclo?
- ¿Cambia en la dirección correcta?
- ¿Existe realmente un valor que vuelva falsa la condición?
- ¿Depende de una entrada que podría no llegar nunca?
Un ciclo infinito no siempre es accidental en sistemas reales, pero en los problemas de este curso debe existir una salida definida y comprobable.
Elegir una estructura que oculta la intención
Es posible simular una cantidad fija con MIENTRAS:
contador ← 1
MIENTRAS contador ≤ 10 HACER
MOSTRAR contador
contador ← contador + 1
FIN MIENTRASPero:
PARA contador DESDE 1 HASTA 10 HACER
MOSTRAR contador
FIN PARAcomunica directamente que existen diez valores controlados.
No se trata de que la primera forma sea falsa. Se trata de escoger la estructura que hace más clara la intención.
PARTE 8 — ACTIVIDAD SIN COMPUTADORA
El robot repetidor
Materiales
- tarjetas con los textos
INICIO,CONDICIÓN,ACCIÓN,ACTUALIZACIÓNySALIDA; - cinco fichas numeradas del 1 al 5;
- una hoja para registrar el rastreo.
Preparación
Coloque las tarjetas en este orden:
INICIO → CONDICIÓN → ACCIÓN → ACTUALIZACIÓN
↑ │
└────────────────────┘Regla
contador comienza en 1
mientras contador ≤ 5:
levantar la ficha del contador
aumentar contador en 1Instrucciones
- Una persona representa al contador.
- Otra representa la condición.
- Una tercera ejecuta la acción.
- La condición dice
VERDADEROoFALSO. - Cuando sea verdadero, se levanta la ficha correspondiente.
- La persona que representa la actualización cambia el contador.
- Se regresa a la condición.
- Al llegar a 6, se toma el camino de salida.
Variaciones
Repita la actividad:
- del 5 al 1;
- del 2 al 10 avanzando de 2 en 2;
- comenzando en 7 con la condición
contador ≤ 5; - eliminando deliberadamente la actualización.
Preguntas
- ¿Cuántas iteraciones tuvo cada caso?
- ¿Cuál caso tuvo cero iteraciones?
- ¿Cuál se volvió infinito?
- ¿Qué elemento determinó la salida?
Aprendizaje esperado
El ciclo no es una instrucción mágica. Es un recorrido repetido formado por estado, pregunta, acción y cambio.
PARTE 9 — EJERCICIOS
Los ejercicios son práctica guiada. No se envían uno por uno. Intente resolverlos antes de abrir sus soluciones.
Ejercicio 1 — ¿Qué debe repetirse?
Para cada situación:
- identifique la acción repetida;
- indique qué cambia en cada iteración;
- escriba la condición de finalización;
- decida si la cantidad de repeticiones se conoce antes de comenzar;
- proponga
PARA,MIENTRASoREPETIR HASTA QUE.
Situaciones:
a. Mostrar los números del 1 al 20. b. Pedir una edad hasta que esté entre 0 y 120. c. Registrar siete temperaturas diarias. d. Recibir aportes hasta alcanzar una meta de ahorro. e. Permitir intentos de contraseña mientras queden oportunidades. f. Imprimir una etiqueta para cada una de 30 cajas. g. Registrar ventas hasta ingresar el valor 0.
No escriba todavía el pseudocódigo completo. El propósito es elegir correctamente el control de la repetición.
Ejercicio 2 — Cinco etiquetas numeradas
Una bodega necesita imprimir estas etiquetas:
Caja 1
Caja 2
Caja 3
Caja 4
Caja 5Realice:
- pseudocódigo con una repetición
PARA; - identificación del contador, inicio, final y paso;
- tabla de rastreo;
- modificación para imprimir de
Caja 5aCaja 1; - modificación para imprimir únicamente
Caja 1,Caja 3yCaja 5; - explicación de por qué no es necesario escribir cinco instrucciones
MOSTRAR.
Ejercicio 3 — Tabla de su elección
Diseñe un algoritmo que:
- lea un número;
- muestre su tabla de multiplicar desde 1 hasta 10;
- calcule cada producto dentro del ciclo;
- muestre cada línea con el formato:
número x multiplicador = resultadoDebe entregar:
- entrada, proceso y salida;
- pseudocódigo;
- rastreo de las iteraciones 1, 2, 9 y 10 para el número
7; - salida esperada completa para el número
3; - explicación de qué cambiaría para mostrar la tabla hasta 12.
Ejercicio 4 — Cuenta regresiva segura
Escriba un algoritmo con MIENTRAS que muestre:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
DespegueDespués:
- señale el valor inicial;
- escriba la condición;
- identifique la actualización;
- construya una tabla con las primeras tres y las últimas dos iteraciones;
- indique el valor del contador cuando el algoritmo sale;
- explique qué ocurriría si utilizara
contador ← contador + 1; - reescriba la solución con
PARA.
Ejercicio 5 — Acceso con tres intentos
Una aplicación permite un máximo de tres intentos para ingresar la clave "LOGICA".
El algoritmo debe:
- pedir una clave;
- aumentar el contador de intentos;
- terminar inmediatamente cuando la clave sea correcta;
- terminar cuando se utilicen los tres intentos;
- mostrar
"Acceso permitido"si se acertó; - mostrar
"Intentos agotados"si no se acertó.
Realice:
- diccionario de variables;
- pseudocódigo con
MIENTRAS; - explicación de la condición compuesta;
- rastreo para esta secuencia:
CASA, LOGICA- rastreo para:
UNO, DOS, TRES- explicación de por qué el segundo caso no solicita un cuarto intento.
Ejercicio 6 — Gastos de una semana
Una persona registra el gasto de cada uno de los siete días.
Diseñe un algoritmo que:
- lea exactamente siete gastos;
- rechace valores negativos mostrando
"Gasto inválido"; - sume únicamente los valores válidos;
- cuente cuántos días tuvieron un gasto válido;
- cuente cuántos días tuvieron gasto igual a cero;
- calcule el promedio de los gastos válidos;
- evite dividir entre cero.
Utilice estos datos para la prueba:
5, 0, -3, 8, 2, 0, 6Debe entregar:
- pseudocódigo;
- tabla con una fila por día;
- total válido;
- cantidad de datos válidos;
- cantidad de días con gasto cero;
- promedio;
- explicación de por qué
-3no debe sumarse ni contarse como dato válido.
El algoritmo procesa siete entradas. Un dato inválido muestra un aviso, pero no vuelve a pedir ese mismo día. La validación repetitiva se practica en el ejercicio siguiente.
Ejercicio 7 — Registro hasta el centinela
Una campaña recibe donaciones positivas. Se ingresa 0 para terminar.
El algoritmo debe:
- aceptar donaciones mayores que cero;
- rechazar valores negativos;
- no sumar ni contar el centinela;
- mostrar la cantidad de donaciones válidas;
- mostrar el total;
- calcular el promedio si existe al menos una donación;
- mostrar
"No se registraron donaciones"si la primera entrada es0.
Pruebe con estas dos secuencias:
Secuencia A: 20, -5, 30, 10, 0
Secuencia B: 0Debe entregar:
- pseudocódigo;
- tabla de rastreo de la secuencia A;
- resultados de ambas secuencias;
- identificación del centinela;
- explicación de por qué la lectura aparece antes y dentro del ciclo;
- una propuesta de centinela diferente si la campaña permitiera donaciones de valor cero.
PARTE 10 — RETOS
Reto 1 — Laboratorio de ciclos infinitos
Analice cada algoritmo sin ejecutarlo.
Algoritmo A
numero ← 1
MIENTRAS numero ≤ 5 HACER
MOSTRAR numero
FIN MIENTRASAlgoritmo B
numero ← 10
MIENTRAS numero ≥ 0 HACER
MOSTRAR numero
numero ← numero + 1
FIN MIENTRASAlgoritmo C
numero ← 1
MIENTRAS numero ≠ 10 HACER
MOSTRAR numero
numero ← numero + 2
FIN MIENTRASPara cada uno:
- escriba los primeros cinco valores que mostraría;
- determine si termina;
- explique la causa;
- proponga la corrección más pequeña;
- escriba el valor exacto que vuelve falsa la condición corregida.
Reto 2 — Misma meta, dos formas
Regla:
Pedir aportes positivos hasta reunir al menos 100 unidades monetarias.
Versión A
Diseñe una solución con MIENTRAS.
Versión B
Diseñe una solución con REPETIR HASTA QUE.
Ambas deben:
- rechazar aportes iguales o menores que cero;
- sumar únicamente aportes válidos;
- contar los aportes válidos;
- mostrar el total final.
Después:
- pruebe ambas con
40, 30, 30; - pruebe con un total inicial de
120; - explique por qué
MIENTRASpuede realizar cero iteraciones; - explique por qué
REPETIRrealiza al menos una; - indique cuál representa mejor el problema si el ahorro inicial siempre es cero;
- indique cuál representa mejor el problema si puede existir un ahorro inicial superior a la meta.
PARTE 11 — MINI PROYECTO
Plan de ahorro hasta alcanzar una meta
Situación
Una persona desea alcanzar una meta de ahorro. No sabe cuántos aportes necesitará. El sistema debe registrar aportes hasta alcanzar o superar la meta y presentar un resumen.
Datos de entrada
meta
aporteVariables de seguimiento
total_ahorrado
cantidad_aportesReglas
- La meta debe ser mayor que
0. Si no lo es, debe pedirse nuevamente. - El total comienza en
0. - Mientras el total sea menor que la meta:
- mostrar cuánto falta;
- pedir un aporte;
- si el aporte es menor o igual que
0, mostrar"Aporte inválido"; - si es válido, sumarlo al total y aumentar la cantidad de aportes.
- Al alcanzar o superar la meta:
- mostrar
"Meta alcanzada"; - mostrar el total ahorrado;
- mostrar la cantidad de aportes válidos;
- calcular y mostrar el promedio de los aportes;
- calcular cuánto se superó la meta.
Fórmulas
faltante ← meta - total_ahorrado
promedio ← total_ahorrado / cantidad_aportes
excedente ← total_ahorrado - metaAlcance
- El proyecto procesa una sola meta.
- No utiliza listas ni arreglos.
- No requiere un lenguaje de programación.
- Puede realizarse en papel, en un documento o con PSeInt.
- El diagrama puede dibujarse a mano o en una herramienta digital.
Entregables del mini proyecto
Parte 1 — Comprensión del problema
Escriba:
- cuál es la acción que se repite;
- cuál es la condición de continuación;
- qué provoca la salida;
- qué datos son entradas;
- qué resultados son salidas.
Parte 2 — Diccionario de variables
Complete:
| Variable | Significado | Clase de dato | Valor inicial |
|---|---|---|---|
meta | |||
aporte | |||
total_ahorrado | |||
cantidad_aportes | |||
faltante | |||
promedio | |||
excedente |
Parte 3 — Entrada, proceso y salida
Organice:
ENTRADAS
PROCESO
SALIDASParte 4 — Algoritmo numerado
Explique la solución en lenguaje cotidiano. Debe quedar claro:
- cómo se valida la meta;
- cómo se inicia el seguimiento;
- qué se repite;
- cuándo se acepta un aporte;
- cuándo termina;
- qué se calcula al final.
Parte 5 — Pseudocódigo
Utilice:
REPETIR HASTA QUEpara validar la meta;MIENTRASpara registrar aportes;SIpara validar cada aporte;- un contador;
- un acumulador;
- asignaciones con
←.
Parte 6 — Diagrama de flujo
Debe incluir:
- inicio;
- validación repetitiva de la meta;
- inicialización del total y contador;
- rombo que controla la meta;
- lectura del aporte;
- decisión de validez;
- actualización del total y contador;
- flecha que regresa a la condición;
- cálculos finales;
- fin.
Parte 7 — Prueba obligatoria
Utilice:
meta = 100
aportes = 25, -5, 40, 35Complete:
| Entrada | ¿Válida? | Total anterior | Total nuevo | Cantidad válida | Faltante |
|---|---|---|---|---|---|
| 25 | |||||
| -5 | |||||
| 40 | |||||
| 35 |
Después muestre:
- total final;
- cantidad de aportes válidos;
- promedio;
- excedente.
Parte 8 — Prueba de validación
Pruebe estas metas antes de aceptar 80:
0, -20, 80Explique cuántas veces se ejecutó el ciclo de validación y cuál valor fue aceptado.
Parte 9 — Reflexión
Responda en cuatro a seis oraciones:
- ¿Por qué el aporte
-5no aumenta el contador? - ¿Qué instrucción acerca el ciclo principal a su final?
- ¿Qué ocurriría si los aportes válidos nunca se sumaran?
- ¿Por qué se utiliza
MIENTRAS total_ahorrado < meta?
Lista de verificación antes de entregar
[ ] Identifiqué claramente la acción repetida.
[ ] La meta se valida hasta ser mayor que cero.
[ ] Inicialicé el total y el contador antes del ciclo principal.
[ ] La condición del ciclo utiliza la meta y el total.
[ ] Rechazo aportes iguales o menores que cero.
[ ] Solo los aportes válidos se suman y se cuentan.
[ ] El total cambia dentro del ciclo.
[ ] El algoritmo puede salir cuando alcanza la meta.
[ ] Calculé faltante, promedio y excedente correctamente.
[ ] El diagrama vuelve a la condición después de cada aporte.
[ ] El pseudocódigo y el diagrama representan la misma solución.
[ ] Completé las dos pruebas obligatorias.
[ ] El archivo se puede leer con claridad.Rúbrica del mini proyecto
| Criterio | Puntos |
|---|---|
| Comprensión y descomposición del problema | 10 |
| Validación repetitiva de la meta | 10 |
| Condición e inicio del ciclo principal | 15 |
| Contador y acumulador correctamente ubicados | 15 |
| Tratamiento de aportes inválidos | 10 |
| Pseudocódigo completo y finito | 15 |
| Diagrama equivalente al pseudocódigo | 10 |
| Pruebas, rastreo y resultados | 10 |
| Claridad y reflexión | 5 |
| Total | 100 |
Criterios de dominio
| Resultado | Interpretación |
|---|---|
| 90–100 | Dominio sólido |
| 75–89 | Logro satisfactorio |
| 60–74 | Requiere corregir seguimiento o salida |
| Menos de 60 | Conviene repasar los ciclos antes del Módulo 5 |
Punto de entrega
Se utiliza un solo punto de entrega para todo el mini proyecto. Los ejercicios y retos no necesitan formularios separados.
Archivo
Reúna las nueve partes en un único archivo PDF.
Nombre recomendado:
Modulo4_Nombre_Apellido.pdfPuede incluir:
- texto escrito en computadora;
- tablas;
- pseudocódigo;
- un diagrama digital;
- fotografías o capturas claras del trabajo hecho a mano.
Revise que las imágenes no estén borrosas, giradas, cortadas o demasiado oscuras.
Indicación para el formulario
Escriba:
Módulo 4 — Plan de ahorro — Nombre y apellidoFormulario:
Entrega de la actividad
Último paso del proyectoUna vez completado este proyecto, sube tu solución utilizando el siguiente formulario.
El archivo debe incluir:
- Nombre completo
- Nombre del curso
- Módulo 4
- Las nueve partes del mini proyecto
- Tablas, pseudocódigo y diagrama claramente legibles
Nombre del archivo: Modulo4_Nombre_Apellido.pdf
Antes de enviar, verifica que el archivo tenga el nombre solicitado.
No envíe cada ejercicio por separado. Envíe únicamente el mini proyecto completo.
PARTE 13 — EVALUACIÓN
Evaluación de dominio
Pregunta 1
¿Qué es una iteración?
a. Una variable de texto b. Una ejecución completa del cuerpo de un ciclo c. El final de un algoritmo d. Una comparación inválida
Pregunta 2
¿Qué estructura expresa mejor “procesar exactamente 12 meses”?
a. PARA b. MIENTRAS sin condición c. Una decisión simple d. Ninguna repetición
Pregunta 3
¿Cuántas veces como mínimo se ejecuta el cuerpo de REPETIR HASTA QUE?
a. Cero b. Una c. Dos d. Diez
Pregunta 4
¿Qué instrucción evita que este ciclo sea infinito?
contador ← 1
MIENTRAS contador ≤ 5 HACER
MOSTRAR contador
__________
FIN MIENTRASa. contador ← 1 b. contador ← contador + 1 c. MOSTRAR 5 d. contador ← contador - 1
Pregunta 5
¿Qué hace un acumulador?
a. Cuenta eventos aumentando siempre uno b. Guarda una suma que cambia con cada valor c. Finaliza cualquier ciclo d. Sustituye la condición
Pregunta 6
Si 0 es un centinela, ¿debe incluirse en el total y la cantidad?
a. Sí, siempre b. Solo en el total c. No d. Solo en la cantidad
Pregunta 7
¿Por qué se comprueba cantidad > 0 antes de calcular un promedio?
a. Para evitar dividir entre cero b. Para crear un ciclo infinito c. Para reiniciar el total d. Para cambiar el centinela
Pregunta 8
¿Qué casos mínimos conviene probar en un ciclo controlado por condición?
a. Únicamente un caso intermedio b. Cero, una y varias iteraciones, además de los límites c. Solo el caso que termina d. Ninguno si el pseudocódigo se ve correcto
Autoevaluación
| Habilidad | Sí | Todavía practico | No |
|---|---|---|---|
| Identifico qué acción debe repetirse | |||
| Puedo explicar cuándo termina un ciclo | |||
| Distingo cantidad conocida y condición de salida | |||
Sé elegir entre PARA, MIENTRAS y REPETIR | |||
| Puedo rastrear cada iteración en una tabla | |||
| Utilizo correctamente un contador | |||
| Utilizo correctamente un acumulador | |||
| Comprendo el uso de un centinela | |||
| Evito sumar o contar datos inválidos | |||
| Detecto ciclos infinitos y errores de límite | |||
| Pruebo cero, una y varias iteraciones |
Si marca “No” en tres o más habilidades, revise las secciones relacionadas antes de continuar.
PARTE 14 — RECURSOS
Video general opcional
PSeInt — Ciclos de repetición Mientras, Repetir y Para. Uso de acumuladores y contadores — Profesor Diego Nogueira
Duración: 16 minutos y 57 segundos Tema exacto: Comparación práctica de los tres ciclos y uso de contadores y acumuladores Uso recomendado: Después de finalizar los ejercicios, si desea ver todas las estructuras ejecutadas en PSeInt
Lecturas y documentación
Referencia esencial de pseudocódigo
Documentación oficial de pseudocódigo de PSeInt
Consulte las secciones:
- Lazos Mientras;
- Lazos Repetir;
- Lazos Para.
La documentación explica cuándo se evalúa cada condición, cuántas veces puede ejecutarse el cuerpo y cómo evitar ciclos infinitos.
Lectura sobre algoritmos y repetición
Algoritmos y pseudocódigo — INTEF
Utilidad:
- repasar por qué el pseudocódigo es independiente del lenguaje;
- observar una repetición de cantidad fija;
- comparar una solución repetitiva con instrucciones copiadas.
Ampliación opcional
Código de bucle — MDN Web Docs
Esta lectura utiliza JavaScript. No es necesario aprender su sintaxis. Concéntrese en:
- la finalidad de los bucles;
- las diferencias entre comprobar antes y después;
- la necesidad de actualizar la variable de control;
- la explicación de los ciclos infinitos.
PARTE 15 — GLOSARIO
Conceptos del módulo
| Concepto | Explicación sencilla |
|---|---|
| Repetición | Ejecución controlada de un bloque varias veces |
| Ciclo, bucle o lazo | Otros nombres para una repetición |
| Iteración | Una ejecución completa del cuerpo |
| Cuerpo | Instrucciones que se repiten |
| Inicialización | Valor establecido antes de comenzar |
| Condición de continuación | Pregunta que debe seguir siendo verdadera para repetir |
| Condición de salida | Situación que finaliza la repetición |
| Actualización | Cambio que acerca el ciclo a su final |
PARA | Repetición apropiada para una cantidad conocida |
MIENTRAS | Repite mientras una condición sea verdadera |
REPETIR HASTA QUE | Ejecuta primero y termina cuando se cumple la condición |
| Contador | Variable que registra cuántas veces ocurre algo |
| Acumulador | Variable que guarda una suma progresiva |
| Centinela | Valor especial que indica el final de la entrada |
| Rastreo | Seguimiento manual de los valores de cada iteración |
| Error de límite | Inclusión u omisión accidental de una iteración |
| Ciclo infinito | Repetición que nunca alcanza su salida |
| Paso | Cantidad que aumenta o disminuye un contador |
PARTE 16 — CIERRE
Resumen visual
¿QUÉ SE REPITE?
↓
¿CUÁNTAS VECES?
├── CANTIDAD CONOCIDA → PARA
└── CANTIDAD DESCONOCIDA
├── COMPROBAR ANTES → MIENTRAS
└── EJECUTAR AL MENOS UNA VEZ → REPETIR
↓
INICIALIZAR
↓
COMPROBAR
↓
EJECUTAR CUERPO
↓
CONTAR / ACUMULAR / ACTUALIZAR
↓
VOLVER A COMPROBAR
↓
SALIR Y MOSTRAR RESULTADOSOcho ideas fundamentales
- Un ciclo expresa un patrón, no una copia de instrucciones.
- Cada vuelta completa es una iteración.
- Toda repetición necesita una salida comprensible.
PARAcomunica una cantidad conocida.MIENTRASpuede ejecutarse cero veces.REPETIR HASTA QUEse ejecuta al menos una vez.- Un contador registra cantidades y un acumulador suma valores.
- Un ciclo debe probarse con cero, una, varias iteraciones y sus límites.
Habilidades obtenidas
Al completar el módulo, habrá desarrollado:
- reconocimiento de patrones repetitivos;
- diseño de ciclos finitos;
- selección razonada de una estructura repetitiva;
- control de inicio, condición y actualización;
- seguimiento del estado entre iteraciones;
- uso de contadores y acumuladores;
- validación repetitiva de entradas;
- procesamiento de cantidades fijas y desconocidas;
- uso responsable de centinelas;
- combinación de decisiones con repeticiones;
- cálculo de totales, cantidades y promedios;
- detección de errores de límite y ciclos infinitos;
- construcción de pseudocódigo y diagramas con retornos.
Puente hacia el Módulo 5
Ahora puede construir algoritmos que:
- reciben datos;
- toman decisiones;
- repiten acciones;
- conservan resultados.
Pero un algoritmo puede parecer correcto y aun así fallar con:
- un dato límite;
- una entrada inválida;
- cero iteraciones;
- una condición mal ordenada;
- una actualización olvidada.
El Módulo 5 estudiará cómo construir una solución completa, diseñar pruebas, rastrear errores, corregirlos y comprobar que el algoritmo realmente resuelve el problema.
FIN DEL MÓDULO 4
No avanzar al Módulo 5 hasta que el Módulo 4 sea revisado y aprobado.