CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C....

20
CICLOS EN C – PARTE 3

Transcript of CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C....

Page 1: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLOS EN C – PARTE 3

Page 2: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

MENU DEL DIA

• Repaso clase anterior.• Estructuras en C.• Bucles en C.• Operadores de

incremento y decremento - abreviados.

• Ciclo While en C.• Ciclo For en C

Page 3: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

ESTRUCTURAS EN C

SI (expresión_logica) ENTONCES secuencia 1 | camino 1SINO Secuencia 2 | camino 2FIN_SI

if (expresión_logica) { código_secuencia1;}else { código_secuencia2;}

MIENTRAS(expresión_logica)HAGA secuencia FIN_MIENTRAS

while (expresion_logica) { secuencia}

PARA (VC = LI,LF,INC) HAGA secuencia FIN_PARA

for(expre1;expre2;expre3) { secuencia;}

Page 4: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO FOR EN C

Sintaxis:• La implementación este tipo de bucles es mas recomendable cuando el numero de repeticiones del ciclo se conoce por anticipado (caso cuantitativo).• Un ciclo for es como un ciclo while solo que a diferencia de este, el ciclo for maneja la inicialización e incremento de manera automática.• Hay dos formas básicas de implementación de la sentencia for, la forma ascendente y la descendente.

PARA(VC = LI,LF,INC)HAGA secuencia FIN_PARA

for (expre1;expre2;expre3) { secuencia}

Page 5: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO DO-WHILE EN C

Page 6: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO DO-WHILE EN C

Repetir secuenciaHasta Que expresión_logica

do{ secuencia} while (expresion_logica);

Sintaxis:

El ciclo do-while es similar al ciclo while, la única diferencia radica en que en este, la condición es lo ultimo que se evalúa.

Esta característica hace que el bucle se ejecute como mínimo una vez.

FuncionamientoInicialmente se ejecutan las sentencias dentro del cuerpo, posteriormente, se evalúa la condición de control, si el resultado es verdadero se repite la ejecución del cuerpo del bucle. Este proceso continua hasta que la condición se haga falsa.

Page 7: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO FOR EN C

condicion: Expresion logica que determina si se repiten o no las instrucciones contenidas en el cuerpo del bucle.

secuencia: Sentencias a ejecutar en cada iteración del bucle.

do{ secuencia} while (expresion_logica);

Page 8: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO DO-WHILE EN C• El ciclo do-while es útil en circunstancias en las cuales se tiene la certeza que una determinada acción se ejecutara una o varias veces, pero al menos una vez.

char opc; do{ printf(“señoras y señores … estas ricas y deliciosas galletas llamadas wafer Bridge de colombina claro esta sin ninguna clase de compromiso …\n”); scanf(“%c”,&opc) switch(opc) { case ‘a’: printf(“sabor a vainilla\n”); break; case ‘b’: printf(“sabor a fresa\n”); break; case ‘q’: printf(“no siendo mas me retiro, no dejar papelitos en este medio de transporte para que el seño conductor me permita en una proxima vez trabajar\n”); break; default: printf(“Nada mi niño, no hay de ese sabor\n”); break; } }while(opc != q);

Page 9: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO DO-WHILE EN Cchar digito;. . .do { printf(“Introduzca un digito (0-9): ”); scanf(“%c”,&digito)}while ((digito<'0')||(digito>'9‘)); . . .

#define FINAL 21. . .int x = 0;. . .do { printf(“%d ”,x++);}while (x<10);printf(“\n”,x++); . . .

char letra = ‘a’;. . .do { printf(“%d ”,car); car++;}while (car > ‘z’); . . .

Page 10: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

CICLO DO-WHILE EN C#define NUM_FINAL 20

int numero = 0;do { printf(“%d ”,numero); numero+=2;}while (numero <= NUM_FINAL); . . .

#define NUM_FINAL 20

int numero = 0;while (numero <= NUM_FINAL) { printf(“%d ”,numero); numero+=2;} . . .

Page 11: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

RESUMEN BUCLES EN C

do{ secuencia;} while (expresion_logica);

for (expre1;expre2;expre3) { secuencia;}

while (expresion_logica) { secuencia;}

Page 12: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

COMPARACION BUCLES EN C

do{ secuencia;} while (expresion_logica);

for (expre1;expre2;expre3) { secuencia;}

while (expresion_logica) { secuencia;}

El uso mas frecuente de este ciclo, es cuando la repetición no esta controlada por un contador; el test de condición procede a cada repetición del bucle; el cuerpo del bucle puede no ser ejecutado. Se debe utilizar cuando se desea saltar el bucle si la condición es falsa.

Bucle de conteo, cuando el numero de repeticiones se conoce por anticipado y puede ser controlado por un contador; también es adecuado para bucles que implican control no contable del bucles con simples etapas de inicialización y de actualización; el test de la condición precede a la ejecución de la ejecución del cuerpo del bucle.

Adecuado en caso de que se deba tener la certeza de que al menos el bucle se ejecutara una sola vez.

Page 13: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

DISEÑO DE BUCLESAl diseñar un bucle se necesitan considerar tres aspectos claves:1.Cuerpo del bucle.2.Sentencias de inicialización.3.Condiciones para la terminación del bucle.

Métodos para terminar un bucle

#define NUM_ALUMNOS 25. . .int i;for (i = 0, i < NUM_ALUMNOS; i++) { printf(“Digite la nota del alumno %d: ”,i); scanf(“%f”,&nota); if(nota<3.0) { printf(“El alumno %d perdio\n”,i); } else { printf(“El alumno %d gano\n”,i); }}. . .

Alcanzar el tamaño de la secuencia de entrada: Este caso se da cuando la variable de control alcanza el valor final conocido con antelación .

Page 14: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

DISEÑO DE BUCLESPreguntar antes de la iteración: La idea es preguntar al usuario después de cada iteración del bucle si este debe ser o no iterado de nuevo.

. . .int numero, suma = 0;char resp = ‘S’;while ((resp == ‘S’) || (resp == ‘s’)) { printf(“Introduzca un numero: ”); scanf(“%d”,&numero); sums += numero; printf(“¿Existen mas numeros? (S para Si, N para No)”); scanf(“%d”,&resp); }. . .

Page 15: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

DISEÑO DE BUCLESValor centinela: Un valor centinela es aquel que es totalmente distinto de todos los valores posibles de la lista que se esta leyendo indicando de este modo el final de la lista. Un ejemplo típico se presenta cuando se lee una lista de números positivos; un numero negativo se puede utilizar como valor centinela para indicar el final de la lista.

. . .int numero, suma = 0;printf(“Introduzca una lista de numeros positivos \n”);printf(“Termine la lista con un numero negativo \n”);scanf(“%d”,&numero);while (numero >= 0) { printf(“Introduzca un numero: ”); suma += numero; scanf(“%d”,&numero);}printf(“La suma es %d suma. \n”,suma);. . .

Page 16: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

ANIDAMIENTO DE BUCLESEl anidamiento de bucles es permitido. Los bucles anidados constan de un bucle externo con uno o mas bucles internos. Cada vez que se repite el bucle externo, los bucles internos se repiten, se vuelven a evaluar los componentes de control l y se ejecutan todas las iteraciones requeridas.

. . .for (i= 0; i < 4; i++) { printf ("Externo\t %d\n",i ); for (j = 0; j < i; j++) { printf ("Interno\t\t% d \n",j ); }}printf("\n");. . .

Page 17: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

ANIDAMIENTO DE BUCLES

. . .for (i= 0; i < filas; i++) { for (j= 0; j < num_espacios; j++) { printf (" "); } num_espacios--; for (j = 0; j < num_asteriscos; j++) { printf ("*"); } printf("\n"); num_asteriscos += 2; }printf("\n");. . .

Page 18: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

EJERCICIOS1. Escribir un programa que visualice el siguiente dibujo:

2. Escribir un programa que visualice la siguiente salida:

Page 19: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.

EJERCICIOS3. Escribir un programa que visualice el siguiente dibujo:

4. Calcular el factorial de un numero leído desde el teclado utilizando las sentencias: while, do-while y for.

5. Encontrar el numero mayor de una serie de números positivos.6. Escribir un programa que calcule la suma de los primeros 50 números enteros.7. Diseñar un programa que cuente el numero de sus entradas que son positivos,

negativos y cero.8. Diseñar un programa que despliegue los N primeros términos de la serie Fibonacci

esta se muestra a continuación: 0, 1, 1, 2, 3, 5, 8, 13, 21, 33,…9. Realizar un programa que determine si un numero ingresado por teclado es primo o

no.10. Diseñar un programa que calcule y despliegue los N primeros números primos.

Page 20: CICLOS EN C – PARTE 3. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While.