Estructuras de Control Condicional.pdf

Embed Size (px)

Citation preview

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 1

    Por: Ing Msc. Alberto Medina Villacorta

    EstructurasCondicionales

    Normalmente, lasdeclaraciones en unprograma se ejecutan unadetrs de otra en el ordenen que estn escritos, esteproceso se denominaejecucin secuencial.

    Fin

    Accin N

    Accin 2

    Accin 1

    Inicio

    Varios estados de Java, quepronto discutiremospermiten al programadorespecificar que la siguienteinstruccin a ejecutar no esnecesariamente el siguienteen la secuencia, esto se llamatransferencia de control.

    Para escribir programascomplejos se requiereformas para controlar elorden de ejecucin de lasinstrucciones.Esta accin se llama Controlde Flujo, la misma que usalas llamadas Estructuras decontrol de flujo.

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 2

    Entre ellas se tiene: Condicional simple, Condicional doble, Condicional mltiple y Repetitivas, cclicas, lazos o bucles

    (Loop).

    Representacin en Diagrama de Flujo

    Condicin

    Bloque de InstruccionesVerdadero

    Falso

    Representacin en Diagrama N-S

    Verdadero Falso

    Bloque deInstrucciones

    Condicin

    Representacin en PseudocdigoInicio..Si entonces

    Fin si.

    Fin

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 3

    Sintaxis en Javaif ();

    if (){;}

    Una solasentencia

    Variassentencias

    Los programas usan las sentencias deseleccin para elegir entre los cursosalternativos de accin. Por ejemplo,supongamos que la calificacin de aprobadoen un examen es 60 o ms.

    La declaracin de pseudocdigo:Si la nota del estudiante es mayor o igual a 60

    Imprimir "AprobadoFinSi

    Determina si la condicin de "nota delestudiante es mayor que o igual a 60" esverdadera o falsa. Si es true, se imprime"Aprobado", si la condicin es false, lasentencia de impresin se pasa por alto.

    La sangra de la segunda lnea de estainstruccin es opcional, se recomienda, yaque hace hincapi en la estructura inherentede programas estructurados.

    Diagrama de actividad UML

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 4

    Representacin en Diagrama de FlujoCondicin

    Bloque de Instrucciones 1

    Verdadero Falso

    Bloque de Instrucciones 2

    Representacin en Diagrama N-S

    Verdadero Falso

    Bloque deInstrucciones 1

    Condicin

    Bloque deInstrucciones 2

    Representacin en Pseudocdigo

    Si entonces

    Si no

    Fin si

    15-06-2014 Por: Ing. Msc. Alberto M.MEDINA VILLACORTA

    Sintaxis en Javaif ();

    else;

    Notas: No es necesario encerrar entre llaves si los

    bloques son de una instruccin. Note el uso del punto y coma, compare con la

    otra forma.

    Aqu una solasentencia

    Y aqu otrasentencia

    15-06-2014 Por: Ing. Msc. Alberto M.MEDINA VILLACORTA

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 5

    Representacin en Lenguaje Javaif (){;}

    else{;}

    Aqu variassentencias

    Aqutambin

    15-06-2014 Por: Ing. Msc. Alberto M.MEDINA VILLACORTA

    La declaracin de doble seleccin Si ... Sinopermite al programador especificar unaaccin a realizar cuando la condicin esverdadera y una accin distinta cuando lacondicin es falsa.

    La declaracin en pseudocdigo:Si la nota del estudiante es mayor o igual a 60

    Imprimir "Aprobado"Sino

    Imprimir "DesaprobadoFinSi

    Imprime "Aprobado" si la calificacin delestudiante es mayor o igual a 60.

    Imprime "Desaprobado" si la calificacindel estudiante es menor de 60.

    En cualquiera de los casos, se produce laimpresin de unmensaje.

    Diagrama de actividad UML

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 6

    Java proporciona el operador condicional(? :) que en ocasiones se puede utilizar enlugar de una instruccin if ... else.

    Este es el nico operador ternario de Java,esto significa que se requieren tresoperandos.

    En conjunto, los operandos ? y : forman unaexpresin condicional.

    El primer operando (a la izquierda de ?) esuna expresin booleana (es decir, unacondicin)

    El segundo operando (entre ? y : ) es el valorde la expresin condicional si la expresinbooleana es verdadera y el tercer operando(a la derecha de : ) es el valor de laexpresin condicional si la expresin lgicase evala como falsa.

    Por ejemplo, la declaracin:System.out.println(nota>=60?"Aprobado":"Desaprobado");

    Imprime la cadena "Aprobado" si laexpresin booleana nota>=60 es verdadera eimprime "Desaprobado" si la expresinlgica es falsa.

    Las instrucciones con el operadorcondicional realizan la misma funcin que lasentencia if ... else.

    if (n < 5)cont++;

    if (x < y)z=x;

    elsez=y;

    if (edad >= 18) {System.out.println(Mayor);System.out.print(Tiene +edad);}

    else{System.out.println(Menor);System.out.print(Tiene +edad);}

    Simple

    Doble

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 7

    if ( x > 5 )if ( y > 5 )System.out.println( "x e y son > 5" );

    elseSystem.out.println( "x es

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 8

    Representacin en PseudocdigoSegn Hacer

    Caso 1: Caso 2: . . .Caso N:

    Si no

    Fin segn

    Sintaxis en Javaswitch (){case :;

    break;case :;

    break;. . .case :;

    break;default: ;}

    Diagra

    ma de

    activi

    dadU

    ML

    : debe ser de uno de los siguientestipo: byte, char, short o int

    El es una expresin que produce unvalor entero, switch compara el resultado de con cada valor entero, si encuentraun valor que coincida, ejecuta la sentencia(simple o compuesta) correspondiente.

    Si no encuentra ninguna coincidencia, ejecutala sentencia default.

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 9

    Si la ejecucin llega a una sentencia break lasentencia switch termina.

    Esta sentencia es equivalente a unasentencia if else anidada.

    La sentencia break no es necesaria para elltimo caso (o el caso por defecto, cuandoaparece en ltimo lugar), ya que laejecucin contina con la siguientedeclaracin despus de switch.

    switch (oper) {case +: x+= y; break;case -: x-= y; break;case *: x*= y; break;case /: x /= y; break;case i: x++; break;case r:case m: System.out.print("No definido"); break;default: System.out.print(Error!");

    }

    switch (iDiaSemana) {case 1: sDia= Es lunes; break;case 2: sDia= Es martes; break;case 3: sDia= Es mircoles; break;case 4: sDia= Es jueves; break;case 5: sDia= Es viernes; break;case 6: sDia= Es sbado; break;case 7: sDia= Es domingo; break;default: sDia= No se que da es!");}System.out.print(sDia);

    // Programa que ingresa 3 nmeros enteros e// imprime el menor de ellos.import java.util.Scanner;public class numeroMenor{public static void main(String args[ ] ){int a, b, c, menor;Scanner lector = new Scanner(System.in);System.out.print("Ingrese valor de a: ");a=lector.nextInt( );System.out.print("Ingrese valor de b: ");b=lector.nextInt( );

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 10

    System.out.print("Ingrese valor de c: ");c=lector.nextInt( );/*Se procede a la comparacin de valoresusando una sentencia if anidada*/if ( a

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 11

    System.out.print(Dar Coeficiente b:");b=lector.nextDouble ( );System.out.print(Dar Coeficiente c:");c=lector.nextDouble ( );if ( a==0)System.out.println( a no puede ser cero);

    else{

    d=b*b-4*a*c;

    if (d>=0) {x1=(-b+Math.sqrt(d))/(2*a);x2=(-b-Math.sqrt(d))/(2*a);System.out.println( Raz X1= + x1);System.out.println( Raz X2= + x2);}elseSystem.out.println(Races imaginarias);

    }}

    }

    /*Programa que lee el nmero de pginas de unlibro e imprime su precio que se calcula as: Elprecio base es S/. 30, si tiene ms de 50 hojas, elprecio se incrementa en S/. 0.50 por hojaexcedente. Si tiene ms de 100 hojas el precio seincrementa en 20%.*/import java.util.Scanner; //Importa clasepublic class precioLibro{public static void main(String args[ ] ){

    // Declara variablesint nPag; double precio;//Objeto para leer datosScanner lector = new Scanner(System.in);//Entrada de datosSystem.out.print(Dar N de pginas:");nPag=lector.nextInt( );if ( nPag>0){precio=30;if (nPag>50)precio=precio + 0.5*(nPag-50);

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 12

    if (nPag>100)precio=precio + 0.2*precio;

    System.out.print( El precio es: +precio);}else

    System.out.print(Dato incorrecto);}

    }

    // Programa que ingresa cuatro nmeros// enteros e imprime el mayor de ellos.import java.util.Scanner;public class numeroMayor{public static void main(String args[ ] ){int a, b, c, d;int mayor, may1, may2;Scanner lector = new Scanner(System.in);System.out.print( Ingrese 4 valores enteros: );

    a=lector.nextInt( );b=lector.nextInt( );c=lector.nextInt( );d=lector.nextInt( );if (a>=b)

    may1=a;else

    may1=b;if (c>=d)

    may2=c;else

    may2=d;

    if (may1>=may2)mayor=may1;else

    mayor=may2;System.out.print(El mayor es: +mayor);}

    }

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 13

    /* Programa que ingresa una nota e imprimesu calificativo as: de 0 a 5 es psima, de 6a 10 es deficiente, de 11 a 15 es regular yde 16 a 20 es excelente. */

    import java.util.Scanner;public class calificaNota{public static void main(String args[ ] ){int n;Scanner lector = new Scanner(System.in);

    System.out.print( Ingrese Nota: );n=lector.nextInt( );if ( n20)System.out.print( Nota NO vlida);

    elseif (n>=16)

    System.out.print( Est excelente!!);else

    if (n>=11)System.out.print( Est regular!!);

    else

    elseif (n>=6)

    System.out.print( Es deficiente!!);else

    System.out.print( Nota Psima!!);}

    }

    /*Programa que lee la clase de un vehculo(1=Automvil, 2=omnibus, 3=camin) eimprime tipo de vehculo y peaje a pagar.*/import java.util.Scanner;public class costoPeaje{public static void main(String args[ ] ){int tipo, p;Scanner lector = new Scanner(System.in);System.out.print(Indique clase de vehiculo);

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 14

    tipo=lector.nextInt( );switch (tipo){case 1:p=5;System.out.println(Automvil, peaje= +p);break;

    case 2:p=10;System.out.println( Omnibus, peaje= +p);break;

    case 3:p=15;System.out.println( Camin, peaje= +p);break;

    default:System.out.println( Clase desconocida!!);

    }}}

    import java.util.Scanner;public class calificaNota{public static void main(String args[ ] ){int nota;Scanner lector = new Scanner(System.in);System.out.print( Ingrese Nota: );nota=lector.nextInt( );switch (nota){case 1:

    case 2:case 3:case 4:case 5:

    System.out.println( Nota psima); break;case 6:case 7:case 8:case 9:case 10:case 11:

    System.out.println( Deficiente!); break;

  • 12/06/2014

    Ing. Msc. Alberto M. MEDINA VILLACORTA 15

    case 12: case 13: case 14: case 15:case 16:System.out.print( Regular!);break;

    case 17: case 18: case 19:case 20:System.out.print( Excelente);break;

    default:System.out.print("Fuera de Rango");

    }}

    }

    Hallar el sueldo de un operador, conociendo elnmero de horas trabajadas por da, el nmerode das trabajados, su tarifa horaria y sunmero de hijos. Si el nmero de hijos es msde 5 y su sueldo es menor que S/. 1000 se haceun aumento de 25% y solo de 10% en otro caso.Si el operador est afiliado a una AFP se ledescuenta el 12% del total y el descuento es de15% si no lo est. Mostrar el sueldo bruto, labonificacin, el descuento por AFP y el sueldoneto. Debe validar la entrada de los datos en unrango adecuado y mostrar los resultados condos decimales.

    En una pollera se venden seis tipos de combos, segnlos precios dados en la siguiente tabla:

    Tipo 1/8 Pollo Pollo Pollo Un Pollo 1 Pollo Dos PollosCosto S/. 4.50 S/. 9.00 S/. 17.0 S/. 32.00 S/. 48.00 S/. 60.00

    Hallar el costo total a pagar por un consumo, sabiendoque los precios NO incluyen IGV, el servicio es en mesa odelivery, si es en mesa se debe pagar 10% del total porel servicio y 5% del costo por propinas, en casocontrario se paga el taxi segn la zona:

    A S/. 5.00 B S/. 10.00 C S/. 15.00 D S/. 20.00

    Adems si el usuario paga al contado gana un punto porcada sol, mientras que si paga con tarjeta de crditogana dos puntos por cada sol.

    Reportar el monto a pagar, el costo por servicio, lapropina, el costo del taxi y los puntos ganados.15-06-2014