Download - 1clase e12 estructurasderepeticionc
![Page 1: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/1.jpg)
INFORMATICA I
2011/1 - CLASE 12
Estructuras de Repetición en C
![Page 2: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/2.jpg)
![Page 3: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/3.jpg)
AGENDA1 Introducción
2 Sentencia while
3 Sentencia for
1 Introducción
4 Sentencia do-while
5 Instrucciones Especiales
6 Ciclos anidados
![Page 4: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/4.jpg)
Introducción
Introducción
En C existen tres estructuras de control repetitivas:
MientrasParaHaga-mientras
Pseudocódigo
whilefordo-while
Lenguaje C
![Page 5: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/5.jpg)
Ciclos en C
Un ciclo (bucle) es una estructura que permite la repetición de una o mas instrucciones un determinado numero de veces.
http://www.youtube.com/watch?v=aeg0mLp9IB0
![Page 6: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/6.jpg)
Ciclos en C
Expresión lógica que controla la secuencia de repetición. Normalmente, se evalúa antes de la ejecución del cuerpo del bucle.
Conjunto de instrucciones (asociadas al problema) que se ejecutan dentro del bucle:• Estructuras condicionales.• Instrucciones I/O.• Otros bucles.• Instrucciones de asignación.• Funciones.
(Condición)
Cuerpo
Fin
![Page 7: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/7.jpg)
Principios a considerar cuando se usan bucles c
Es importante analizar los requisitos del bucle,
pues se debe determinar su
inicialización, condición y actualización.
¿Qué principios considerar cuando se
diseñan bucles?
Algunas preguntas de utilidad:
• ¿Qué es lo que debe contener el cuerpo del
bucle?• Cuantas veces se itera
el bucle.
![Page 8: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/8.jpg)
Introducción
Introducción
1• El cuerpo del ciclo.
2• Las sentencias de inicialización.
3• Las condiciones para la terminación
del bucle.
![Page 9: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/9.jpg)
Introducción
Introducción
Las estructuras ciclicas se terminan cuando:1. La condición de evalución se vuelve falsa2. Cuando se ejecuta la instrucción break o
return
![Page 10: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/10.jpg)
AGENDA1 Introducción
2 Sentencia while
3 Sentencia for
2 Sentencia while
4 Sentencia do-while
5 Instrucciones Especiales
6 Ciclos anidados
![Page 11: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/11.jpg)
SENTENCIA WHILE
Sentencia while
Realiza un conjunto de operaciones mientras una condición se esté cumpliendo, o mientras una expresión sea verdadera
1• Se evalúa la condición-bucle
2• Si condición-bucle es verdadera :
• Se ejecuta el cuerpo del bucle• Vuelve el control al paso 1.
3• Si condición-bucle es falsa :
• Se termina el ciclo.
*• Condiciones:
• Cuantitativas y Caulitativas
![Page 12: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/12.jpg)
SENTENCIA WHILE
Sintaxis
Mientras (condición) hagaInstrucciones
fin_mientras
while (condición){Instrucciones;
}
Pseudocódigo
Lenguaje C
![Page 13: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/13.jpg)
(Condición)
SENTENCIA WHILE
Sentencia while
Variable de control: Variable que representa la condición del bucle ya que su valor determina si el bucle se repite o no. Esta debe ser:• Inicializada.• Comprobada.• Actualizada.
Cuerpo
Fin
![Page 14: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/14.jpg)
(Condición)
SENTENCIA WHILE
Sentencia while
Cuerpo
Fin
while (contador < n) {
<Instrucciones>; ... contador = contador+1;
}
Inicializacióncontador = 0;
Comprobación
Actualización
![Page 15: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/15.jpg)
Falso
Verdadero
Cuerpo del bucle
SENTENCIA WHILE
Sentencia while
CONDICIÓNEVALUAR
Verdadero
EJECUTAR
Falso
Fin del ciclo
![Page 16: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/16.jpg)
SENTENCIA WHILE
Ejemplo1
Realizar un programa que cuente hasta N
i = 0;while (i <= N) { printf("El valor del conteo es: %d\n", i); i++;}
![Page 17: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/17.jpg)
SENTENCIA WHILE
Ejemplo2
Realizar un programa que pida que se ingresen las notas de los estudiantes, y que cuando halla una nota menor que 3, muestre un mensaje que diga “El estudiante perdió”. El programa únicamente debe finalizar cuando el usuario lo desee.
salir = 0;while (salir!=1) { printf("Ingrese la nota del estudiante:"); scanf("%f",¬a); if (nota < MIN_NOTA){ printf("El estudiante perdio\n"); } printf("Ingrese 0 para continuar, 1 para salir: "); scanf("%d",&salir);}
![Page 18: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/18.jpg)
AGENDA1 Introducción
2 Sentencia while
3 Sentencia for3 Sentencia for
4 Sentencia do-while
5 Instrucciones Especiales
6 Ciclos anidados
![Page 19: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/19.jpg)
SENTENCIA FOR
Sentencia for
Realiza un conjunto de operaciones un determinado número de veces
1• Se inicializa la variable de control y se
evalúa la condición-bucle
2• Si condición es verdadera :
• Se ejecuta el cuerpo del bucle• Se incrementa la variable y se evalúa la condición
3• Si condición-bucle es falsa :
• Se termina el ciclo.
*• Condiciones:
• Cuantitativas
![Page 20: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/20.jpg)
SENTENCIA FOR
Sentencia for
Recomendado para:
1• Ciclos que son controlados por
contador
2• Ejecutar un conjunto de instrucciones un
determinado número de veces
![Page 21: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/21.jpg)
SENTENCIA WHILE
Sintaxis
para VC desde LI hasta LF con INC<Instrucciones>
fin_para
for( VC; condicionBucle; INC o DEC){
instrucciones;}
Pseudocódigo
Lenguaje C
![Page 22: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/22.jpg)
SENTENCIA FOR
Sintaxis
for(VC; condicionBucle; INC o DEC){ instrucciones;}
Expre3: Modificación vble, como cambia la variable de control
Expre1: Se le da el valor inicial a la variable de control del bucle. Se pueden inicializar una o varias variables.
Expre2: Condición, que contiene una expresión lógica, mientras sea verdadera se realiza el bucle
![Page 23: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/23.jpg)
(Condición)
SENTENCIA FOR
Sentencia for
Cuerpo
Fin
for(i = 1 ; i < n; i++) {
<Instrucciones>; ...
}
InicializaciónComprobación
Actualización
![Page 24: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/24.jpg)
SENTENCIA FOR
Sintaxis
La(s) variable de control se puede incrementar o decrementar no solo en valores tipo int, también es
posible realizar tales operaciones usando valores tipo float o double permitiendo el incremento o decremento
en cantidades decimales.
double p; for(p=0.75; p<=5; p+= 0.25) { printf(“p = %lf\n”, p);}
float n; for(n=1; n>= 0; n-=0.1) { printf(“n = %f\n”, n);}
![Page 25: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/25.jpg)
SENTENCIA FOR
Ejemplo1
Realice programa que muestre los N primeros factoriales
fact=1;for (i = 1; i <= N; i++) { fact=fact*i; printf("factorial de %d: %d\n",i,fact); }
for (i = 1,fact=1; i <= N; i++) { fact=fact*i; printf("factorial de %d: %d\n",i,fact); }
![Page 26: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/26.jpg)
SENTENCIA FOR
Ejemplo2
Realice programa que sume los N primeros naturales pares.
suma=0; for (i = 1; i <= N; i++) { if(i%2==0){ suma+=i; } } printf("La suma es: %d\n",suma);
![Page 27: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/27.jpg)
SENTENCIA FOR
Ejemplo3
Realice programa que muestre los 10 primeros impares naturales, en orden descendente.
for (i = MAX_NUM; i >= 0; i--) { if(i%2 != 0){ printf("numero par: %d\n",i); }}
![Page 28: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/28.jpg)
SENTENCIA DO-WHILE
Comparación while, for
for( VC; condición; INC){
instrucciones;}
InicializaciónVC;while (condición){ InstruccionesX; INC;}
whilefor
![Page 29: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/29.jpg)
SENTENCIA WHILE Y FOR
Recomendaciones
While: El uso más frecuente es cuando la repetición no está controlada por contador; la condición precede a cada repetición del bucle.
For: Bucle de conteo, cuando el número de repeticiones se conoce por anticipado y puede ser controlado por un contador; la evaluación de la condición precede a la ejecución del cuerpo del bucle.
![Page 30: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/30.jpg)
SENTENCIA WHILE Y FOR
Recomendaciones
En el ciclo for no es recomendable modificar el valor de cualquiera de las variables de la condición del bucle dentro del cuerpo del bucle, ya que se pueden producir resultados imprevistos.
int i,limite = 11;for (i = 0; i <= limite; i++){
printf ( "%d\n" , i ) ;Iimite++ ;
}
for (i = 0; i <= limite; i++){
print f ("%d\n",i);i--;
}
![Page 31: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/31.jpg)
SENTENCIA WHILE Y FOR
Bucles infinitos
Aplicaciones en los que el número de repeticiones no se pueden determinar por anticipado. Interesa que comiencen pero eventualmente que no terminen.
for ( ; ; ){ Instrucciones; if(condiciónTerminación)
break;}
while(1){ Instrucciones; if (condiciónTerminación)
break;}
![Page 32: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/32.jpg)
AGENDA1 Introducción
2 Sentencia while
3 Sentencia for
4 Sentencia do-while
5 Instrucciones Especiales
6 Ciclos anidados
4 Sentencia do-while
![Page 33: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/33.jpg)
SENTENCIA DO-WHILE
Sentencia do-while
1• Se ejecuta el cuerpo del bucle.
2• Se evalúa la condicion.
• Si se cumple la condición, entonces se repite la ejecución de sentencia.
3• Se evalúa la condicion.
• Si no se cumple la condición la estructura termina y da paso a la continuación del programa
Bucle condicional que se ejecuta al menos una vez.
*• Condiciones:
• Cuantitativas y Caulitativas
![Page 34: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/34.jpg)
SENTENCIA DO-WHILE
Sentencia do-while
CONDICIÓN
Cuerpo del bucle
Falso
verdadero
EJECUTAR
EVALUAR
verdadero
Falso
Fin del ciclo
![Page 35: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/35.jpg)
SENTENCIA DO-WHILE
Sintaxis
do { Instrucciones;} while (expresión);
![Page 36: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/36.jpg)
SENTENCIA DO-WHILE
Comparación while, do-while
CONDICIÓN
Cuerpo del bucle
Falso
verdadero
CONDICIÓN
Cuerpo del bucle
Falso
verdadero
while do-while
![Page 37: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/37.jpg)
SENTENCIA DO-WHILE
Comparación while, do-while
do { InstruccionesX;} while (expresión);
while (expresión) { InstruccionesX;}
while do-while
![Page 38: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/38.jpg)
SENTENCIA DO-WHILE
Ejemplo
Programa que imprime un mensaje “continua programa” hasta que se le ingrese un carácter de terminación 0. (Realicelo con while, luego con do-while y compare!!)
do{ printf("continuar programa\n"); printf("Ingrese 0 para salir: "); scanf("%d",&salir);}while (salir!=CAR_FIN);
![Page 39: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/39.jpg)
SENTENCIA WHILE Y FOR
Recomendaciones
do -while: El uso más frecuente es cuando la repetición no está controlada por contador; el cuerpo del ciclo precede a la condición.
![Page 40: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/40.jpg)
AGENDA1 Introducción
2 Sentencia while
3 Sentencia for
4 Sentencia do-while
5 Instrucciones Especiales
6 Ciclos anidados
5 Instrucciones Especiales
![Page 41: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/41.jpg)
INTRUCCIONES ESPECIALES
Instrucción break
La sentencia break es utilizada como método de terminación TEMPRANA del bucle a la que pertenece.
Si mientras se ejecuta el cuerpo del bucle, se encuentra con la instrucción break, se terminará inmediatamente el ciclo.
![Page 42: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/42.jpg)
Falso
Verdadero
Cuerpo del bucle
SENTENCIA WHILE
Instrucción break
CONDICIÓNEVALUAR
Verdadero
EJECUTAR
Fin del ciclo
break;
![Page 43: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/43.jpg)
INTRUCCIONES ESPECIALES
Ejemplo
Realizar un programa que pida que se ingresen notas de N estudiantes, y que cuando halla una nota mayo que 3, muestre un mensaje que diga “Hay alguien que ganó”, y termine el programa inmediatamente.
![Page 44: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/44.jpg)
INTRUCCIONES ESPECIALES
Instrucción continue
La sentencia continue hace que la ejecución de un bucle vuelva inmediatamente a la cabecera del bucle.
Programa que muestra conteo hasta 10, se muestra el siguiente valor del conteo solo si se le ha ingresado el número 0
![Page 45: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/45.jpg)
INTRUCCIONES ESPECIALES
Instrucción continue
#include <stdio.h>#define MAX_CONT 10#define CAR_ESPECIAL 0int main(void){ int i, equiv=0; int mostrar; for (i = 1; i <= MAX_CONT; i++) { printf("Ingrese 0 si quiere ver el conteo:"); scanf("%d", &mostrar); if (mostrar!= CAR_ESPECIAL){ continue; } printf("El valor del conteo es: %d\n", i); } return 0;}
VC CONDICIÓN
EJECUTA
msjread
No se ingresó 0Volver al ciclo
INC
Se ingresó 0
msj conteo=2
1<=10 ?
i=i+1i=1+1i=22<=10 ? …11<=10 ?
Fin del ciclo
![Page 46: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/46.jpg)
AGENDA1 Introducción
2 Sentencia while
3 Sentencia for
4 Sentencia do-while
5 Instrucciones Especiales
6 Ciclos anidados6 Ciclos anidados
![Page 47: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/47.jpg)
Ciclos Anidados
Ciclos anidados
Se pueden anidar ciclos repetitivos. Útil para aplicaciones de matrices de mas de una dimensión.
for( i=0; i<LIM1; i++){ for( j=0; j<LIM2; j++)
{Instruciones1;
}}
![Page 48: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/48.jpg)
Ciclos Anidados
Ejemplo1
Realice un programa que muestre las primeras 5 potencias(Utilizando multiplicaciones) de los primeros 7 naturales.
![Page 49: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/49.jpg)
Ciclos Anidados
Ejercicio
Realice un programa que muestre la siguiente secuencia de números:112123123412345…
El usuario debe ingresar cual es el ultimo numero que se debe mostrar en un renglón.
![Page 50: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/50.jpg)
Bibliografía
• Joyanes Aguilar, Luis. PROGRAMACIÓN EN C. Metodología, algoritmos y estructura de datos Capitulo3.
• H.M. Deitel, P.J. Deitel. Como programar en C y C++
![Page 51: 1clase e12 estructurasderepeticionc](https://reader033.vdocumento.com/reader033/viewer/2022061616/559133b21a28abb3628b46f6/html5/thumbnails/51.jpg)
GRACIAS POR SU ATENCIÓN