Está en la página 1de 21

Introduccin a la computacin

Estructuras selectivas

Lapso 2012_2

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

Tipos de estructuras selectivas

Simples Dobles Mltiples


Profs: Erys Piero y Vladimir Camacaro 2

11/12/2012 18:32

Estructura selectiva simple


El formato general de la instruccin para decidir si una determinada sentencia debe ejecutarse o no (alternativa simple) es el siguiente: si (condicin) instruccin
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 3

La instruccin si puede escribirse tambin ms general para controlar la ejecucin de un grupo de sentencias, de la siguiente forma: si (condicin) inicio instruccin1 instruccion2 : instruccin fin

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

Estructura selectiva doble


Existe una forma ms general (alternativa doble), que ofrece dos alternativas de ejecucin, en funcin de si la condicin es verdadera o falsa. si (condicin) instruccin1 sino instruccion2
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 5

Para un grupo de instrucciones


si (condicin) inicio instruccin11 instruccion12 : Instruccion1n fin sino inicio instruccion21 instruccion22 : Instruccion2n fin
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 6

Estructura selectivas mltiples


Por ltimo existe una forma mas general (alternativa mltiple), son tomas de decisin especializada que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

si (condicin1) inicio si (condicion2) instruccion1 sino instruccion2 fin sino inicio si (condicion3) instruccion3 sino instruccion4 fin
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 8

EJERCICIOS

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

Ejercicio
Un restaurant de la ciudad, ofrece desayunos a 15,00BsF. almuerzos 35,00 BsF. y cenas 20.00 BsF. Estos montos no contienen IVA. Por la venta se requiere: Monto total vendido. Como datos de entrada se tiene: Tipo de comida (Desayuno, Almuerzo, Cena), nmero de comidas, nmero de nios y cantidad de personas de la tercera edad. Se tiene como poltica del establecimiento: A los nios se les hace un descuento del 5% en el almuerzo y el 10% en la cena y a las personas de la tercera edad un descuento del 12% en el desayuno.
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 10

Anlisis del problema


Lista Clasificacin

Venta ---------------- Clase TipoComida------------ Atributo/Venta NroComida------------- Atributo/Venta NroNios ----------- Atributo/Venta Nro3eraEdad---------- Atributo/Venta CalcMontoVendido- Mtodo/Venta
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 11

Anlisis del problema


La forma de calcular el monto vendido es:
si( Tipocomida=Desayuno) MontVendido NroComidas*15 Nro3eraEdad*15*12/100 sino si(Tipocomida=Almuerzo) MontVendido NroComidas*35 NroNios*35*5/100 sino

si(Tipocomida=Cena) MontVendido NroComidas*20 NroNios*20*10/100


sino Montvendido 0

Para calcular monto mas el IVA: MontVendido MontVendido+MontVendido*12/100

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

12

Diseo de la estructura de la clase Venta

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

13

Venta
alfanumrico TipoComida entero NroComida entero NroNios entero Nro3raEdad AsignarTipoComida(alfanumricoTC) AsignarNroComida(enteroNC) AsignarNroNios(enteroNN) AsignarNro3raEdad(enteroN3E) alfanumrico SacarTipoComida() entero SacarNroComida() entero SacarNroNios() entero SacarNro3raEdad() real CalcMontoVendido()

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

14

Implementacin en pseudolenguaje

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

15

// Definicin de la estructura de la clase clase Venta inicio privado: alfanumrico TipoComida entero NroComidas, NroNios, Nro3raEdad publico: //Mtodos para asignar o meter datos AsignarTipoComida(alfanumerico TC) AsignarNroComidas(entero NC) AsignarNroNios(entero NN) AsignarNro3raEdad(entero NC3E) //Mtodos para sacar datos alfanumrico SacarTipoComida() entero SacarNroComidas() entero SacarNroNios() entero SacarNro3raEdad() // Otros mtodos propios del objeto real CalcMontoVendido() fin // Venta

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

16

//Mtodos propios de la clase Venta AsignarTipoComida(alfanumerico TC) inicio TipoComida TC fin Venta AsignarNroComida( entero NC) inicio NroComida NC fin Venta AsignarNroNios(entero NN) inicio NroNios NN fin Venta AsignarNro3raEdad(entero N3E) inicio Nro3raEdad N3E fin
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 17

alfanumrico Venta SacarTipoComida() inicio retornar TipoComida fin entero Venta SacarNroComida() inicio retornar NroComida fin entero Venta SacarNroNios() inicio retornar NroNios fin entero Venta SacarNro3raEdad() inicio retornar Nro3raEdad fin

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

18

real Venta CalcMontoVendido() inicio real MontVendido si( Tipocomida=Desayuno) MontVendido NroComidas*15 Nro3eraEdad*15*12/100 sino si(Tipocomida=Almuerzo) MontVendido NroComidas*35 NroNios*35*5/100 sino si(Tipocomida=Cena) MontVendido NroComidas*20 NroNios*20*10/100 sino Montvendido 0 MontVendido MontVendido+MontVendido*12/100 retornar MontVendido fin

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

19

// Programa de aplicacin principal( ) inicio Venta ObjVenta // Creacin del objeto InterfazEntrada(ObjVenta) InterfazSalida(ObjVenta) fin

11/12/2012 18:32

Profs: Erys Piero y Vladimir Camacaro

20

InterfazEntrada(Venta ObjVenta ) inicio entero NC,NN,N3E // Definicin de variables alfanumrico TC escribir Escriba el tipo de comida leer TC ObjVenta.AsignarTipoComida(TC) escribir Escriba el numero de comida leer NC ObjVenta.AsignarNroComida(NC) escribir Escriba el numero de nios leer NN ObjVenta.AsignarNroNios(NN) escribir Escriba el numero de tercera edad leer N3E ObjVenta.AsignarNro3raEdad(N3E) fin InterfazSalida (Venta ObjVenta) inicio escribir El monto vendido es: ,ObjVenta.CalcMontoVendido() fin
11/12/2012 18:32 Profs: Erys Piero y Vladimir Camacaro 21