Sei sulla pagina 1di 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS LENGUAJE DE PROGRAMACION I Docente: Ing.

Daz Leyva Teodoro Tema: Estructuras de Control Condicionales Semana N03

INTRODUCCIN
Estructura de Seleccin Simple If

En la tabla que sigue se muestra el cdigo y el pseudocdigo de la estructura de seleccin simple if. Note que en el caso de bloques de acciones, estas deben estar encerradas entre llaves de bloque { }.

Pgina 1 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Estructura de Seleccin Doble If - Else En la tabla que sigue se muestra el cdigo y el pseudocdigo de la estructura de seleccin simple if. Note que en el caso de bloques de acciones, estas deben estar encerradas entre llaves de bloque {

La estructura de seleccin doble encadenada if-else-if La estructura de seleccin doble encadenada if...else...if evala un conjunto de condiciones en orden descendente, pasando de una condicin a otra siempre que la condicin anterior sea falsa, y en el momento que encuentre una condicin verdadera, efecta la accin correspondiente a dicha condicin y abandona el resto de la estructura. La estructura tiene una accin por defecto que se efecta en el caso que todas las condiciones sean falsas.

Pgina 2 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

En el caso de acciones compuestas, estas deben estar encerradas entre llaves de bloque { }.

La estructura de seleccin mltiple switch La estructura de seleccin mltiple switch permite seleccionar una ruta de entre varias rutas posibles en base al valor de una variable selector que se compara con una lista de constantes enteras o de carcter c1, c2, c3, ..., cn. Cuando se encuentra una correspondencia entre el valor de la variable selector y una constante, se ejecuta la accin o el grupo de acciones asociadas a dicha constante. Si el selector no coincide con ninguna constante, se efecta la accin por defecto, si es que existe.

Pgina 3 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Consideraciones: Las sentencias break y el caso por defecto default son opcionales. El caso por defecto default no tiene que ser el ltimo de todos sino que puede ser el primero u ocupar una posicin intermedia. Luego de efectuarse la accin o las acciones de un case o del default, se proseguir con la ejecucin de la accin o las acciones de los case que siguen hasta encontrar un break o hasta llegar al final de la estructura switch; lo que ocurra primero. Es un error de sintaxis tener casos duplicados. Las acciones pueden ser acciones simples o acciones compuestas. En el caso de acciones compuestas no es necesario colocarlas entre llaves de bloque.

Pgina 4 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Problemas resueltos 1. Una tienda vende un producto a precios unitarios que dependen de la cantidad de unidades adquiridas de acuerdo a la siguiente tabla:

Adicionalmente, si el cliente adquiere ms de 50 unidades la tienda le descuenta el 15% del importe de la compra; en caso contrario, slo le descuenta el 5%. Para resolver el problema cree la clase producto con el atributo cantidad (int) e implemente los mtodos para obtener el importe de la compra, el importe del descuento y el importe a pagar por la compra de cierta cantidad de unidades del producto.

Creamos el proyecto :LPI_semana3 y luego un paquete pack_semana3.ejemplo1 y las clases Producto y Principal

package pack_semna3.ejemplo1; public class Producto { //variable private int unidades; //constructor public Producto() { } public int getUnidades() { return unidades; } public void setUnidades(int punidades) { unidades = punidades; }

Pgina 5 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS public double obtenerImporteCompra(){ double impcom=0; if( unidades >= 1 && unidades <= 25 ) impcom = unidades*27.5; if( unidades >= 26 && unidades <= 50 ) impcom = unidades*25.5; if( unidades >= 51 && unidades <= 75 ) impcom = unidades*27.5; if( unidades >= 76) impcom = unidades*27.5; return impcom; } public double obtnerImporteDescuento(){ double impdes=0; if( unidades > 50 ) impdes = 0.15*obtenerImporteCompra(); if( unidades <= 50 ) impdes = 0.05*obtenerImporteCompra(); return impdes; } public double obtenerImporteaPagar(){ return obtenerImporteCompra()-obtnerImporteDescuento(); } }

public class Principal extends JFrame{ //constructor public Principal(){ /*JDesktopPane sirve como contenedor de * los diferentes formularios hijos dentro del JFrame padre */ //-----------------------------------------------------------------------------------------------------------------------------JDesktopPane escritorio=new JDesktopPane(); //objeto lbluniades tipo JLabel JLabel lbluniades= new JLabel("Uniades"); //objeto txtuniades tipo JTextField final JTextField txtuniades=new JTextField(); //objeto lblcliente tipo JLabel JLabel lblcliente= new JLabel("Cliente"); //objeto txtucliente tipo JTextField JTextField txtcliente=new JTextField(); //objeto lbldescripcion tipo JLabel JLabel lbldescripcion= new JLabel("Descripcion"); //objeto txtdescripciont ipo JTextField JTextField txtdescripcion=new JTextField(); //objeto btnprocesar= tipo JButton JButton btnprocesar=new JButton("Procesar"); //--------------------------------------------------------------------------//mostraremos los resultados en etiquetas(JLabel final JLabel lblimportecompra=new JLabel(); final JLabel lblimportedescuento=new JLabel(); final JLabel lblimporteapagar=new JLabel();
Pgina 6 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS //--------------------------------------------------------------------------//posicion de los objetos en el escritorio lbluniades.setBounds(20, 20, 90, 30); txtuniades.setBounds(110, 20, 90, 30); lblcliente.setBounds(20, 60, 90, 30); txtcliente.setBounds(110, 60, 90, 30); lbldescripcion.setBounds(20, 100, 90, 30); txtdescripcion.setBounds(110, 100, 160, 30); btnprocesar.setBounds(290, 100, 90, 30); lblimportecompra.setBounds(20, 150, 200, 30); lblimportedescuento.setBounds(20, 180, 200, 30); lblimporteapagar.setBounds(20, 210, 200, 30); //--------------------------------------------------------------------------//agregamos al contenedor escritorio.add(lbluniades); escritorio.add(txtuniades); escritorio.add(lblcliente); escritorio.add(txtcliente); escritorio.add(lbldescripcion); escritorio.add(txtdescripcion); escritorio.add(btnprocesar); escritorio.add(lblimportecompra); escritorio.add(lblimportedescuento); escritorio.add(lblimporteapagar); //--------------------------------------------------------------------------//agregamos el escritorio al Frame getContentPane().add(escritorio); //-------------------------------------------------------------------------//titulo,tamano,localizacion y visibilidad del Frame setTitle("Venta de Articulos"); setSize(600, 300); setLocationRelativeTo(null); setVisible(true); //--------------------------------------------------------------------------//----EVENTO EN EL BOTON btnprocesar btnprocesar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //instanciamos la clase producto Producto ObjProd= new Producto(); //asignar valor al atributo unidades ObjProd.setUnidades(Integer.parseInt(txtuniades.getText())); //mostramos resultados lblimportecompra.setText("Importe de compra: "+(double)ObjProd.obtenerImporteCompra()); lblimportedescuento.setText("Importe de descuento: "+(double)ObjProd.obtnerImporteDescuento()); lblimporteapagar.setText("Importe de descuento: "+(double)ObjProd.obtenerImporteaPagar()); } }); }

Pgina 7 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS //----------------------------------------------------------------------------public static void main(String[]args){ Principal p=new Principal(); } } //----------Ejecucin de la aplicacin---------------

Pgina 8 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

2. Disee un programa que permita ingresar, mediante un botn y de uno en uno, nmeros enteros mayores o iguales que 100 y pero menores o iguales que 900 y determine: Cuntos nmeros pertenecen a cada uno de los siguientes intervalos: 100 a 300, 301 a 500, 501 a 700 y 701 a 900. El mayor y el menor nmero ingresados.

Crear el paquete pack_semana3.ejemplo2 con las clases Ejemplo2 y Principal

public class Ejemplo2 { private int numero; int c1=0, c2=0, c3=0, c4=0,mayor=99, menor=901; //-----------------------------------------------------------------------//constructor public Ejemplo2() { } //-----------------------------------------------------------------------public int getNumero() { return numero; } public void setNumero(int numero) { this.numero = numero; }

Pgina 9 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

//---------------------------------------------------------------------------// Cuenta el nmero ingresado public void contarNumero(){ if( numero <= 300 ) c1++; else if( numero <= 500 ) c2++; else if( numero <= 700 ) c3++; else c4++; } // ----------------------------------------------------------------------// Determina el menor nmero ingresado public void determinarMenor(){ if( numero < menor ) menor = numero; } // ----------------------------------------------------------------------// Determina el mayor nmero ingresado public void determinarMayor(){ if( numero > mayor ) mayor = numero; } //reporte de resultados public String mostrarReporte(){ String imprimir; imprimir="Cantidad de nmeros de 100 a 300 : " + c1+"\n"+ "Cantidad de nmeros de 301 a 500 : " + c2+"\n"+ "Cantidad de nmeros de 501 a 700 : " + c3+"\n"+ "Cantidad de nmeros de 701 a 900 : " + c4+"\n"+ "Nmero menor.....................: " + menor+"\n"+ "Nmero mayor.....................: " + mayor; return imprimir; } }

Pgina 10 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

public class Principal extends JFrame{ // Declaracin de variables globales para la GUI final JTextField txtnumero ; JTextArea txtarea; Ejemplo2 e; //-----------------------------------------------------------------------//constructor public Principal(){ //---------------------------------------------------------------------/*JDesktopPane sirve como contenedor de * los diferentes formularios hijos dentro del JFrame padre */ JDesktopPane escritorio=new JDesktopPane(); //objeto lbluniades tipo JLabel JLabel lblnumero= new JLabel("Numero"); //objeto txtuniades tipo JTextField txtnumero=new JTextField(); //objeto btnprocesar= tipo JButton JButton btningresar=new JButton("Ingresar"); JButton btnborrar=new JButton("Borrar"); //-------------------------------------------------------------------------//area de texto txtarea=new JTextArea(10,1); //para la barras de desplazamiento JScrollPane sp=new JScrollPane(txtarea); //--------------------------------------------------------------------------//mostraremos los resultados en etiquetas(JLabel final JLabel lblc1=new JLabel(); final JLabel lblc2=new JLabel(); final JLabel lblc3=new JLabel(); final JLabel lblc4=new JLabel(); //--------------------------------------------------------------------------//posicion de los objetos en el escritorio lblnumero.setBounds(20, 20, 90, 30); txtnumero.setBounds(110, 20, 90, 30); btningresar.setBounds(290, 20, 90, 30); btnborrar.setBounds(390, 20, 90, 30); sp.setBounds(20, 90, 400, 160); //--------------------------------------------------------------------------//agregamos al contenedor escritorio.add(lblnumero); escritorio.add(txtnumero); escritorio.add(btningresar); escritorio.add(btnborrar); escritorio.add(sp); //--------------------------------------------------------------------------//agregamos el escritorio al Frame getContentPane().add(escritorio); //-------------------------------------------------------------------------//titulo,tamano,localizacion y visibilidad del Frame setTitle("Numeros"); setSize(600, 300);
Pgina 11 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS setLocationRelativeTo(null); setVisible(true); //-------------------------------------------------------------------------//evento btningresar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { procesar(); }

});

btnborrar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { txtnumero.setText(""); txtnumero.requestFocus(); }

}); //------------------------------------------------------------------------//instancia de la clase Ejemplo2, la creacin de este objeto "e" no se realiza en //el mtodo procesar ya que cada vez que se llamara en el botn btnprocesar se creara de //nuevo el objeto y las variables de nuevo se iniciaran en cero e=new Ejemplo2(); }//fin del constructor //------------------------------------------------------------------------public void procesar(){ e.setNumero(Integer.parseInt(txtnumero.getText())); if ((e.getNumero()>=100) && (e.getNumero()<=900)){ e.contarNumero(); e.determinarMenor(); e.determinarMayor(); e.mostrarReporte(); txtarea.setText(e.mostrarReporte()); }else{ JOptionPane.showMessageDialog(this,"Ingrese un nmero de 100 a 900"); }

} //---------------------------------------------------------------------------public static void main(String[]args){ Principal p=new Principal(); } }

Pgina 12 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

//================ejecucin del aplicativo===================================

Para recordar!!
Las variables locales tienen alcance de mtodo; en cambio, las variables globales tienen alcance de programa. El tiempo de vida de una variable local es el tiempo que dure la ejecucin del mtodo que lo declara; en cambio, el tiempo de vida de una variable global es el tiempo que dura la ejecucin del programa. Las variables locales no se inicializan automticamente, cosa que si sucede con las variables globales.

Pgina 13 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Problemas Propuestos 3. Disee un programa para simular el movimiento de un almacn de bolsas de cemento. Al comenzar la ejecucin del programa, inicializar el stock de bolsas de cemento en 2000 bolsas y la capacidad del almacn en 3500 bolsas. Luego, el programa permitir efectuar operaciones de depsito y de retiro, mostrando en todo momento: - El stock actual del almacn. - La capacidad libre del almacn. - El nmero de depsitos y de retiros efectuados. - La cantidad total de bolsas depositadas y retiradas. - La cantidad mxima de bolsas retiradas y depositadas. - La cantidad mnima de bolsas retiradas y depositadas.

Interfaz grafica de la aplicacin

Pgina 14 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS 4. Una empresa desarrolladora de software ha puesto a la venta licencias de su programa de edicin de video Video Edit 2.0 a los siguientes costos unitarios:

Disee un programa que permita ingresar por cada venta el tipo de licencia y el nmero de licencias y muestre luego de cada venta: El importe a pagar para la venta efectuada. El importe total recaudado de cada tipo de licencia. El nmero de licencias vendidas de cada tipo de licencia.

El nmero de ventas efectuadas de cada tipo de licencia.


Interfaz grafica de la aplicacin

Pgina 15 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS Presentamos algunos mtodos que podran ayudarle a desarrollar el problema:
//-----------------------------------------------------------------------

// Calcula y retorna el importe a pagar public double calcularImportePagar(int tipo, int numero){ switch(tipo){ case 0 : return 510*numero; case 1 : return 1500*numero; case 2 : return 3100*numero; default: return 4500*numero; } } //----------------------------------------------------------------// Actualiza los datos histricos public void actualizarDatosHistoricos(int tipo, int numero, double imppag){ switch(tipo){ case 0: imptot1 += imppag; nlic1 += numero; nven1++; break; case 1: imptot2 += imppag; nlic2 += numero; nven2++; break; case 2: imptot3 += imppag; nlic3 += numero; nven3++; break; default: imptot4 += imppag; nlic4 += numero; nven4++; } } // ----------------------------este mtodo esta en pseudocogio-----------------------------------------------// Muestra el reporte de los datos histrico public void reportarDatosHistoricos(){ imprimir("Importe total recaudado"); imprimir(" Por licencias Cobre....: " + imptot1); imprimir(" Por licencias Bronze...: " + imptot2); imprimir(" Por licencias Silver...: " + imptot3); imprimi2(" Por licencias Gold.....: " + imptot4); imprimir(""); imprimir("Nmero de licencias vendidas"); imprimir(" Por licencias Cobre....: " + nlic1); imprimir(" Por licencias Bronze...: " + nlic2); imprimir(" Por licencias Silver...: " + nlic3); imprimir(" Por licencias Gold.....: " + nlic4); imprimir(""); imprimir("Nmero de ventas efectuadas"); imprimir(" Por licencias Cobre....: " + nven1); imprimir(" Por licencias Bronze...: " + nven2); imprimir(" Por licencias Silver...: " + nven3); imprimir(" Por licencias Gold.....: " + nven4); }
Pgina 16 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

Nota: Usted tiene la libertar de cambiar, modificar, agregar los mtodos necesarios para desarrollar la aplicacin. Los elementos del JComboBox se asigna de la siguiente manera: JComboBox cboTipo = new JComboBox(); cboTipo.setBounds(155, 15, 170, 23); cboTipo.addItem("Cobre"); cboTipo.addItem("Bronze"); cboTipo.addItem("Silver"); cboTipo.addItem("Gold"); add(cboTipo); El ndice de los elementos del JComboBox getSelectedIndex(): cboTipo.getSelectedIndex(); se obtiene con el mtodo

5. Disee un programa para encuestar a un grupo de personas sobre sus preferencias en bebidas gaseosas entre: Pepsi Cola, Coca Cola y Fanta. La empresa encuestadora desea saber lo siguiente: Cuntas personas, entre varones y mujeres, prefieren cada tipo de gaseosa. Cuntos varones prefieren cada tipo de gaseosa. Cuntas mujeres prefieren cada tipo de gaseosa.

Declare como globales a las variables absolutamente necesarias. 6. Un hotel turstico tiene tres tipos de habitaciones, cuyos costos por da se dan en la tabla adjunta. Como oferta, el hotel ofrece un descuento del 15% del importe bruto para ms de 5 das de hospedaje y 10% en caso contrario. Disee un programa que determine el importe bruto, el importe del descuento y el importe a pagar por parte de un cliente. Adems, el programa debe mostrar informacin actualizada sobre el nmero de clientes por tipo de habitacin y el importe total pagado para los clientes ingresados hasta el momento.
Pgina 17 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

Declare como globales a las variables absolutamente necesarias.

7. En una universidad Privada, los alumnos se categorizan de acuerdo a su promedio ponderado del ciclo anterior de la siguiente forma:

Disee un programa que permita ingresar el promedio ponderado de un alumno por vez y obtener luego de cada ingreso la siguiente informacin: Nmero de alumnos ingresados. Nmero de alumnos por categora. El mayor promedio ponderado.

El menor promedio ponderado.

Pgina 18 de 19

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS El reporte quedara as:

Declare como globales a las variables absolutamente necesarias.


8. Una persona tiene registrado en un papel las compras que efectu sobre los productos A, B, C y D a lo largo de todo un ao. Por cada registro, tiene anotado el tipo del producto adquirido, el precio unitario del producto y la cantidad de unidades adquiridas. Disee un programa que permita ingresar, mediante un botn y de uno en uno, los registros con que cuenta la persona y muestre luego de cada ingreso: El nmero de registros de cada tipo de producto. La cantidad total de unidades adquiridas de cada tipo de producto. El precio unitario promedio de cada tipo de producto. Declare como globales a las variables absolutamente necesarias.

Pgina 19 de 19

Potrebbero piacerti anche