Sunteți pe pagina 1din 24

Introduccin a la Computacin

Captulo 5:
Estructuras Algortmicas Selectivas
(Anidamiento)

Estructura Selectiva simple:


If Then ...
En el lenguaje VBA, la estructura selectiva simple,
tiene la sintaxis general siguiente:
If expr. booleana Then
instruccion(es)
End If
En lenguaje natural, diramos:
Si la (expresin booleana) es verdadera entonces
ejecutar las (instruccion(es)).

Estructura Selectiva doble:


If Then Else ...
En el lenguaje VBA, la estructura selectiva o sentencia
selectiva doble, tiene la sintaxis general siguiente:
If expr. booleana Then
instruccion(es)
Else
instruccion(es)
End If

En lenguaje natural, diramos:


Si la (expresin booleana) es verdadera, entonces
ejecutar las (instruccin(es) 1)
en caso contrario
ejecutar las (instruccin(es) 2)
3

Anidamiento de Estructuras Selectivas


(Diseo)
En pseudocdigo, el anidamiento de estructuras
selectivas dobles pueden tener la siguiente sintaxis:
Si expresin booleana 1 entonces
sentencia 1
Sino
Si expresin booleana 2 entonces
sentencia 2
Sino
sentencia 3
Fin Si
Fin Si

Anidamiento de Estructuras Selectivas


(Codificacin)
En el lenguaje VBA, el anidamiento de estructuras
selectivas dobles pueden tener la siguiente sintaxis:
If expresin booleana 1 Then
sentencia 1
Else
If expresin booleana 2 Then
sentencia 2
Else
sentencia 3
End if
End If

Anidamiento de Estructuras Selectivas


(Codificacin)
En el lenguaje VBA, las estructuras selectivas anidadas
pueden tener tambin la siguiente sintaxis:

If expresin booleana 1 Then


sentencia 1
ElseIf expresin booleana 2 Then
sentencia 2

ElseIf expresin booleana N Then


sentencia N
[ Else
sentencia P ]
End If

Ejemplo: Funcin
Juan debe calcular el valor de la funcin f(x) mostrada a
continuacin:

Para probar el uso de la funcin se ha creado la siguiente


hoja de clculo:

Adems, se ha considerado validar el dominio de


la funcin f(x). De no ser vlido, se debe colocar el mensaje Alguno de los valores x es
incorrecto en la celda asociada a la Observacin.
Se le pide:
a) Plantear el anlisis del problema considerando al menos 3 mdulos.
b) Disear, en pseudocdigo, la solucin del problema en base al diagrama de mdulos
planteado.
c) Codificar en VBA con Excel los mdulos definidos en base al diagrama de mdulos
planteado.

Ejemplo - Anlisis
Datos de entrada: valor de x1(x1), valor de x2 (x2)
Datos de salida:
valor de la funcin en x1 (f1), valor
de la funcin en x2 (f2)
Frmulas y comparaciones(Opcionales)
Validar = (x1 > 0) y (x2 >0)
Valores de la funcin f, de acuerdo a la regla de
correspondencia presentada.

Ejemplo - Anlisis
Diagrama de mdulos

Ejemplo - Diseo (Pseudocdigo)


Inicio HallarValores()
Leer x1, x2
validar ValidarDatos(x1, x2)
Si validar entonces
f1 f(x1)
f2 f(x2)
Escribir f1, f2
Sino
Escribir "Alguno de los valores x es incorrecto"
Fin Si
Fin HallarValores
Inicio ValidarDatos(x1, x2)
validar (x1 > 0) y (x2 > 0)
retornar validar
Fin ValidarDatos

10

Ejemplo - Diseo (Pseudocdigo)


Inicio f(x)
Si x < 5 entonces
valor x ^ 2
Sino
Si x < 10 entonces
valor x ^ 3 - 1
Sino
valor x / 2
Fin Si
Fin Si
retornar valor
Fin f

11

Ejemplo - Codificacin
Const limite1 = 0, limite2 = 5, limite3 = 10
Const mensaje = "Alguno de los valores x es incorrecto"
Sub HallarValores()
Dim x1 As Single, x2 As Single, f1 As Single, f2 As Single, validar As Boolean
x1 = Range("A2")
x2 = Range("A3")
validar = ValidarDatos(x1, x2)
If validar Then
f1 = f(x1)
f2 = f(x2)
Range("B2") = f1
Range("B3") = f2
Else
Range("B5") = mensaje
End If
End Sub

12

Ejemplo - Codificacin
Function ValidarDatos(x1 As Single, x2 As Single) As Boolean
Dim validar As Boolean
validar = (x1 > limite1) And (x2 > limite1)
ValidarDatos = validar
End Function

13

Ejemplo Codificacin
(Usando If Else End If)
'Usando If....Else...End If
Function f(x As Single) As Single
Dim valor As Single
If x < limite2 Then
valor = x ^ 2
Else
If x < limite3 Then
valor = x ^ 3 - 1
Else
valor = x / 2
End If
End If
f = valor
End Function

14

Ejemplo - Codificacin
(Usando If Elseif End If)
'Usando If....ElseIf...End If
Function f(x As Single) As Single
Dim valor As Single
If x < limite2 Then
valor = x ^ 2
ElseIf x < limite3 Then
valor = x ^ 3 - 1
Else
valor = x / 2
End If
f = valor
End Function

15

Ejercicio Propuesto 1: Pregunta 3 Prctica 3


2013-1 (Adaptada)
Abigail ha sido elegida como dama de honor del matrimonio de su mejor amiga. Para
ello deber mandar a confeccionar el vestido que se pondr ese gran da. Ella ha
estado revisando varias revistas de moda y ha encontrado dos modelos posibles de
vestido. La primera opcin es un vestido a la pantorrilla y la segunda opcin es un
vestido coctel a la rodilla. Como ambos modelos son de su gusto, ella decidir qu
vestido usar en funcin del monto que tendr que pagar por la confeccin. Aquel
vestido que sea ms barato ser el que mandar a confeccionar.
Su costurera le ha dicho que para calcular el monto total a pagar por la confeccin
deber considerar: el precio por confeccin, el tipo de tela, los adornos que tendr
el vestido y la cantidad de tela a utilizar (que depender del modelo del vestido).
Adems, ella le ha brindado los precios por tipo de tela y por tipo de adorno:

16

Ejercicio Propuesto 1: Pregunta 3 Prctica


3 2013-1 (Adaptada)
Se pide calcular el monto total a pagar de cada opcin y determinar cul es la opcin
ms barata. Para ello, se ha elaborado una hoja Excel como se muestra a
continuacin.

17

Ejercicio Propuesto 1: Pregunta 3 Prctica


3 2013-1 (Adaptada)
Tener en cuenta que el vestido solo podr ser confeccionado con un solo tipo de
tela. Por ello, asumir que siempre en la hoja Excel habr una X solamente en uno de
los tipos de tela.
Adems, considere que los datos de entrada son vlidos si los tipos de tela son una
X o , los adornos son un S o un No y la cantidad de tela y el precio por
confeccin son nmeros positivos. En caso los datos de entrada no sean vlidos,
mostrar el mensaje Los datos de entrada son incorrectos.
En caso la opcin 1 sea la ms barata, mostrar el mensaje Opcin 1 - Vestido 3/4",
en caso la opcin 2 sea la ms barata, mostrar el mensaje Opcin 2 - Vestido
Coctel" y en caso cuesten igual, mostrar el mensaje Ambas cuestan igual"

18

Ejercicio Propuesto 1: Pregunta 3 Prctica


3 2013-1 (Adaptada)
Para resolver este problema, se ha planteado el siguiente diagrama de mdulos:

Se le pide:
a) Plantear los datos de entrada y salida.
b) Disear, en pseudocdigo, la solucin del problema en base al diagrama de
mdulos propuesto en estricto diseo descendente.
c) Codificar en VBA con Excel los mdulos definidos en base al diagrama de mdulos
propuesto en estricto diseo descendente.

19

Ejercicio Propuesto 2: Pregunta 6 Prctica 3


2014-2 (Adaptada)
Peggy ha iniciado un negocio de venta de salchipapa a domicilio. Como recin est
empezando en el negocio, por el momento el pedido solamente podr incluir una
cantidad determinada de platos de un solo tipo de salchipapa. Adems, dependiendo
de la cantidad de platos solicitados, el pedido tiene un porcentaje de descuento slo
si el reparto es en alguno de los tres distritos cercanos al local de Peggy: Brea, Jess
Mara y Lince.
A continuacin, las siguientes tablas muestran el detalle de los precios de los tipos
de salchipapa y el porcentaje de descuento respecto a la cantidad de platos
solicitados para los distritos especificados.

20

Ejercicio Propuesto 2: Pregunta 6 Prctica


3 2014-2 (Adaptada)
Se pide calcular el monto parcial (pago por tipo de salchipapa), evaluar si el pedido
tiene descuento, calcular el monto de descuento y calcular el monto total a pagar.
Para ello, se ha elaborado la siguiente hoja Excel y se plantea, como parte del anlisis,
el diagrama de mdulos mostrado a continuacin.

21

Ejercicio Propuesto 2: Pregunta 6 Prctica


3 2014-2 (Adaptada)
Adems, se debe considerar que solo si los datos de entrada son vlidos se
hallarn los valores pedidos.
Por ello, debe considerar que solo hay tres tipos de salchipapa (Clsica, Mixta o
Revuelta), solo se reparte a 3 distritos (Brea, Jess Mara o Lince) y la cantidad de
platos solicitados es mayor o igual a 5.

Se le pide seguir los siguientes pasos en estricto orden:


a) Plantear los datos de entrada y salida.
b) Elaborar el diseo de la solucin, en pseudocdigo, que debe coincidir
exactamente con el diagrama de mdulos propuesto.
c) En VBA sobre Excel, codificar (usando diseo descendente) los mdulos
planteados en el diagrama propuesto, sin incluir ningn mdulo adicional.

22

Referencias
[RAE] Real Academia de la Lengua Espaola
http://www.rae.es/

23

Bibliografa
Aho, Alfred. Estructuras de Datos y Algoritmos.
Addison-Wesley. North Carolina, 1988.

24

S-ar putea să vă placă și