ciclos en c – parte 2. menu del dia repaso clase anterior. estructuras en c. bucles en c....

18
CICLOS EN C – PARTE 2

Upload: alondra-terrazas

Post on 22-Jan-2015

12 views

Category:

Documents


5 download

TRANSCRIPT

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

CICLOS EN C – PARTE 2

Page 2: CICLOS EN C – PARTE 2. 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 2. 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 2. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While

BUCLES EN C

condición

cuerpo

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

OPERADORES DE INCREMENTO Y DECREMENTO - ABREVIADOS

Operación sintaxis

Significado

Postincremento i++ i = i + 1

Preincremento ++i i = i + 1

Postdecremento i-- i = i - 1

predecremento --i i = i - 1

Post Primero se asigna y luego se incrementa o decrementa.

Pre Primero se incrementa o decrementa y luego se asigna.

Cuando hay una operación de asignación que involucre operaciones de este tipo

z = x++

z = --x

a op= b a = a op b

+, -, *, /

a += b; a = a + b;c -= 2; c = c – 2;d *= 3; d = 3*d;f /= g; f = f/g;

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

CICLO WHILE EN C

MIENTRAS(expresión_logica)HAGA secuencia FIN_MIENTRAS

while (expresion_logica) { secuencia}

Sintaxis: Recomendaciones (preguntas clave - requisitos)

Control de ciclos• Caso cuantitativo. (Se conoce el numero de veces que se va a repetir el ciclo – bucles controlados por contador).• Caso cualitativo. (No se conoce cuantas veces se va a repetir el ciclo).

Control por centinela. Control por indicador (bandera).

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

CICLO FOR EN C

condición

cuerpo

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

CICLO WHILE EN CLa sentencia for (bucle for) es un método para controlar una sentencia o bloque de sentencias un numero fijo de veces. Este bucle es mas adecuado para implementar bucles controlados por contador, es decir bucles de conteo en los que el numero de repeticiones se conoce por anticipado.

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

for (expre1;expre2;expre3) { secuencia}

Sintaxis:

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

CICLO FOR EN C

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

for (expre1;expre2;expre3) { secuencia}

expre1 – inicialización: Da un valor inicial a la variable de control del bucle. Se ejecuta solo una vez antes de la evaluación de la expresión de control. Se pueden inicializar una o varias variables.

expre2 – Expresión de control: Condición que contiene una expresión lógica, mientras sea verdadera se realiza el bucle.

expre3 – ajuste (actualización): Incrementa o decrementa la variable de control del bucle.

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

LF: Ajuste (+/-)

VC: Valor final

VC: Valor inicial

VC: Variable de control

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

CICLO FOR EN C• Existen dos formas de implementación de la sentencia for.

for (expre1;expre2;expre3) { secuencia}

for(var_control=valor_inicial; var_control<=valor_limite; exp_incremento) { secuencias;}

for(var_control=valor_inicial; var_control>=valor_limite; exp_decremento) { secuencias;}

Forma ascendente

Forma ascendente

La variable de control se incrementa

La variable de control se decrementa

for(i = 0; i <= 10; i++) for(i = -1; i <= 7; i+=2) for(i = -100; i <= -20; i*=5) for(i = -1; i <= 1; i = 10)

for(i = 100; i >= 10; i-=40) for(i = 25; i >= 7; i-=2) for(i = 0; i >= -10; i--) for(i = -150; i >= -750; i-=20)

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

CICLO WHILE EN CAlgunas anotaciones sobre los ciclos for.• Los rangos de incremento o decremento de la variable o expresion de control del bucle pueden ser cualquier valor y no siempre 1, es decir 5, 10, 20, 4, etc, dependiendo de los intervalos que se necesiten.

int n = 0; for(n = 0; n <100; n +=20) printf(“%d %d \n”, n, n*n);

int; for(i = ‘a’; i <= ‘h’; i += 3) { printf(“%d %c \n”, i, i);}

int j; for(j = 9; j >= 2; j -= 2) { printf(“%d\n”, i - 1);}

int k; for(k = 1; k < 100; k *=2) { printf(“%d\n”, k);}

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

CICLO FOR EN C• 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 13: CICLOS EN C – PARTE 2. MENU DEL DIA Repaso clase anterior. Estructuras en C. Bucles en C. Operadores de incremento y decremento - abreviados. Ciclo While

CICLO FOR EN C

for (;;) { printf(“fuck! \n”);}

• Cuando no se tiene expresión de inicialización, condición y actualización (incremento o decremento) en el bucle for, este se ejecuta de manera infinita

Para romper la ejecución de un programa presione las teclasCTRL + C

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

CICLO FOR EN C

for (i = 1; i <= 10;i++); printf(“Solo sale una vez\n ”);

• Situar un punto y coma (;) después del paréntesis inicial de un bucle for hace que el cuerpo del bucle este vacio.

• El operador coma (,) permite extender la flexibilidad del ciclo for ya que este permite incluir mas de una expresión de inicialización o actualización en una única especificación del loop.

#define MAX 25int i, j;for (j = 0, j <= MAX; i < j; i++,j--) { printf(“%d ”, (i + 2*j));}

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

CICLO FOR EN COjo, si el cuerpo de un bucle de conteo modifica los valores de cualquier variable implicada en la condición del bucle, entonces el numero de repeticiones se puede ver afecta; es decir, no es recomendable modificar el valor de cualquier variable de condición dentro del cuerpo de un bucle for, ya que esto puede producir resultados imprevistos.

. . .int i;. . .for (i <= 1; i <= 11; i++) { printf(“***\n”); i++; }

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

SENTENCIAS BREAK y CONTINUEbreakEsta sentencia termina la ejecución del bucle, permitiendo que el punto de control de la ejecución se salga del bucle.

. . .int j;. . .for (j <= 1; i < 10; j++) { printf(“no te doy otra no mas !!!!\n”); if (i > 3) { break; }}

ContinueHace que la ejecución del bucle vuelva a la cabecera del bucle.

. . .int j;. . .for (j <= 1; i < 10; j++) { printf(“no te doy otra no mas !!!!\n”); if (i > 3 && i <= 9) { continue; }}

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

SENTENCIAS BREAK y CONTINUEbreakEsta sentencia termina la ejecución del bucle, permitiendo que el punto de control de la ejecución se salga del bucle.

. . .int j;. . .for (j <= 1; i < 10; j++) { printf(“no te doy otra no mas !!!!\n”); if (i > 3) { break; }}

ContinueHace que la ejecución del bucle vuelva a la cabecera del bucle.

. . .int j;. . .for (j <= 1; i < 10; j++) { printf(“no te doy otra no mas !!!!\n”); if (i > 3 && i <= 9) { continue; }}

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