estructuras de control - algoritmia

86
ESTRUCTURAS DE CONTROL Algoritmia y Programación

Upload: daniel-gomez

Post on 26-May-2015

638 views

Category:

Education


17 download

DESCRIPTION

Universidad del Valle, 2013. Algoritmia y Programación.

TRANSCRIPT

Page 1: Estructuras de Control - Algoritmia

ESTRUCTURAS DE CONTROL

Algoritmia y Programación

Page 2: Estructuras de Control - Algoritmia

Slide 2

EISC Universidad del Valle - Algoritmia y Programación

CONTENIDO

Estructuras de Control

if-else

switch-case

Ejercicios

Page 3: Estructuras de Control - Algoritmia

Slide 3

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

La forma de tomar decisiones en un programa es a través de las Estructuras de Control.

Page 4: Estructuras de Control - Algoritmia

Slide 4

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

La forma de tomar decisiones en un programa es a través de las Estructuras de Control.

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

Page 5: Estructuras de Control - Algoritmia

Slide 5

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: ??

Salidas: ??

Proceso:??

Page 6: Estructuras de Control - Algoritmia

Slide 6

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: edad

Salidas: ??

Proceso:??

Page 7: Estructuras de Control - Algoritmia

Slide 7

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: edad

Salidas: impresión de mensaje de texto (anuncio)

Proceso:??

Page 8: Estructuras de Control - Algoritmia

Slide 8

EISC Universidad del Valle - Algoritmia y Programación

Conceptos preliminares

Análisis del problema

edad Impresión de

mensaje Proceso?

Page 9: Estructuras de Control - Algoritmia

Slide 9

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: edad

Salidas: mensaje de texto

Proceso:

SI la edad es mayor o igual que 18

Page 10: Estructuras de Control - Algoritmia

Slide 10

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: edad

Salidas: mensaje de texto

Proceso:

SI la edad es mayor o igual que 18

Mostrar el mensaje “Usted es mayor de edad”.

Page 11: Estructuras de Control - Algoritmia

Slide 11

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: edad

Salidas: mensaje de texto

Proceso:

SI la edad es mayor o igual que 18

Mostrar el mensaje “Usted es mayor de edad”.

SI NO

Page 12: Estructuras de Control - Algoritmia

Slide 12

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

1. Análisis del problema

Entradas: edad

Salidas: mensaje de texto

Proceso:

SI la edad es mayor o igual que 18

Mostrar el mensaje “Usted es mayor de edad”.

SI NO

mostrar el mensaje “Usted es menor de edad”

Page 13: Estructuras de Control - Algoritmia

Slide 13

EISC Universidad del Valle - Algoritmia y Programación

Conceptos preliminares

Análisis del problema

edad Impresión

de mensaje

Si edad > = 18

Imprimir usted es mayor de edad

Sino

Imprimir usted es menor de edad

Page 14: Estructuras de Control - Algoritmia

Slide 14

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) ???

Fin

Page 15: Estructuras de Control - Algoritmia

Slide 15

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) ??

Fin

Como expresar la condición “la edad es mayor que 18” en pseudocódigo??

Page 16: Estructuras de Control - Algoritmia

Slide 16

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) SI edad >= 18

Fin

Page 17: Estructuras de Control - Algoritmia

Slide 17

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) SI edad > =18

imprimir(“Usted es mayor de edad”)

Fin

Page 18: Estructuras de Control - Algoritmia

Slide 18

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) SI edad > =18

imprimir(“Usted es mayor de edad”)

SINO

Fin

Page 19: Estructuras de Control - Algoritmia

Slide 19

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) SI edad > =18

imprimir(“Usted es mayor de edad”)

SINO

imprimir(“Usted es menor de edad”) Fin

Page 20: Estructuras de Control - Algoritmia

Slide 20

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO ESTRUCTURA DE CONTROL

Problema: Se requiere de un programa que permita leer: dos números enteros y la opción de la operación matemática que deseen realizar:

Según la opción elegida se debe mostrar el resultado de la operación sobre los dos números

opción operación

1 Suma

2 Resta

3 Multiplicación

4 División

Page 21: Estructuras de Control - Algoritmia

Slide 21

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES RELACIONALES

Actúan sobre valores enteros, reales y caracteres. Estos operadores retorna un valor booleano.

Page 22: Estructuras de Control - Algoritmia

Slide 22

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES RELACIONALES

Ejercicio:

int n;

Exprese las siguientes condiciones en java:

n es menor que 30

n es igual que 60

n es mayor o igual que 90

Page 23: Estructuras de Control - Algoritmia

Slide 23

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES RELACIONALES

Ejercicio:

int n;

Exprese las siguientes condiciones en java:

n es menor que 30

n < 30

n es igual que 60

n es mayor o igual que 90

Page 24: Estructuras de Control - Algoritmia

Slide 24

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES RELACIONALES

Ejercicio:

int n;

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

Page 25: Estructuras de Control - Algoritmia

Slide 25

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES LÓGICOS

Actúan sobre operadores o expresiones lógicas, como las tablas de verdad.

Page 26: Estructuras de Control - Algoritmia

Slide 26

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES LÓGICOS

Ejercicio:

int n;

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

Page 27: Estructuras de Control - Algoritmia

Slide 27

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES LÓGICOS

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

Page 28: Estructuras de Control - Algoritmia

Slide 28

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES LÓGICOS

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

Page 29: Estructuras de Control - Algoritmia

Slide 29

EISC Universidad del Valle - Algoritmia y Programación

OPERADORES LÓGICOS

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

((n!=30 ) || (n>100))

Page 30: Estructuras de Control - Algoritmia

Slide 30

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO ESTRUCTURA DE CONTROL

Problema: Se requiere de un programa que permita leer: la cédula, salario básico y año de vinculación de un empleado y que permita calcular su salario neto sabiendo que:

Si gana más de $1200000 y entro a trabajar después de 1990 se le debe descontar un 8%.

Si gana menos de 550000 ó entró a trabajar en 1990 se le descuenta 2%.

En cualquier otro caso se descontará el 5% del salario.

El programa debe imprimir la cédula y salario neto del empleado.

Page 31: Estructuras de Control - Algoritmia

Slide 31

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

1. Análisis del problema

Entradas: cedula, ahno, salarioBasico

Salidas: salarioNeto

Proceso:

??

cedula ahno,

salarioBasico

cedula

salarioNeto Proceso?

Page 32: Estructuras de Control - Algoritmia

Slide 32

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

1. Análisis 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.08

SINO

SI el salarioBasico es menor que 550000, o el ahno es igual 1990

salarioNeto= salarioBasico - salarioBasico *0.02

SINO

salarioNeto= salarioBasico - salarioBasico *0.05

Page 33: Estructuras de Control - Algoritmia

Slide 33

EISC Universidad del Valle - Algoritmia y Programación

Conceptos preliminares

Análisis del problema

SI el salarioBasico > 1200000 y

ahno es >1990

salarioNeto= salarioBasico - ( salarioBasico *0.08 )

SINO

SI el salarioBasico > 550000, o ahno == 1990 salarioNeto= salarioBasico - salarioBasico *0.02

SINO salarioNeto= salarioBasico - salarioBasico *0.05

cedula ahno,

salarioBasico

cedula

salarioNeto

Page 34: Estructuras de Control - Algoritmia

Slide 34

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

cedula, ahno: entero

salarioBasico, salarioNeto: real

leer(cedula)

leer(ahno)

leer(salarioBasico)

???

imprimir(cedula)

imprimir(salarioNeto)

fin

Page 35: Estructuras de Control - Algoritmia

Slide 35

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

cedula, ahno: entero

salarioBasico, salarioNeto: real

leer(cedula)

leer(ahno)

leer(salarioBasico)

SI (salarioBasico > 1200000) Y (ahno>1990)

salarioNeto= salarioBasico – (salarioBasico *0.08 )

SINO

SI (salarioBasico < 550000) O (ahno==1990)

salarioNeto= salarioBasico – (salarioBasico *0.02)

SINO

salarioNeto= salarioBasico – (salarioBasico *0.05)

imprimir(cedula)

imprimir(salarioNeto)

fin

Page 36: Estructuras de Control - Algoritmia

Slide 36

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

3. Realizar una prueba de escritorio para el algoritmo

Cédula Año vinculación

Salario Bruto

Salario Neto

11301245 2000 1.300.000 1.170.000

3036978 1990 400.000 392.000

5045893 1985 2.000.000 1.900.000

Page 37: Estructuras de Control - Algoritmia

Slide 37

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

Pasando a Java…..

Page 38: Estructuras de Control - Algoritmia

Slide 38

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

4. Codificar el algoritmo usando algún lenguaje de programación

pseudocódigo Java

SI edad > 18

imprimir(“Usted es mayor de edad”)

SINO imprimir(“Usted es menor de edad”)

Page 39: Estructuras de Control - Algoritmia

Slide 39

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURAS DE CONTROL

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

4. Codificar el algoritmo usando algún lenguaje de programación

pseudocódigo Java

SI edad >= 18

imprimir(“Usted es mayor de edad”)

SINO imprimir(“Usted es menor de edad”)

Estructura de Control if-else

Page 40: Estructuras de Control - Algoritmia

Slide 40

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

SI edad >= 18

imprimir(“Usted es mayor de edad”)

SINO

imprimir(“Usted es menor de edad”)

Page 41: Estructuras de Control - Algoritmia

Slide 41

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

SI (edad >= 18)

imprimir(“Usted es mayor de edad”)

SINO

imprimir(“Usted es menor de edad”)

Las condiciones en Java se colocan entre paréntesis

Page 42: Estructuras de Control - Algoritmia

Slide 42

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

if (edad >= 18)

{

imprimir(“Usted es mayor de edad”)

}

SINO

imprimir(“Usted es menor de edad”)

El pseudocodigo SI, se reemplaza por la palabra reservada if

Page 43: Estructuras de Control - Algoritmia

Slide 43

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

if (edad >= 18)

{

imprimir(“Usted es mayor de edad”)

}

else

{

imprimir(“Usted es menor de edad”)

}

El pseudocodigo SINO, se reemplaza

por la palabra reservada else

Page 44: Estructuras de Control - Algoritmia

Slide 44

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

if (edad >= 18)

{

JOptionPane.showMessageDialog(null,“Usted es mayor de edad”);

}

else

{

JOptionPane.showMessageDialog(null,“Usted es menor de edad”);

}

SI edad >= 18

imprimir(“Usted es mayor de edad”)

SINO imprimir(“Usted es menor de edad”)

Page 45: Estructuras de Control - Algoritmia

Slide 45

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

La estructura de control if-else permite ejecutar una serie

de instrucciones solo cuando se cumple una condición

establecida

Page 46: Estructuras de Control - Algoritmia

Slide 46

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

La estructura de control if-else permite ejecutar una serie

de instrucciones solo cuando se cumple una condición

establecida

Page 47: Estructuras de Control - Algoritmia

Slide 47

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

Problema: Desarrollar una aplicación Java que solicite la edad de una persona e indique si es mayor de edad o no

2. Diseñar el algoritmo y escribirlo en pseudocódigo

Inicio edad: entero leer (edad) SI edad >= 18

imprimir(“Usted es mayor de edad”)

SINO

imprimir(“Usted es menor de edad”) Fin

Page 48: Estructuras de Control - Algoritmia

Slide 48

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE

public class MayorEdad

{

public static void main(String args[])

{

// Variable de entrada

int edad;

// Lectura de los datos de entrada

edad=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese su edad:”));

// Proceso if (edad>=18) { JOptionPane.showMessageDialog(null,"Usted es mayor de edad"); } else { JOptionPane.showMessageDialog(null,"Usted es menor de edad"); }

}

}

Inicio edad: entero leer (edad) SI edad >= 18

imprimir(“Usted es mayor de edad”)

SINO imprimir(“Usted es menor de edad”) Fin

Page 49: Estructuras de Control - Algoritmia

Slide 49

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

cedula, ahno: entero

salarioBasico, salarioNeto: real

leer(cedula)

leer(ahno)

leer(salarioBasico)

SI (salarioBasico > 1200000) Y (ahno>1990)

salarioNeto= salarioBasico - salarioBasico *0.08

SINO

SI (salarioBasico < 550000) O (ahno==1990)

salarioNeto= salarioBasico - salarioBasico *0.02

SINO

salarioNeto= salarioBasico - salarioBasico *0.05

imprimir(cedula)

imprimir(salarioNeto)

fin

Page 50: Estructuras de Control - Algoritmia

Slide 50

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

4. Codificar el algoritmo usando algún lenguaje de programación

SI (salarioBasico > 1200000) Y (ahno>1990)

salarioNeto= salarioBasico - salarioBasico *0.08 SINO SI (salarioBasico < 550000) O (ahno==1990) salarioNeto= salarioBasico - salarioBasico *0.02 SINO salarioNeto= salarioBasico - salarioBasico *0.05

Código Java

pseudocódigo

Page 51: Estructuras de Control - Algoritmia

Slide 51

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

4. Codificar el algoritmo usando algún lenguaje de programación

if ((salarioBasico > 1200000) && (ahno>1990)){

salarioNeto= salarioBasico - salarioBasico*0.08;

}

else{

if((salarioBasico < 550000) || (ahno==1990)){

salarioNeto= salarioBasico - salarioBasico*0.02;

}

else{

salarioNeto= salarioBasico - salarioBasico*0.05;

}

}

Código Java

pseudocódigo

SI (salarioBasico > 1200000) Y (ahno>1990)

salarioNeto= salarioBasico - salarioBasico *0.08 SINO SI (salarioBasico < 550000) O (ahno==1990) salarioNeto= salarioBasico - salarioBasico *0.02 SINO salarioNeto= salarioBasico - salarioBasico *0.05

Page 52: Estructuras de Control - Algoritmia

Slide 52

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE 4. Codificar el algoritmo usando algún lenguaje de programación import javax.swing.JOptionPane;

public class Nomina {

public static void main(String args[])

{ int cedula, ahno; double salarioBasico, salarioNeto;

cedula =Integer.parseInt(JOptionPane.showInputDialog(“Ingrese cedula:”));

ahno =Integer.parseInt(JOptionPane.showInputDialog(“Ingrese ahno:”));

salarioBasico =Double.parseDouble(JOptionPane.showInputDialog(“Ingrese salario básico:”));

if ((salarioBasico > 1200000) && (ahno>1990))

{

salarioNeto= salarioBasico - salarioBasico*0.08;

}

else

{

if((salarioBasico < 550000) || (ahno==1990))

{

salarioNeto= salarioBasico - salarioBasico*0.02;

}

else

{

salarioNeto= salarioBasico - salarioBasico*0.050;

}

}

JOptionPane.showMessageDialog(null,“cedula:“+ cedula+”\n”+”salario neto:”+ salarioNeto);

} }

Page 53: Estructuras de Control - Algoritmia

Slide 53

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE 4. Codificar el algoritmo usando algún lenguaje de programación import javax.swing.JOptionPane;

public class Nomina {

public static void main(String args[])

{ int cedula, ahno; double salarioBasico, salarioNeto;

cedula =Integer.parseInt(JOptionPane.showInputDialog(“Ingrese cedula:”));

ahno =Integer.parseInt(JOptionPane.showInputDialog(“Ingrese ahno:”));

salarioBasico =Double.parseDouble(JOptionPane.showInputDialog(“Ingrese salario básico:”));

if ((salarioBasico > 1200000) && (ahno>1990))

{

salarioNeto= salarioBasico - salarioBasico*0.08;

}

else

{

if((salarioBasico < 550000) || (ahno==1990))

{

salarioNeto= salarioBasico - salarioBasico*0.02;

}

else

{

salarioNeto= salarioBasico - salarioBasico*0.050;

}

}

JOptionPane.showMessageDialog(null,“cedula:“+ cedula+”\n”+”salario neto:”+ salarioNeto);

} }

Page 54: Estructuras de Control - Algoritmia

Slide 54

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO IF-ELSE

4. Codificar el algoritmo usando algún lenguaje de programación

Ver código fuente Nomina.java en el campus del curso…

Page 55: Estructuras de Control - Algoritmia

Slide 55

EISC Universidad del Valle - Algoritmia y Programación

Más estructuras de control….

Page 56: Estructuras de Control - Algoritmia

Slide 56

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, resumiendo cuando se tengan varios if-else anidados

Page 57: Estructuras de Control - Algoritmia

Slide 57

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, resumiendo cuando se tengan varios if-else anidados

En pseudocódigo

según sea(x)

caso 1: instrucciones_1

caso 2: instrucciones_2

caso n: instrucciones_n

por defecto: instrucciones_por_defecto

fin según sea

Page 58: Estructuras de Control - Algoritmia

Slide 58

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, resumiendo cuando se tengan varios if-else anidados

En pseudocodigo

según sea(x)

caso 1 : instrucciones_1

caso 2 : instrucciones_2

caso n : instrucciones_n

por defecto: instrucciones_por_defecto

fin según sea

La variable x debe ser de tipo entero, o de tipo carácter o de tipo String.

No se permiten otros tipos de datos.

Page 59: Estructuras de Control - Algoritmia

Slide 59

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, permitiendo resumir cuando se tengan varios if-else anidados

En código java

switch(x)

{

caso 1 : instrucciones_1

caso 2 : instrucciones_2

caso n : instrucciones_n

por defecto: instrucciones_df

}

El pseudocógido según sea se reemplaza por la palabra reservada switch

Page 60: Estructuras de Control - Algoritmia

Slide 60

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, permitiendo resumir cuando se tengan varios if-else anidados

En código java

switch(x)

{

case 1 : instrucciones_1

case 2 : instrucciones_2

case n : instrucciones_n

por defecto: instrucciones_df

}

El pseudocódigo caso se reemplaza por la palabra reservada case

Page 61: Estructuras de Control - Algoritmia

Slide 61

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, permitiendo resumir cuando se tengan varios if-else anidados

En código java

switch(x)

{

case 1 : instrucciones_1

case 2 : instrucciones_2

case n : instrucciones_n

default : instrucciones_df

}

El pseudocódigo por defecto se reemplaza por la palabra reservada default

Page 62: Estructuras de Control - Algoritmia

Slide 62

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Permite manejar varias opciones de forma sencilla, permitiendo resumir cuando se tengan varios if-else anidados

En código java

switch(x)

{

case 1 : instrucciones_1; break;

case 2 : instrucciones_2 ; break;

case n : instrucciones_n ; break;

default : instrucciones_df ; break;

}

Al finalizar de cada bloque de instrucciones se debe agregar la instrucción break; Para indicar el final de cada caso.

Page 63: Estructuras de Control - Algoritmia

Slide 63

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

Problema: Desarrollar una aplicación en java que reciba un entero correspondiente a una categoría y el total de ventas de un empleado y retorne la comisión que recibe.

Tome en cuenta la siguiente tabla.

categoría Comisión

1 10%

2 20%

3 35%

4 45%

5 50%

6 60%

Page 64: Estructuras de Control - Algoritmia

Slide 64

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

1. Análisis del problema

Entradas: ??

Salidas: ??

Proceso:??

Page 65: Estructuras de Control - Algoritmia

Slide 65

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

1. Análisis del problema

Entradas: categoria, ventas

Salidas: comision

Proceso:??

categoria

ventas comision Proceso?

Page 66: Estructuras de Control - Algoritmia

Slide 66

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

1. Análisis del problema

Entradas: categoria, ventas

Salidas: comision

Proceso:

SEGÚN SEA categoria

Page 67: Estructuras de Control - Algoritmia

Slide 67

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

1. Análisis del problema

Entradas: categoria, ventas

Salidas: comision

Proceso:

SEGÚN SEA categoria

caso 1 : comision = ventas * 0.1

Page 68: Estructuras de Control - Algoritmia

Slide 68

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

1. Análisis del problema

Entradas: categoria, ventas

Salidas: comision

Proceso:

SEGÚN SEA categoria

caso 1 : comision = ventas * 0.1

caso 2 : comision = ventas * 0.2

Page 69: Estructuras de Control - Algoritmia

Slide 69

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

1. Análisis del problema

Entradas: categoria, ventas

Salidas: comision

Proceso:

SEGÚN SEA categoria

caso 1 : comision = ventas * 0.1

caso 2 : comision = ventas * 0.2

caso 3 : comision = ventas * 0.35

caso 4 : comision = ventas * 0.45

caso 5 : comision = ventas * 0.5

caso 6 : comision = ventas * 0.6

Por defecto : imprimir(“Categoría inexistente”)

Page 70: Estructuras de Control - Algoritmia

Slide 70

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

categoria: entero

ventas, comision: real

leer(categoria)

leer(ventas)

???

imprimir(comision)

fin

Page 71: Estructuras de Control - Algoritmia

Slide 71

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE 2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

categoria: entero

ventas, comision: real

leer(categoria)

leer(ventas)

Según sea categoria

caso 1: comision = ventas * 0.1

caso 2: comision = ventas * 0.2

caso 3: comision = ventas * 0.35

caso 4: comision = ventas * 0.45

caso 5: comision = ventas * 0.5

caso 6: comision = ventas * 0.6

por defecto: imprimir(“categoría inexistente”)

fin según_sea

imprimir(comision)

fin

Page 72: Estructuras de Control - Algoritmia

Slide 72

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

4. Codificar el algoritmo usando algún lenguaje de programación

Según sea categoria

caso 1: comision = ventas * 0.1

caso 2: comision = ventas * 0.2

caso 3: comision = ventas * 0.35

caso 4: comision = ventas * 0.45

caso 5: comision = ventas * 0.5

caso 6: comision = ventas * 0.6

por defecto: imprimir(“categoría inexistente”)

fin según_sea

Page 73: Estructuras de Control - Algoritmia

Slide 73

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA SWITCH -CASE

4. Codificar el algoritmo usando algún lenguaje de programación

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;

default: JoptionPane.showMessageDialog(null, “Categoría Inexistente”);

}

Page 74: Estructuras de Control - Algoritmia

Slide 74

EISC Universidad del Valle - Algoritmia y Programación

ESTRUCTURA IF-ELSE public class ComisionEmpleado{

public static void main(String args[])

{ // Variables de entrada y salida

int categoria; double ventas; double comision;

// Lectura de los datos de entrada

categoria =Integer.parseInt(JOptionPane.showInputDialog(“Ingrese categoria:”));

ventas =Double.parseDouble(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;

default: JOptionPane.showMessageDialog(null,“categoria inexistente”);

}

//imprimir

JOptionPane.showMessageDialog(null,“la comision es “+ comision);

} }

Page 75: Estructuras de Control - Algoritmia

Slide 75

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO

Problema: Emcali requiere recalcular la factura de energía 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 básico a adicionar para establecer el nuevo valor de la factura.

El programa debe reportar el nuevo valor de la factura. Para saber los valores básicos que corresponde a cada categoría use la siguiente tabla:

Estrato Valor Base

1 500

2 700

3 4800

4 6700

Si se digita una categoría que no esté en la tabla se debe mostrar un mensaje indicando que la categoría no es válida.

Page 76: Estructuras de Control - Algoritmia

Slide 76

EISC Universidad del Valle - Algoritmia y Programación

Anexos

Page 77: Estructuras de Control - Algoritmia

Slide 77

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

Problema: Emcali requiere recalcular la factura de energía 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 básico a adicionar para establecer el nuevo valor de la factura. Para saber los valores básicos que corresponde a cada categoría use la siguiente tabla:

Estrato Valor Base

1 500

2 700

3 4800

4 6700

Si se digita una categoría que no esté en la tabla se debe mostrar un mensaje indicando que la categoría no es válida.

Page 78: Estructuras de Control - Algoritmia

Slide 78

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

1. Análisis del problema

Entradas: estrato, consumo

Salidas: valorFactura

Proceso:

??

Page 79: Estructuras de Control - Algoritmia

Slide 79

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

1. Análisis 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

Page 80: Estructuras de Control - Algoritmia

Slide 80

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

estrato: entero

consumo, valorFactura: real

leer(categoria)

leer(consumo)

??

imprimir(valorFactura)

fin

Page 81: Estructuras de Control - Algoritmia

Slide 81

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

2. Diseñar el algoritmo y escribirlo en pseudocódigo

inicio

estrato: entero

consumo, valorFactura: real

leer(categoria)

leer(consumo)

según sea categoria

caso 1: valorFactura = consumo + 500

caso 2: valorFactura = consumo + 700

caso 3: valorFactura = consumo + 4800

caso 4: valorFactura = consumo + 5700

defecto : imprimir(“categoría no válida”)

fin según_sea

imprimir(valorFactura)

fin

Page 82: Estructuras de Control - Algoritmia

Slide 82

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

3. Realizar una prueba de escritorio para el algoritmo

inicio

estrato: entero

consumo, valorFactura: real

leer(categoria)

leer(consumo)

según sea categoria

caso 1: valorFactura = consumo + 500

caso 2: valorFactura = consumo + 700

caso 3: valorFactura = consumo + 4800

caso 4: valorFactura = consumo + 5700

defecto : imprimir(“categoría no válida”)

fin según_sea

imprimir(valorFactura)

fin

Estrato Valor Consumo

Valor Factura

1 20000 20500

2 79000 79700

3 200100 20490

4 600540 607240

Page 83: Estructuras de Control - Algoritmia

Slide 83

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

4. Codificar el algoritmo usando algún lenguaje de programación

según sea categoria

caso 1: valorFactura = consumo + 500

caso 2: valorFactura = consumo + 700

caso 3: valorFactura = consumo + 4800

caso 4: valorFactura = consumo + 5700

fin según_sea

Código Java

pseudocódigo

Page 84: Estructuras de Control - Algoritmia

Slide 84

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

4. Codificar el algoritmo usando algún lenguaje de programación

según sea categoria

caso 1: valorFactura = consumo + 500

caso 2: valorFactura = consumo + 700

caso 3: valorFactura = consumo + 4800

caso 4: valorFactura = consumo + 5700

fin según_sea

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;

default : JOptionPane.showMessageDialog(null,“Categoría no válida”); break:

}

Código Java

pseudocódigo

Page 85: Estructuras de Control - Algoritmia

Slide 85

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE 4. Codificar el algoritmo usando algún lenguaje de programación

import javax.swing.JOptionPane;

public class Factura{

public static void main(String args[])

{ // Variables de entrada y salida

int estrato; double consumo,valorFactura;

// Lectura de los datos de entrada

estrato =Integer.parseInt(JOptionPane.showInputDialog(“Ingrese estrato:”));

consumo=Double.parseDouble(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;

default : JOptionPane.showMessageDialog(null,“Categoría no válida”); break:}

//imprimir

JOptionPane.showMessageDialog(null,“el nuevo valor de factura“+ valorFactura);

} }

Page 86: Estructuras de Control - Algoritmia

Slide 86

EISC Universidad del Valle - Algoritmia y Programación

EJERCICIO SWITCH-CASE

4. Codificar el algoritmo usando algún lenguaje de programación

Ver código fuente Factura.java en el campus del curso…