sentencias

11
Escuela Superior de Ingenieros de San Sebastián Escuela Superior de Ingenieros de San Sebastián - - Tecn Tecn un un 1 Informática II Informática II Fundamentos de Programación Fundamentos de Programación Sentencias de Control Sentencias de Control en C++ en C++

Upload: francisco-ayala

Post on 16-Dec-2015

5 views

Category:

Documents


0 download

DESCRIPTION

Sentencias

TRANSCRIPT

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 1

    Informtica IIInformtica IIFundamentos de ProgramacinFundamentos de Programacin

    Sentencias de Control Sentencias de Control en C++en C++

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 2

    Sentencias de ControlSentencias de Control Las sentencias de un programa en C++ se ejecutan secuencialmente, esto es,

    cada una a continuacin de la anterior, empezando por la primera y acabando por la ltima.

    Cada sentencia termina con un Punto y coma. Para poder modificar el flujo secuencial de la ejecucin, el C++ dispone de

    varias sentencias, de las cuales, las ms utilizadas, se pueden agrupar en dos familias:

    Sentencias de Bifurcacin: Permiten elegir entre dos o ms opciones segn ciertas condiciones. Dentro de esta familia encontramos a las sentencias if, else, else if y switch.

    Sentencias de Iteracin o Bucles: Permiten ejecutar repetidamente un conjunto de instrucciones tantas veces como se desee, cambiando o actualizando ciertos valores. Dentro de esta familia de sentencias encontramos a las sentencias for, while y do-while.

    Tambin existen las sentencias break, continue y goto que trabajan en conjunto con las anteriores.

    En las sentencias de control se usan mayoritariamente los operadores relacionales y lgicos, para la evaluacin de las expresiones.

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 3

    1. Bifurcaciones1. Bifurcaciones Sentencias Sentencias ifif, , else else y y else ifelse if::

    La sentencia if permite ejecutar una sentencia simple o compuesta segn se cumpla o no una determinada condicin. Ver a continuacin las dos formas:

    if ( expresion ) sentencia; if (expresion) { sentencia1; sentencia2;}

    La sentencia else se usa junto con la sentencia if. Permite realizar una bifurcacin ejecutando una parte u otra del programa, segn se cumpla o no la condicin:

    if ( expresion ) { sentencia1; sentencia2; }else { sentencia3; sentencia4; }Explicacin: se evala la expresin. Si el resultado es true , se ejecutan las sentencias 1 y 2. Si el resultado es false, se ejecutan las sentencias 3 y 4.

    La sentencia if - else if permite realizar una ramificacin mltiple, ejecutando una entre varias partes del programa, segn se cumpla una entre n condiciones.

    if (expresion1) sentencia1;else if (expresion2) sentencia2;else if (expresion3) sentencia3;else sentencia4;

    Explicacin: Se evala expresion1. Si el resultado es true, se ejecuta sentencia1 y sale de este bloque de if-elseif. Si el resultado es false, pasa a evaluar expresion2 y as sucesivamente. Si todas las expresiones son false, se ejecutar la sentencia4.

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 4

    Bifurcaciones (Bifurcaciones (contcont.).) Sentencia Sentencia switchswitch: :

    Esta sentencia desarrolla una funcin similar a la de las sentencias if..else de mltiples ramificaciones, aunque presenta importantes diferencias.

    El formato general de esta sentencia es:switch( expresion ){

    case valor1: sentencia1; break;case valor2: sentencia2; break;case valor3: sentencia3; break;default: sentencia4;

    }

    La sentencia switch se usa en conjunto con las sentencias case, default y break. Caractersticas:

    Cada sentencia case se corresponde con un nico valor de expresion . No se pueden establecer rangos o condiciones.

    Si una sentencia case no lleva la sentencia break al final, el control pasa a la sentencia case siguiente, aunque su valor no corresponda con expresin.

    Los valores no comprendidos en las sentencias case se gestionan en default, que es opcional.

    char tecla;switch( tecla ){

    case 1: Abrir(); break;case 2: Guardar(); break;case 3: Salir(); break;default: Error();}

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 5

    2. Bucles2. Bucles Habamos dicho que un bucle es un bloque donde se puede ejecutar repetidamente un

    nmero determinado (o indeterminado) de veces unas lneas de cdigo. Sentencia Sentencia forfor::

    for es el bucle ms verstil y utilizado en C++. Su forma general es la siguiente:for (inicializacin;expresion_de_control;actualizacion){

    Sentencia1;Sentencia2;

    } En inicializacin se inicializan las variables que intervienen en el bucle for. Slo se hace una

    vez, al inicio del bucle. La expresion_de_control es la que nos va a permitir continuar o terminar el bucle. En actualizacion se les da los nuevos valores a las variables, antes de que se ejecute la

    expresion_de_control. La sentencia1 y sentencia2 se ejecutarn tantas veces cmo lo permita la expresion_de_control.

    for (int Num=0;Num

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 6

    Bucles (Bucles (contcont.).) Sentencia Sentencia whilewhile::

    Esta sentencia permite ejecutar repetidamente, mientras se cumpla una condicin, una sentencia o bloque de sentencias. Su forma general es la siguiente:

    while (expresion_de_control){Sentencia1;sentencia2;

    } La Sentencia1 y Sentencia2 se ejecutarn repetidamente hasta que se cumpla la condicin que hay

    en la expresion_de_control (la cual es una expresin booleana o lgica, true o false).

    Sentencia Sentencia dodo--whilewhile:: Esta sentencia funciona de modo anlogo a while, con la diferencia de que la

    evaluacin se realiza al final del bloque (en la sentencia while), de manera que las sentencias se ejecutan por lo menos una vez. Su forma general es:

    do {Sentencia1;sentencia2;

    }while (expresion_de_control);

    int Num=1; //declar. de variablewhile(Num

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 7

    3. 3. breakbreak y y continuecontinue Sentencia Sentencia breakbreak::

    Esta instruccin interrumpe la ejecucin del bucle donde se ha incluido, haciendo al programa salir de l, aunque la expresion_de_control no se haya cumplido.

    Sentencia Sentencia continuecontinue:: Esta sentencia hace que el programa comience el siguiente ciclo del bucle donde se

    halla, aunque no halla llegado el final de las sentencias o bloque. Sentencia Sentencia gotogoto::

    Permite saltar a una determinada etiqueta del programa. No se recomienda su uso debido a que disminuye la legibilidad y claridad del cdigo. Slo se mantiene por motivos de compatibilidad.

    int Num; //variablewhile(true){

    cout Num;if ( Num == 0) break; //termina

    }

    int Num=1;while(Num!=0){

    cout Num;

    }=

    for (int Num=1;Num

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 8

    4. Ejemplos4. Ejemplos

    Conversor de Conversor de Temperatura Temperatura MejoradoMejorado

    #include #include //para exit()#include //para getch()void main (){

    int opc=1; double temp1,temp2; //declarac. De variableswhile(true) {

    system("cls");cout

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 9

    Ejemplos (Ejemplos (contcont.).)

    Genera nmeros aleatorios entre Genera nmeros aleatorios entre dos valores dadosdos valores dados

    #include #include //para rand()void main (){

    //generador aleatorio de nmerosint Num;int LimInf,LimSup;cout > Num;cout > LimInf >> LimSup;;for (int i=0;i

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 10

    Ejemplos (Ejemplos (contcont.).)Capturando los Capturando los argumentos pasados argumentos pasados al programa, por al programa, por medio de la funcin medio de la funcin mainmain()()

    #include void main (int argc, char *argv[]){

    int num=argc-1; //numero de argumentosif (num>0) {

    cout

  • Escuela Superior de Ingenieros de San Sebastin Escuela Superior de Ingenieros de San Sebastin -- TecnTecnunun 11

    Ejemplos (Ejemplos (contcont.).)

    Calculando el Calculando el mayor de varios mayor de varios nmeros pasados nmeros pasados como argumentos a como argumentos a mainmain()()

    #include #include //para atoi()void main (int argc, char* argv[]){

    int numA=0, Max=0;if (argc>1){

    Max = atoi(argv[1]); //conv. enterofor (int i=2;i Max ) Max=numA;

    }//resultadocout