2. Objetivo
Continuar con la revisión de las estructuras
selectivas y cíclicas, analizando códigos de
ejemplo donde se utilicen dichas estructuras de
forma anidada.
3. Pregunta para puntos extra
1. Investiga ¿Cómo se tendría que
realizar la programación, si no
existieran estructuras cíclicas?
4. Estructuras Iterativas
for
El uso más frecuente de este tipo de bucles se produce
cuando el número de repeticiones se conoce por
anticipado y la condición del bucle puede ser controlada
por un contador.
while
El uso más frecuente se produce cuando la repetición del
bucle no está controlada por un contador sino por una
cierta condición (simple o compleja). El bucle puede que no
se ejecute ninguna vez.
do while
Se utiliza en las mismas condiciones que el while y cuando
además se debe asegurar que el bucle se ejecute al menos
una vez. Ejemplo: menú de opciones.
5. Ciclos for anidados
printf("Ciclos for anidados (Ciclo j dentro de ciclo i)n");
printf(“¿Cuántas repeticiones quieres para el ciclo i? ");
scanf("%d", &m);
printf (“¿Cuántas repeticiones quieres para el ciclo j? ");
scanf("%d", &n);
contador = 0;
printf("Impresión de parejas de valores i,jn");
for(i=1;i<=m;i++) //ciclo externo i
{ for(j=1;j<=n;j++) //ciclo interno j
{ printf("%d,%d ", i,j);
contador++; }
printf("n");
}
printf("El número de veces que se repitió el ciclo interno fue: %d
n", contador);
6. Ciclos for anidados (Ciclo j dentro de ciclo i)
¿Cuántas repeticiones quieres para el ciclo i? 5
¿Cuántas repeticiones quieres para el ciclo j? 4
Impresión de parejas de valores i,j
1,1 1,2 1,3 1,4
2,1 2,2 2,3 2,4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4
5,1 5,2 5,3 5,4
El número de veces que se repitió el ciclo interno fue: 20
Presione una tecla para continuar . . .
Ejecución de for anidados
El número de veces que se repite el ciclo interno se
calcula con la operación i * j
7. Par o impar con if y do while
int num;
printf("Par o imparn");
do
{ printf("Dame un número (0 para terminar): ");
scanf("%d", &num);
if(num%2 == 1) //Si sobra algo, es impar
printf("El número %d es imparn", num);
else //Si no sobra es par
printf("El número %d es parn", num);
} while(num!=0); //0 es el valor centinela
system("pause");
return 0;
8. Par o impar
Dame un número (0 para terminar): 8
El número 8 es par
Dame un número (0 para terminar): 5
El número 5 es impar
Dame un número (0 para terminar): 9
El número 9 es impar
Dame un número (0 para terminar): 0
El número 0 es par
Presione una tecla para continuar . . .
Hasta que se introduce el valor centinela de 0, el
ciclo do while termina.
Ejecución de par o impar con if y do while
9. Pregunta para puntos extra
1. Investiga ¿Cómo se tendría que
realizar la programación, si no
existieran estructuras cíclicas?
10. Ciclos while y do while anidados
printf("Promedio de calificaciones en el rango 0 a 10n");
suma = 0; n = 0; respuesta = 'S';
while(respuesta=='S' || respuesta=='s')
{ do
{ printf("Dame la calificación %d: ", n+1);
scanf("%f", &calif);
fflush(stdin); //Limpia el buffer de entrada
if(calif>=0 && calif<=10) //Calificación dentro del rango 0 a 10
n++; //Aumenta el contador de calificaciones
else
printf("La calificación %.2f no está en el rango 0 a 10. Intenta de
nuevo.n", calif);
} while(calif<0 || calif>10);
suma = suma + calif;
printf("¿Quieres capturar más calificaciones (S/N)? ");
scanf("%c", &respuesta);
}
promedio = suma / n;
printf("El promedio de las %d calificaciones es %.2fn", n, promedio);
11. Promedio de calificaciones en el rango 0 a 10
Dame la calificación 1: 8.45
¿Quieres capturar más calificaciones (S/N)? S
Dame la calificación 2: 12
La calificación 12.00 no está en el rango 0 a 10. Intenta de
nuevo.
Dame la calificación 2: 7.65
¿Quieres capturar más calificaciones (S/N)? s
Dame la calificación 3: 8.9
¿Quieres capturar más calificaciones (S/N)? N
El promedio de las 3 calificaciones es 8.33
Presione una tecla para continuar . . .
Ejecución de ciclos while y do while anidados
12. Menú con do while y switch anidados
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{ int opc;
float num;
do
{ printf("Dame un número: ");
scanf("%f", &num);
printf("Menú de opcionesn");
printf("1 Cuadrado de un númeron");
printf("2 Cubo de un númeron");
printf("3 Raíz cuadrada de un númeron");
printf("4 Salirn");
printf("Elige tu opción: ");
scanf("%d", &opc);
13. Menú con do while y switch anidados
switch (opc)
{ case 1: printf("Elegiste Cuadradon");
printf("El cuadrado de %.2f es %.2fn", num, pow(num,2));
break;
case 2: printf("Elegiste Cubon");
printf("El cubo de %.2f es %.2fn", num, pow(num,3));
break;
case 3: printf("Elegiste Raíz cuadradan");
printf("La raíz cuadrada de %.2f es %fn", num, sqrt(num));
break;
case 4: printf("Elegiste Salir. Hasta la próxima.n");
break;
default: printf("Opción incorrectan");
break; } //Fin de switch
} while(opc!=4); //El ciclo termina con la opción 4
system("pause");
return 0;
}
14. Dame un número: 5
Menú de opciones
1 Cuadrado de un número
2 Cubo de un número
3 Raíz cuadrada de un número
4 Salir
Elige tu opción: 2
Elegiste Cubo
El cubo de 5.00 es 125.00
Dame un número: 45
Menú de opciones
1 Cuadrado de un número
2 Cubo de un número
3 Raíz cuadrada de un número
4 Salir
Elige tu opción: 3
Elegiste Raíz cuadrada
La raíz cuadrada de 45.00 es 6.708204
Ejecución de menú con do while y switch
15. Dame un número: 4
Menú de opciones
1 Cuadrado de un número
2 Cubo de un número
3 Raíz cuadrada de un número
4 Salir
Elige tu opción: 7
Opción incorrecta
Dame un número: 9
Menú de opciones
1 Cuadrado de un número
2 Cubo de un número
3 Raíz cuadrada de un número
4 Salir
Elige tu opción: 4
Elegiste Salir. Hasta la próxima.
Presione una tecla para continuar . . .
Ejecución de menú con do while y switch
16. Es muy importante conocer las
estructuras de selección y repetición, y la
forma de combinarlas en anidamientos,
para agregar funcionalidad a nuestros
códigos.
Conclusiones
17. Bibliografía
Programación en C - CICLO WHILE (CPlayMas H, 2013). Explica la
estructura While, su sintaxis y la forma de aplicarse en lenguaje C.
Programación en C - CICLO DO WHILE (CPlayMas H, 2013). Explica la
estructura Do while, su sintaxis y la forma de aplicarse en lenguaje C.
Programación en C - Ciclo FOR (CPlayMas H, 2013). Explica la
estructura For, su sintaxis y la forma de aplicarse en lenguaje C.
La estructura repetiva (Tortolero, 2007). Explica los diferentes usos de
las instrucciones de repetición en lenguaje C.
https://www.poctzin.com.mx/programacionc/index.html
Sitio personal del profesor donde encontrarán los programas que se
abordarán en las open class.
18. Pregunta para puntos extra
1. Investiga ¿Cómo se tendría que
realizar la programación, si no
existieran estructuras cíclicas?