Carátula para entrega de prácticas
Facultad de Ingeniería Laboratorios de docencia
Laboratorio de Computación
Salas A y B
Profesor(a): García Morales Karina
Asignatura: Fundamentos de Programación
Grupo: 25
No de Práctica(s): 8
Integrante(s): Flores Vergara Kiaumitl
No. de lista o 10
brigada:
Semestre: 2025-2
Fecha de entrega: 08/abr./2025
Observaciones:
CALIFICACIÓN: ________________
Estructuras de repetición
Objetivo:
El alumno elaborará programas en C para la resolución de problemas básicos que incluyan las
estructuras de repetición.
Desarrollo:
1.- Revisar el uso de ++cont<=10 en el programa1.c
En el programa original, el uso del ++cont, incrementa cont antes de usarlo (pre-incremento). Esto
asegura que la primera multiplicación sea con cont=1. En el uso del cont++, evalua la condición con el
valor actual de cont, luego incrementa cont (post-incremento). Esto causa que se evalué hasta cont = 10
(11 iteraciones en total)
2.- El uso de un break en el programa2.c
Este programa ejecuta un ciclo infinito real, porque la condición while (100) siempre es verdadera
(cualquier número distinto de 0 en lenguaje C se considera verdadero). Por lo tanto, no hay ninguna
instrucción que modifique esta condición y no existe un mecanismo de salida dentro del ciclo.
Entonces, el programa imprimirá continuamente el mensaje hasta que el usuario fuerce su terminación.
Aunque, el programa 2 (con break), usa la misma condición while (100), la instrucción break se
implementa inmediatamente después del printf, lo que causa que el ciclo se interrumpa después de una
sola iteración. Por lo tanto, el mensaje solo se imprime una vez y el programa termina totalmente
después del break.
3.- Para el programa3.c el uso de la limpieza de cache en teclado
El programa muestra dos técnicas comunes para limpiar el buffer del teclado cuando se alterna entre
lectura de números y caracteres. La primera es getchar() captura el carácter de nueva línea (\n) residual
que queda en el buffer después de un scanf() previo. El otro es setbuf(stdin, NULL), cuya función es
desactivar el buffering para stdin.
4.-¿Para el programa4.c que pasa si divido entre cero?
Cuando haces una división por cero, al ejecutar el programa y realizar su prueba de escritorio, esta
operación indica que el resultado es infinito.
5.- Modifica el programa5.c para que comprendas el uso del ciclo for
Este programa calcula el promedio de calificaciones de un grupo (el que se haya indicado al momento
de declarar la variable
6.-Después de analizar el ejercicio6.c indica para qué sirve la cláusula define
La directiva #define es un procesador de marcos que sirve para crear un identificador (nombre) para
representar un valor constante, como en este caso, que #define MAX 5 significa que MAX
representará siempre el valor de 5. Además, hace que el código sea más comprensible. Por lo tanto,
#define MAX 5 permite fácilmente modificar el tamaño del arreglo cambiando solo ese valor, sin
necesidad de buscar/reemplazar múltiples apariciones del número 5 en el código.
7.- Actividad hoja en Aula virtual codifica el problema
INICIO
“Dame la altura”
“\n”
no si
n>0
“ ” k1 ; k<=n-1; k++
“*”
“\n”
K2, k<=n-1, k++
“” J1, j<=n-k, j++
“*”
“ ” j1 ; j<=2*k-3; j++
“*”
“\n”
no si
n>1
“*”
“ ” K1, k<=n-1, k++
“*”
“\n”
FIN
Compara y completa las instrucciones en el diagrama de flujo y el pseudocódigo, escribe en la cuadrícula cual es la salida de los
algoritmos para un valor de n=10
INICIO
ESCRIBIR “Dame la altura” ;
LEER n;
ESCRIBIR "\n";
SI n>0 ENTONCES
PARA k1 ; k<=n-1; k++
ESCRIBIR " ";
FINPARA
ESCRIBIR “*” ;
ESCRIBIR "\n";
FINSI
PARA K2 HASTA k<=n-1; k++
PARAj<-1; Hasta j<=n-k ;j++
ESCRIBIR " ";
FINPARA
ESCRIBIR "*";
PARA j1 ; j<=2*k-3; j++
ESCRIBIR " ";
FINPARA
ESCRIBIR "*";
ESCRIBIR "\n";
FINPARA
SI n > 1 ENTONCES
ESCRIBIR "*";
PARA k1; HASTA k<=n-1 ;k++
ESCRIBIR " ";
ESCRIBIR "*";
FINPARA
ESCRIBIR "\n";
FINSI
FIN
TAREA
1.- Solicitar radio a usuario y calcular el área.
2.- Mostrar la numeración del 10 al 1 haciendo uso del ciclo while
3.- Mostrar la tabla de multiplicar del número que ingrese el usuario con el ciclo for.
4.- Genera un menú con los 3 ejercicios anteriores y agrega el ciclo do-while con el fin de que el
usuario no pueda salir del programa hasta seleccionar la opción salir en el menú
5.- Del ejercicio de la calculadora, agregar condición a la división, si hay división entre cero pedir otro
valor al usuario hasta que coloque un valor diferente y se pueda realizar la división.
6.- Del programa5.c debe modificarlo para que permita solicitar al usuario el Número de alumnos a
evaluar empleando un ciclo while en lugar del ciclo for
7.- Completa el cuadro con las estructuras iterativas (MIENTRAS, HACER MIENTRAS Y PARA)
Estructura Diagrama Pseudocódigo Codificación
Iterativa Mientras MIENTRAS que While(expresión)
<expresión lógica> {
Secuencia de
Instrucciones Instrucciones
}
FIN DEL MIENTRAS
Iterativa HACER- HACER do
MIENTRAS {
Instrucciones Secuencia de
Instrucciones
MIENTRAS que }
<expresión lógica> While(expresión);
Iterativa PARA PARA For(inicialización;
<inicialización> condición; incremento)
HASTA <limite> Secuencia de
[PASO <incremente>] instrucciones
HACER
Instrucciones
FIN PARA
CONCLUSIÓN
Esta práctica ha sido fundamental para consolidar mi comprensión de las estructuras iterativas en C. A
través de los ejercicios.
Logré diferenciar entre pre-incremento (++cont) y post-incremento (cont++), entendiendo cómo
afectan el flujo de los ciclos y evitando errores comunes como iteraciones adicionales no deseadas.
Como también, manejar condiciones especiales*, como la división entre cero, implementando
validaciones con ciclos para garantizar entradas correctas y programas más robustos. Además, de
dominar el uso de while, do-while y for, adaptando cada estructura según la necesidad del problema.
Por ejemplo, usé while para solicitar datos dinámicos (como el número de alumnos) y for para tablas de
multiplicar con un rango fijo.
También pude ptimizar la interacción con el usuario, limpiando el buffer del teclado con getchar() o
setbuf(stdin, NULL) para evitar capturas incorrectas de caracteres e integrar conocimientos en un menú
interactivo con do-while, donde practiqué el diseño modular y la repetición controlada hasta que el
usuario elige salir.
REFERENCIAS
1. Joyanes Aguilar, L., Zahonero Martínez, I., Fernández Azuela, M., & Sánchez García, L.
(2008). Programación en C: Metodología, algoritmos y estructura de datos (2a ed.). McGraw-
Hill. https://intprog.files.wordpress.com/2013/08/programacion-en-c-metodologia-algoritmos-
y-estructura-de-datos-editorial-mcgraw-hill1.pdf
2. cppreference.com. (2023). C preprocessor. https://en.cppreference.com/w/c/preprocessor
3. Microsoft. (2023). Preprocessor directives. Microsoft Learn. https://learn.microsoft.com/en-
us/cpp/preprocessor/preprocessor-directives?view=msvc-170
4. Joyanes Aguilar, L. (2017). Fundamentos de programación (4a ed.). McGraw-Hill.
https://combomix.net/wp-content/uploads/2017/03/Fundamentos-de-programaci%C3%B3n-4ta-
Edici%C3%B3n-Luis-Joyanes-Aguilar-2.pdf