Download - Estructuras de Control Condicional.pdf
-
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