05 - Bucle For
Objetivos
Trabajar la repetición controlada cuando la cantidad de iteraciones está determinada.
- Comprender por qué hace falta una estructura de iteración
- Leer y escribir correctamente la sintaxis de
for - Identificar inicialización, condición y actualización en cada recorrido
- Resolver problemas de conteo y acumulación con
for - Usar bucles anidados en recorridos simples
Contenidos
Necesidad de repetir instrucciones
- Problema inicial: escribir muchas veces el mismo patrón vuelve el código difícil de mantener
- Idea central: una estructura de iteración permite describir una acción repetida sin duplicar instrucciones
Bucle for
- Sintaxis general:
for (inicializacion; condicion; actualizacion) - Lectura correcta: qué valor inicial se toma, qué condición permite seguir y qué cambio ocurre en cada vuelta
- Cuándo conviene: cuando el recorrido queda definido desde el comienzo
Recorridos con contador
- Patrones frecuentes: recorrer de
1aN, avanzar de a dos, recorrer en sentido inverso - Importancia del encabezado: hace visible la estructura completa del recorrido
- Trazas: seguir paso a paso cómo cambian las variables durante la ejecución
Acumulación y conteo
- Acumulación: sumar o combinar valores a lo largo del recorrido
- Conteo: registrar cuántas veces ocurre una condición
- Criterio: distinguir qué variable recorre y cuáles resumen el resultado
Bucles anidados
- Uso: resolver problemas con dos niveles de repetición
- Ejemplos típicos: tablas y recorridos combinados
- Cuidado: entender qué controla el bucle externo y qué controla el interno
Material de Clase
Presentaciones
Práctico
Ver ejercicios
Ejercicio 1
Enunciado: Escribir un programa que lea un número entero positivo N e imprima una cuenta regresiva desde N hasta 1, un número por línea, seguida del mensaje “¡Despegue!”.
Ejercicio 2
Enunciado: Escribir un programa que lea un número entero no negativo N y calcule su factorial (N!). Imprimir el resultado. Considerar que 0! = 1.
Ejercicio 3
Enunciado: Escribir un programa que lea un número entero positivo N e imprima una tabla con tres columnas: número, su cuadrado y su cubo, para todos los valores del 1 al N.
Ejemplo: Para N = 4, la salida sería 1 1 1, 2 4 8, 3 9 27, 4 16 64.
Ejercicio 4
Enunciado: Escribir un programa que lea dos enteros A y B (A ≤ B) y calcule la suma de todos los números pares en el rango [A, B], inclusive. Imprimir el resultado.
Ejercicio 5
Enunciado: Escribir un programa que lea un número entero positivo N y un divisor D. Usando continue, imprimir todos los números del 1 al N que sean divisibles por D, y al final mostrar cuántos hay.
Ejercicio 6
Enunciado: Escribir un programa que lea un número entero positivo N e imprima un triángulo rectángulo de asteriscos con N filas. La primera fila tiene 1 asterisco, la segunda 2, y así hasta la N-ésima fila con N asteriscos.
Ejemplo: N = 3
*
**
***
Ejemplo: N = 5
*
**
***
****
*****
Ejercicio 7
Enunciado: Escribir un programa que lea un número entero mayor que 1 y determine si es primo o no. Usar un bucle for con break y una variable bandera para detectar si tiene algún divisor entre 2 y N-1.
Ejercicio 8
Enunciado: Escribir un programa que lea N números enteros (N leído por teclado) y calcule el promedio de los que sean estrictamente positivos, ignorando los ceros y negativos con continue.
Si no hay ningún positivo, imprimir “Sin valores positivos”.
Ejercicio 9
Enunciado: Escribir un programa que imprima todos los números perfectos entre 1 y 1000. Un número es perfecto si la suma de sus divisores propios (excluyéndolo a él mismo) es igual al número.
Ejemplo: 6 es perfecto porque 1 + 2 + 3 = 6.
Ejercicio 10
Enunciado: Escribir un programa que lea un número entero positivo N e imprima la siguiente figura.
En la fila i (de 1 a N), imprimir el número i repetido i veces. Por ejemplo, para N=4: fila 1 muestra 1, fila 2 muestra 2 2, fila 3 muestra 3 3 3, fila 4 muestra 4 4 4 4.
Ejemplo: Para N = 4
1
2 2
3 3 3
4 4 4 4
Recursos
Para Practicar
Bibliografía
- “El lenguaje de programación C” - Kernighan & Ritchie (Capítulo 3)
- “Cómo programar en C/C++” - Deitel & Deitel