ciclos en c

Upload: sebastian-alvarez-quevedo

Post on 18-Oct-2015

14 views

Category:

Documents


0 download

DESCRIPTION

Explicacion de ciclos en C Unisalle

TRANSCRIPT

  • Ciclos en C

    Facultad de Ingeniera

  • Contenido

    Estructuras en C.

    Bucles en C:

    Ciclo While en C.

    Ciclo do While en C

    Ciclo For en C

    Operadores de incremento y decremento - abreviados.

    Sentencia Break y contine

    Comparacin y Resumen de ciclos

    Ejercicios complementarios

  • Estructuras en C

    SI (expresin_logica) ENTONCES

    secuencia 1 | camino 1

    SINO

    Secuencia 2 | camino 2

    FIN_SI

    if (expresin_logica) {

    cdigo_secuencia1;

    }

    else {

    cdigo_secuencia2;

    }

    MIENTRAS(expresin_logica)HAGA

    secuencia

    FIN_MIENTRAS

    while (expresion_logica) {

    secuencia

    }

    PARA (VC = LI,LF,INC) HAGA

    secuencia

    FIN_PARA

    for(expre1;expre2;expre3) {

    secuencia;

    }

  • Bucles en c

    condicin

    cuerpo

  • Ciclo for en C

    condicin

    cuerpo

  • Ciclo for en C

    La sentencia for (bucle for) es un mtodo para controlar una sentencia o bloque desentencias un numero fijo de veces.

    Este bucle es mas adecuado para implementar bucles controlados por contador, esdecir 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:

  • Ciclo for en C

    PARA(VC = LI,LF,INC)HAGA

    secuencia

    FIN_PARA

    for (expre1;expre2;expre3) {

    secuencia

    }

    expre1 inicializacin: Da un valorinicial a la variable de control delbucle. Se ejecuta solo una vez antesde la evaluacin de la expresin decontrol. Se pueden inicializar una ovarias variables.

    expre2 Expresin de control:Condicin que contiene unaexpresin lgica, mientras seaverdadera se realiza el bucle.

    expre3 ajuste (actualizacin):Incrementa o decrementa lavariable de control del bucle.

    secuencia: Sentencias aejecutar en cada iteracin delbucle.

    INC: Ajuste (+/-)

    LF: Valor final

    LI: Valor inicial

    VC: Variable de control

  • Ciclo for en C

    Existen dos formas de implementacin de la sentencia for.

    for (expre1;expre2;expre3) {

    secuencia

    }

    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 = -750; i-=20)

  • Ciclo for en C

    Algunas 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

  • Ciclo for en C

    La(s) variable de control se puede incrementar o decrementar no solo envalores tipo int, tambin 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 = 0; n -= 0.1) { printf(n = %f\n, n);

    }

  • Ciclo for en C

    Cuando no se tiene expresin de inicializacin, condicin yactualizacin (incremento o decremento) en el bucle for, este se

    ejecuta de manera infinita

    for (;;) {

    printf(Ahora! \n);

    }

  • Ciclo for en C

    Situar un punto y coma (;) despus del parntesis inicial de un bucle forhace que el cuerpo del bucle este vaco.

    El operador coma (,) permite extender la flexibilidad del ciclo for ya que este permite incluir mas de una expresin de inicializacin o actualizacin en

    una nica especificacin del loop.

    for (i = 1; i

  • Ciclo for en C

    Si el cuerpo de un bucle de conteo modifica los valores de cualquier variableimplicada en la condicin del bucle, entonces el numero de repeticiones se puede ver

    afecta; es decir, no es recomendable modificar el valor de cualquier variable de

    condicin dentro del cuerpo de un bucle for, ya que esto puede producir resultados

    imprevistos.

    . . .

    int i;

    . . .

    for (i

  • Operadores de incremento y

    decremento - abreviados

    Operacin 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 operacinde asignacin que involucreoperaciones 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;

  • Ciclo While en c

    MIENTRAS(expresin_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).

  • Ciclo do-while en C

    El ciclo do-while es similar al ciclo while, la nica diferencia radica en que en este, la condicin es lo ultimo que se evala.

    Esta caracterstica hace que el bucle se ejecute como mnimo una vez.

    Funcionamiento

    Inicialmente se ejecutan las sentencias dentro del cuerpo, posteriormente, se evala la condicin de control, si el resultado es verdadero se repite la

    ejecucin del cuerpo del bucle. Este proceso continua hasta que la

    condicin se haga falsa.

    Repetir

    secuencia

    Hasta Que expresin_logica

    do

    {

    secuencia

    } while (expresion_logica);

    Sintaxis:

  • Ciclo do while en C

    Condicin: Expresin lgica que

    determina si se repiten o no las

    instrucciones contenidas en el cuerpo

    del bucle.

    secuencia: Sentencias a ejecutar

    en cada iteracin del bucle.

    do

    {

    secuencia

    } while (expresion_logica);

  • Sentencias break y contine

    Break: Esta sentencia termina la ejecucin del bucle, permitiendo que el punto de control de la ejecucin se salga del bucle.

    Continue: Hace que la ejecucin del bucle vuelva a la cabecera del bucle

    . . .

    int j;

    . . .

    for (j 3) {

    break;

    }

    }

    . . .

    int j;

    . . .

    for (j 3 && i

  • Anidamiento de Ciclos

    El 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");

    . . .

  • do

    {

    secuencia;

    } while (expresion_logica);

    for (expre1;expre2;expre3)

    {

    secuencia;

    }

    while (expresion_logica)

    {

    secuencia;

    }

    Resumen de ciclos en C

  • Comparacin de Ciclos 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 repeticin no

    esta controlada por un contador;

    el test de condicin procede a

    cada repeticin del bucle; el

    cuerpo del bucle puede no ser

    ejecutado. Se debe utilizar

    cuando se desea saltar el bucle si

    la condicin es falsa.

    Bucle de conteo, cuando el

    numero de repeticiones se

    conoce por anticipado y puede

    ser controlado por un contador;

    tambin es adecuado para bucles

    que implican control no contable

    del bucles con simples etapas de

    inicializacin y de actualizacin;

    el test de la condicin precede a

    la ejecucin de la ejecucin 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.

  • Ejercicios1. Escribir un programa utilizando dos bucles anidados, que visualice un rombo

    de lado n, por ejemplo el el siguiente dibujo se visualiza cuando la entrada es

    5:

    2. Escribir un programa utilizando dos bucles anidados que visualice tringulos

    como el siguiente (esta salida se obtiene cuando se digita 4):

  • EJERCICIOS

    4. Encontrar el numero mayor de una serie de nmerospositivos.

    5. Disear un programa que cuente el numero de susentradas que son positivos, negativos y cero.

    6. Disear un programa que despliegue los N primerostrminos de la serie Fibonacci esta se muestra acontinuacin: 0, 1, 1, 2, 3, 5, 8, 13, 21, 33,

    7. Realizar un programa que determine si un numeroingresado por teclado es primo o no.

    8. Disear un programa que calcule y despliegue los Nprimeros nmeros primos.