Sie sind auf Seite 1von 75

ESTRUCTURAS DE CONTROL

Algoritmia & Programacin Ivn M. Cabezas T. ivan.cabezas@ correounivalle.edu.co

CONTENIDO
Estructuras de Control if-else

switch-case
Ejercicios

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 2

ESTRUCTURAS DE CONTROL
Las Estructuras de Control permiten una variacin en el curso de la accin en un programa Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 3

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 1. Anlisis del problema Entradas: ?? Salidas: ?? Proceso:??

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 4

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 1. Anlisis del problema Entradas: edad Salidas: mensaje de texto Proceso: SI la edad es mayor que 18

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 5

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 1. Anlisis del problema Entradas: edad Salidas: mensaje de texto Proceso: SI la edad es mayor que 18 Mostrar el mensaje Usted es mayor de edad. SI NO mostrar el mensaje Usted es menor de edad

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 6

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) ???

Fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 7

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) ??

Como expresar la condicin la edad es mayor que 18 en pseudocdigo??

Fin

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 8

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) SI edad > 18

Fin

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 9

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) SI edad > 18 imprimir(Usted es mayor de edad)

Fin

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 10

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) SI edad > 18 imprimir(Usted es mayor de edad) SINO Fin

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 11

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) SI edad > 18 imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad) Fin

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 12

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) SI edad > 18 imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad) Fin

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 13

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 4. Codificar el algoritmo usando Java

pseudocdigo
SI edad > 18 imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad)

Java

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 14

ESTRUCTURAS DE CONTROL
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 4. Codificar el algoritmo usando Java

Seudocodigo
SI edad > 18 imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad)

Java

Estructura de Control if-else

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 15

ESTRUCTURA
SI edad > 18

IF-ELSE

imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad)

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 16

ESTRUCTURA
SI (edad > 18)

IF-ELSE
Las condiciones en Java se colocan entre parntesis

imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad)

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 17

ESTRUCTURA

IF-ELSE
El seudocodigo SI, se reemplaza por la palabra reservada if

if (edad > 18) { imprimir(Usted es mayor de edad) } SINO

imprimir(Usted es menor de edad)

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 18

ESTRUCTURA

IF-ELSE

if (edad > 18) { imprimir(Usted es mayor de edad) } else { imprimir(Usted es menor de edad) }

El seudocodigo SINO, se reemplaza por la palabra reservada else

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 19

ESTRUCTURA

IF-ELSE
SI edad > 18 imprimir(Usted es mayor de edad) SINO imprimir(Usted es menor de edad)

if (edad > 18) { JOptionPane.showMessageDialog(Usted es mayor de edad); } else { JOptionPane.showMessageDialog(Usted es menor de edad); }

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 20

ESTRUCTURA

IF-ELSE

La estructura de control if-else permite ejecutar una serie de instrucciones solo cuando se cumple (se evala como true) la condicin establecida

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 21

ESTRUCTURA

IF-ELSE

La estructura de control if-else permite ejecutar una serie de instrucciones solo cuando se cumple una condicin establecida if (condicion) { conjunto de instrucciones que se deben realizar si se cumple la condicin } else { conjunto de instrucciones que se deben realizar si no se cumple la condicin }
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 22

ESTRUCTURA IF-ELSE
Problema: Desarrollar una aplicacin Java que solicite la edad de una persona e indique si es mayor de edad o no 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio edad: entero leer (edad) SI edad > 18 imprimir(Usted es mayor de edad) SINO Fin imprimir(Usted es menor de edad)

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 23

ESTRUCTURA

IF-ELSE
Inicio edad: entero

public class MayorEdad leer (edad) { public static void main(String args[]) SI edad > 18 { imprimir(Usted es mayor de edad) // Variable de entrada SINO imprimir(Usted es menor de edad) int edad; Fin // Lectura de los datos de entrada edad=Integer.parseInt(JOptionPane.showInputDialog(Ingrese su edad:)); // Proceso if (edad<18) { JOptionPane.showMessageDialog(null,"Usted es menor de edad"); } else { JOptionPane.showMessageDialog(null,"Usted es mayor de edad"); } } }
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 24

OPERADORES RELACIONALES
Ejercicio: Para una variable n declarada como int: Exprese las siguientes condiciones en java: n es menor que 30

n es igual a 60

n es mayor o igual que 90

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 25

OPERADORES RELACIONALES
Actan sobre valores enteros, reales y caracteres. Estos operadores retorna un valor booleano.

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 26

OPERADORES RELACIONALES
Ejercicio: Para una variable n declarada como int: Exprese las siguientes condiciones en java: n es menor que 30 n<30 n es igual que 60 n==60 n es mayor o igual que 90 n>=90

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 27

OPERADORES LGICOS
Actan sobre operadores o expresiones lgicas, ajustndose a los valores especificados por las tablas de verdad

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 28

OPERADORES LGICOS
Ejercicio: Para una variable n declarada como int: Exprese las siguientes condiciones en java: n pertenece al rango [-10,30]

n es menor o igual que 40

n es diferente de 30 mayor que 100

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 29

OPERADORES LGICOS
Ejercicio: int n; Exprese las siguientes condiciones en java: n pertenece al rango [-10,30] ((n>=-10) && (n<=30)) n es menor o igual que 40

n es diferente de 30 mayor que 100

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 30

OPERADORES LGICOS
Ejercicio: int n; Exprese las siguientes condiciones en java: n pertenece al rango [-10,30] ((n>=-10) && (n<=30)) n es menor o igual que 40 n<=40 n es diferente de 30 mayor que 100

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 31

OPERADORES LGICOS
Ejercicio: Para una variable n declarada como int: Exprese las siguientes condiciones en java: n pertenece al rango [-10,30] ((n>=-10) && (n<=30)) n es menor o igual a 40 n<=40 n es diferente de 30 mayor que 100 ((n!=30 ) || (n>100))

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 32

EJERCICIO
Problema: Se requiere de un programa que permita leer: la cdula, salario bruto y ao de vinculacin de un empleado y que permita calcular su salario neto sabiendo que:

Si gana ms de $1200,000 y entro a trabajar despus de 1990 se le debe descontar un 10%.


Si gana menos de 550,000 entr a trabajar en 1990 se le descuenta 2%. El programa debe mostrar la cdula y salario neto del empleado al final.
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 33

Ms estructuras de control.

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 34

ESTRUCTURA SWITCH -CASE


Permite la ejecucin de un bloque de sentencias, con base en el valor que toma una variable discreta

En pseudocdigo segn sea(x) opcion 1 : opcion 2 : opcion n : por defecto:

instrucciones_1 instrucciones_2 instrucciones_n instrucciones_por_defecto

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 35

ESTRUCTURA SWITCH -CASE


Permite la ejecucin de un bloque de sentencias, con base en el valor que toma una variable discreta

En pseudocodigo segn sea(x) opcion 1 : opcion 2 : opcion n : por defecto:

instrucciones_1 instrucciones_2

La variable x debe ser de tipo entero de tipo carcter. No se permiten otros tipos de datos.

instrucciones_n instrucciones_por_defecto

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 36

ESTRUCTURA SWITCH -CASE


Permite la ejecucin de un bloque de sentencias, con base en el valor que toma una variable discreta En cdigo java switch(x) { opcion 1 : opcion 2 : opcion n : por defecto: } El pseudocogido segun sea se reemplaza por la palabra reservada switch instrucciones_1 instrucciones_2 instrucciones_n instrucciones_df

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 37

ESTRUCTURA SWITCH -CASE


Permite la ejecucin de un bloque de sentencias, con base en el valor que toma una variable discreta En cdigo Java El pseudocdigo opcin se switch(x) reemplaza por la palabra { reservada case case1: instrucciones_1 case2: instrucciones_2 case n: instrucciones_n por defecto: instrucciones_df }

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 38

ESTRUCTURA SWITCH -CASE


Permite la ejecucin de un bloque de sentencias, con base en el valor que toma una variable discreta En cdigo java switch(x) { case1: instrucciones_1 case2: instrucciones_2 case n: instrucciones_n default: instrucciones_df }

El pseudocdigo por defecto se reemplaza por la palabra reservada default

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 39

ESTRUCTURA SWITCH -CASE


Permite la ejecucin de un bloque de sentencias, con base en el valor que toma una variable discreta Al finalizar de cada instruccin se debe agregar la instruccin break; switch(x) Para indicar el final de cada { opcin. case1: instrucciones_1; break; case2: instrucciones_2 ; break; case n: instrucciones_n ; break; default: instrucciones_df ; break; } En cdigo java

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 40

ESTRUCTURA SWITCH -CASE


Problema: Desarrollar una aplicacin en Java que reciba un entero correspondiente a una categora y el total de ventas de un empleado y retorne la comisin que recibe. Tome en cuenta la siguiente tabla. categora 1 2 3 4 5 6
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 41

Comisin 10% 20% 35% 45% 50% 60%

ESTRUCTURA SWITCH -CASE


1. Anlisis del problema Entradas: ?? Salidas: ?? Proceso:??

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 42

ESTRUCTURA SWITCH -CASE


1. Anlisis del problema Entradas: categoria, ventas Salidas: comision Proceso:??

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 43

ESTRUCTURA SWITCH -CASE


1. Anlisis del problema Entradas: categoria, ventas Salidas: comision Proceso: SEGN SEA categoria

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 44

ESTRUCTURA SWITCH -CASE


1. Anlisis del problema Entradas: categoria, ventas Salidas: comision Proceso: Si categoria es 1, comision = ventas * 0.1

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 45

ESTRUCTURA SWITCH -CASE


1. Anlisis del problema Entradas: categoria, ventas Salidas: comision Proceso: Si categoria es 1, comision = ventas * 0.1 Si categoria es 2, comision = ventas * 0.2

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 46

ESTRUCTURA SWITCH -CASE


1. Anlisis del problema Entradas: categoria, ventas Salidas: comision Proceso: Si categoria es 1, comision = ventas * 0.1 Si categoria es 2, comision = ventas * 0.2 Si categoria es 3, comision = ventas * 0.35 Si categoria es 4, comision = ventas * 0.45 Si categoria es 5, comision = ventas * 0.5 Si categoria es 6, comision = ventas * 0.6

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 47

ESTRUCTURA SWITCH -CASE


2. Disear el algoritmo y escribirlo en pseudocdigo inicio
categoria: entero ventas, comision: real leer(categoria) leer(ventas)

???

imprimir(comision)

fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 48

ESTRUCTURA SWITCH -CASE


2. Disear el algoritmo y escribirlo en pseudocdigo inicio
categoria: entero ventas, comision: real leer(categoria) leer(ventas) Segn sea categoria opcion 1: comision = ventas * 0.1 opcion 2: comision = ventas * 0.2 opcion 3: comision = ventas * 0.35 opcion 4: comision = ventas * 0.45 opcion 5: comision = ventas * 0.5 opcion 6: comision = ventas * 0.6 imprimir(comision)

fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 49

ESTRUCTURA SWITCH -CASE


4. Codificar el algoritmo usando Java
Segn sea categoria opcion 1: comision = ventas * 0.1 opcion 2: comision = ventas * 0.2 opcion 3: comision = ventas * 0.35 opcion 4: comision = ventas * 0.45 opcion 5: comision = ventas * 0.5 opcion 6: comision = ventas * 0.6

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 50

ESTRUCTURA SWITCH -CASE


4. Codificar el algoritmo usando algn lenguaje de programacin
Switch(categoria) { case 1: comision = ventas * 0.1; break; case 2: comision = ventas * 0.2; break; case 3: comision = ventas * 0.35; break; case 4: comision = ventas * 0.45; break; case 5: comision = ventas * 0.5; break; case 6: comision = ventas * 0.6; break; }

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 51

ESTRUCTURA SWITCH -CASE


4. Codificar el algoritmo usando algn lenguaje de programacin
Switch(categoria) { case 1: comision = ventas * 0.1; break; case 2: comision = ventas * 0.2; break; case 3: comision = ventas * 0.35; break; case 4: comision = ventas * 0.45; break; case 5: comision = ventas * 0.5; break; case 6: comision = ventas * 0.6; break; }

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 52

ESTRUCTURA

IF-ELSE

public class ComisionEmpleado{ public static void main(String args[]) { // Variables de entrada y salida int categoria; float ventas; float comision; // Lectura de los datos de entrada categoria =Integer.parseInt(JOptionPane.showInputDialog(Ingrese categoria:)); ventas =Float.parseFloat(JOptionPane.showInputDialog(Ingrese venta:)); // Proceso
switch(categoria) { case 1: comision = ventas * 0.1; break; case 2: comision = ventas * 0.2; break; case 3: comision = ventas * 0.35; break; case 4: comision = ventas * 0.45; break; case 5: comision = ventas * 0.5; break; case 6: comision = ventas * 0.6; break; }

//imprimir JOptionPane.showMessageDialog(null,la comision es + comision); }}


EISC
Universidad del Valle - Algoritmia y Programacin
Slide 53

EJERCICIO
Problema: Emcali requiere recalcular la factura de energa de los consumidores. Para ello, se necesita de un programa que lea el estrato social y el valor de consumo del cliente, y determine el valor bsico a adicionar para establecer el nuevo valor de la factura.

El programa debe reportar el nuevo valor de la factura. Para saber los valores bsicos que corresponde a cada categora use la siguiente tabla:
Estrato 1 2 3 4
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 54

Valor Base 500 700 4800 6700

Si se digita una categora que no est en la tabla se debe mostrar un mensaje indicando que la categora no es vlida.

Anexos

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 55

EJERCICIO

IF-ELSE

Problema: Se requiere de un programa que permita leer: la cdula, salario bsico y ao de vinculacin de un empleado y que permita calcular su salario neto sabiendo que: Si gana ms de $1200000 y entro a trabajar despus de 1990 se le debe descontar un 10%. Si gana menos de 550000 entr a trabajar en 1990 se le descuenta 2%.

El programa debe reportar la cdula y salario neto del empleado.

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 56

EJERCICIO

IF-ELSE

1. Anlisis del problema Entradas: cedula, ahno, salarioBasico Salidas: salarioNeto Proceso: ??

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 57

EJERCICIO

IF-ELSE

1. Anlisis del problema Entradas: cedula, ahno, salarioBasico Salidas: salarioNeto Proceso: SI el salarioBasico es mayor que 1200000, y el ahno es mayor 1990 salarioNeto= salarioBasico - salarioBasico *0.1 SI el salarioBruto es menor que 550000, o el ahno es igual 1990 salarioNeto= salarioBasico - salarioBasico *0.02

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 58

EJERCICIO

IF-ELSE

2. Disear el algoritmo y escribirlo en pseudocdigo inicio


cedula, ahno: entero salarioBasico, salarioNeto: real leer(cedula) leer(ahno) leer(salarioBasico)

???
imprimir(cedula) imprimir(salarioNeto)

fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 59

EJERCICIO

IF-ELSE

2. Disear el algoritmo y escribirlo en pseudocdigo inicio


cedula, ahno: entero salarioBasico, salarioNeto: real leer(cedula) leer(ahno) leer(salarioBasico) SI (salarioBasico > 1200000) Y (ahno>1990) salarioNeto= salarioBasico - salarioBasico *0.1 SI (salarioBruto < 550000) O (ahno==1990) salarioNeto= salarioBasico - salarioBasico *0.02 imprimir(cedula) imprimir(salarioNeto)

fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 60

EJERCICIO

IF-ELSE

3. Realizar una prueba de escritorio para el algoritmo

Cdula 11301245 3036978 5045893

Ao vinculacin 2000 1990 1990

Salario Bruto 1300000 400000 2000000

Salario Neto 1170000 392000 1960000

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 61

EJERCICIO
pseudocdigo

IF-ELSE

4. Codificar el algoritmo usando algn lenguaje de programacin

SI (salarioBasico > 1200000) Y (ahno>1990) salarioNeto= salarioBasico - salarioBasico *0.1 SI (salarioBruto < 550000) O (ahno==1990) salarioNeto= salarioBasico - salarioBasico *0.02 Cdigo Java

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 62

EJERCICIO
pseudocdigo

IF-ELSE

4. Codificar el algoritmo usando algn lenguaje de programacin

SI (salarioBasico > 1200000) Y (ahno>1990) salarioNeto= salarioBasico - salarioBasico *0.1 SI (salarioBruto < 550000) O (ahno==1990) salarioNeto= salarioBasico - salarioBasico *0.02 Cdigo Java if ((salarioBasico > 1200000) && (ahno>1990)){ salarioNeto= salarioBasico - salarioBasico*0.1; } if((salarioBasico < 550000) || (ahno==1990)){ salarioNeto= salarioBasico - salarioBasico*0.02; }
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 63

EJERCICIO

IF-ELSE

4. Codificar el algoritmo usando algn lenguaje de programacin


import javax.swing.JOptionPane; public class Nomina { public static void main(String args[]) { // Variables de entrada y salida int cedula, ahno; float salarioBasico, salarioNeto; // Lectura de los datos de entrada cedula =Integer.parseInt(JOptionPane.showInputDialog(Ingrese cedula:)); ahno =Integer.parseInt(JOptionPane.showInputDialog(Ingrese ahno:)); salarioBasico =Float.parseFloat(JOptionPane.showInputDialog(Ingrese salario basico:)); // Proceso if ((salarioBasico > 1200000) && (ahno>1990)){ salarioNeto= salarioBasico - salarioBasico*0.1;} if((salarioBasico < 550000) || (ahno==1990)){ salarioNeto= salarioBasico - salarioBasico*0.02;} //imprimir JOptionPane.showMessageDialog(null,cedula:+ cedula+\n+salario neto:+ salarioNeto); }}
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 64

EJERCICIO

IF-ELSE

4. Codificar el algoritmo usando algn lenguaje de programacin

Ver cdigo fuente Nomina.java en la pagina del curso

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 65

EJERCICIO

SWITCH-CASE

Problema: Emcali requiere recalcular la factura de energa de los consumidores. Para ello, se necesita de un programa que lea el estraco social y el valor de consumo del cliente, y determine el valor bsico a adicionar para establecer el nuevo valor de la factura. Para saber los valores bsicos que corresponde a cada categora use la siguiente tabla:

Estrato

Valor Base

1 2
3 4

500 700
4800 6700

Si se digita una categora que no est en la tabla se debe mostrar un mensaje indicando que la categora no es vlida.

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 66

EJERCICIO

SWITCH-CASE

1. Anlisis del problema Entradas: estrato, consumo Salidas: valorFactura Proceso: ??

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 67

EJERCICIO

SWITCH-CASE

1. Anlisis del problema Entradas: estrato, consumo Salidas: valorFactura Proceso: Si estrato es 1, valorFactura = consumo + 500 Si estrato es 2, valorFactura = consumo + 700 Si estrato es 3, valorFactura = consumo + 4800 Si estrato es 4, valorFactura = consumo + 5700

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 68

EJERCICIO
inicio

SWITCH-CASE

2. Disear el algoritmo y escribirlo en pseudocdigo

estrato: entero consumo, valorFactura: real leer(categoria) leer(consumo)

??

imprimir(valorFactura)

fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 69

EJERCICIO
inicio

SWITCH-CASE

2. Disear el algoritmo y escribirlo en pseudocdigo

estrato: entero consumo, valorFactura: real leer(categoria) leer(consumo) segn sea categoria opcion 1: valorFactura = consumo + 500 opcion 2: valorFactura = consumo + 700 opcion 3: valorFactura = consumo + 4800 opcion 4: valorFactura = consumo + 5700 imprimir(valorFactura)

fin
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 70

EJERCICIO

SWITCH-CASE

3. Realizar una prueba de escritorio para el algoritmo


Estrato 1 2 3 4 Valor Consumo 20000 79000 200100 600540 Valor Factura 20500 79700 20490 607240

inicio
estrato: entero consumo, valorFactura: real leer(categoria) leer(consumo)

segn sea categoria opcion 1: valorFactura = consumo + 500 opcion 2: valorFactura = consumo + 700 opcion 3: valorFactura = consumo + 4800 opcion 4: valorFactura = consumo + 5700

imprimir(valorFactura)
EISC

fin
Slide 71

Universidad del Valle - Algoritmia y Programacin

EJERCICIO
pseudocdigo

SWITCH-CASE

4. Codificar el algoritmo usando algn lenguaje de programacin

segn sea categoria opcion 1: valorFactura = consumo + 500 opcion 2: valorFactura = consumo + 700 opcion 3: valorFactura = consumo + 4800 opcion 4: valorFactura = consumo + 5700 Cdigo Java

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 72

EJERCICIO
pseudocdigo

SWITCH-CASE

4. Codificar el algoritmo usando algn lenguaje de programacin

segn sea categoria opcion 1: valorFactura = consumo + 500 opcion 2: valorFactura = consumo + 700 opcion 3: valorFactura = consumo + 4800 opcion 4: valorFactura = consumo + 5700 Cdigo Java switch(estrato){ case 1: valorFactura=consumo + 500; break; case 2: valorFactura=consumo + 700; break; case 3: valorFactura=consumo + 4800; break; case 4: valorFactura=consumo + 5700; break; }
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 73

EJERCICIO

SWITCH-CASE

4. Codificar el algoritmo usando algn lenguaje de programacin


import javax.swing.JOptionPane; public class Factura{ public static void main(String args[]) { // Variables de entrada y salida int estrato; float consumo,valorFactura; // Lectura de los datos de entrada estrato =Integer.parseInt(JOptionPane.showInputDialog(Ingrese estrato:)); consumo=Float.parseFloat(JOptionPane.showInputDialog(Ingrese consumo:)); // Proceso switch(estrato){ case 1: valorFactura=consumo + 500; break; case 2: valorFactura=consumo + 700; break; case 3: valorFactura=consumo + 4800; break; case 4: valorFactura=consumo+ 5700; break; } //imprimir JOptionPane.showMessageDialog(null,el nuevo valor de factura+ valorFactura); }}
EISC
Universidad del Valle - Algoritmia y Programacin
Slide 74

EJERCICIO

SWITCH-CASE

4. Codificar el algoritmo usando algn lenguaje de programacin

Ver cdigo fuente Factura.java en la pagina del curso

EISC
Universidad del Valle - Algoritmia y Programacin
Slide 75