La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados.

Presentaciones similares


Presentación del tema: "2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados."— Transcripción de la presentación:

1 2011/1 - CLASE 12

2

3 AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados

4 Introducción En C existen tres estructuras de control repetitivas: Mientras Para Haga-mientras Pseudocódigo while for do-while Lenguaje C

5 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

6 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

7 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. Algunas preguntas de utilidad: ¿Qué es lo que debe contener el cuerpo del bucle? Cuantas veces se itera el bucle.

8 Introducción 1 El cuerpo del ciclo. 2 Las sentencias de inicialización. 3 Las condiciones para la terminación del bucle.

9 Introducción Las estructuras ciclicas se terminan cuando: 1.La condición de evalución se vuelve falsa 2.Cuando se ejecuta la instrucción break o return

10 AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 24 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados

11 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

12 SENTENCIA WHILE Sintaxis Mientras (condición) haga Instrucciones fin_mientras while (condición){ Instrucciones; } Pseudocódigo Lenguaje C

13 (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. Inicializada. Comprobada. Comprobada. Actualizada. Actualizada. 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. Inicializada. Comprobada. Comprobada. Actualizada. Actualizada. Cuerpo Fin

14 (Condición) SENTENCIA WHILE Sentencia while Cuerpo Fin while (contador < n) { ;... contador = contador+1; ;... contador = contador+1; } } Inicialización contador = 0; Comprobación Actualización

15 Falso Verdadero Cuerpo del bucle SENTENCIA WHILE Sentencia while CONDICIÓN EVALUAR Verdadero EJECUTAR Falso Fin del ciclo

16 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++; }

17 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",&nota); if (nota < MIN_NOTA){ printf("El estudiante perdio\n"); } printf("Ingrese 0 para continuar, 1 para salir: "); scanf("%d",&salir); }

18 AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 3 4 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados

19 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

20 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

21 SENTENCIA WHILE Sintaxis para VC desde LI hasta LF con INC fin_para for( VC; condicionBucle; INC o DEC ) { instrucciones; } Pseudocódigo Lenguaje C

22 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

23 (Condición) SENTENCIA FOR Sentencia for Cuerpo Fin for(i = 1 ; i < n; i++) { ;... ;... } } Inicialización Comprobación Actualización

24 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); } 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); } float n; for (n=1; n>= 0; n-=0.1) { printf(“n = %f\n”, n); }

25 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); }

26 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);

27 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); }

28 SENTENCIA DO-WHILE Comparación while, for for( VC; condición; INC) { instrucciones; } InicializaciónVC; while (condición) { InstruccionesX; INC; } while for

29 SENTENCIA WHILE Y FOR Recomendaciones

30 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--; }

31 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; }

32 AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 4 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados 4

33 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

34 SENTENCIA DO-WHILE Sentencia do-while CONDICIÓN Cuerpo del bucle Falso verdadero EJECUTAR EVALUAR verdadero Falso Fin del ciclo

35 SENTENCIA DO-WHILE Sintaxis do { Instrucciones; } while (expresión);

36 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

37 SENTENCIA DO-WHILE Comparación while, do-while do { InstruccionesX; } while (expresión); while (expresión) { InstruccionesX; } while do-while

38 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);

39 SENTENCIA WHILE Y FOR Recomendaciones

40 AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 4 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados 5

41 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.

42 Falso Verdadero Cuerpo del bucle SENTENCIA WHILE Instrucción break CONDICIÓN EVALUAR Verdadero EJECUTAR Fin del ciclo break;

43 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.

44 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

45 INTRUCCIONES ESPECIALES Instrucción continue #include #define MAX_CONT 10 #define CAR_ESPECIAL 0 int 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; } VCCONDICIÓN EJECUTA msj read No se ingresó 0 Volver al ciclo INC Se ingresó 0 msj conteo=2 1<=10 ? i=i+1 i=1+1 i=2 2<=10 ? … 11<=10 ? Fin del ciclo

46 AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 4 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados 6

47 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; }

48 RESUMEN VBLE_CONTROL Valor 1 secuencias 1 Otras secuencias Valor 2 OtrosValores... CONDICION NO (falsa) secuencias 1 secuencias 2 SI (verdadera) Vble1 <- vble Vble2 <- valor Vble3 <- constante... VbleN <- expresión Diagrama de Flujo Pseudocódigo Lenguaje C

49 RESUMEN MQ(CONDICIÓN Cuerpo del bucle Falso verdadero PARA VC=LI, LF,INC Cuerpo del bucle Falso verdadero MQ(CONDICIÓ) Cuerpo del bucle Falso verdadero Diagrama de Flujo Pseudocódigo Lenguaje C

50 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++ Google

51


Descargar ppt "2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados."

Presentaciones similares


Anuncios Google