Вы находитесь на странице: 1из 30

Clase 03: Estructuras Lgicas de Seleccin

Las estructuras lgicas selectivas se encuentran en la solucin algortmica de casi todo tipo de problemas. Se utilizan al desarrollar la solucin de un problema que implica tomar una decisin, establecer un proceso o sealar un camino alternativo a seguir. Esta toma de decisin se basa en la evaluacin de una o ms condiciones que nos sealarn, como alternativa o consecuencia, la rama a seguir. Francisco J. Arias 1

Las estructuras de seleccin permiten la ejecucin de un grupo de instrucciones escogido entre uno, dos o varios posibles grupos con base al valor (que es falso o verdadero) de una expresin lgica o condicin). Las estructuras algortmicas selectivas se pueden clasificar como:

Si... Entonces (estructura selectiva simple) Si... Entonces... Sino (estructura select. doble)
Francisco J. Arias 2

Hay situaciones en las que la toma de decisiones se encuentra en cascada.


Es alumno regular?

Tiene deudas con la U?

Est matriculado?

Tomar ramos.
Francisco J. Arias 3

Estructura Si... Entonces

La estructura Si... Entonces permite que el flujo del diagrama siga por un camino especfico si se cumple una condicin o un conjunto de condiciones. Si al evaluar la condicin (o condiciones) el resultado es verdadero, entonces se ejecuta(n) cierta(s) operacin(es). Luego se contina con la secuencia normal del diagrama.
Francisco J. Arias 4

En trminos de programacin, cuando la seleccin que se necesita realizar se da entre una o dos opciones, la estructura de seleccin equivale, respectivamente, a las instrucciones if o if-else de la mayora de los lenguajes de programacin.

Francisco J. Arias

Expresin lgica V Conjunto de instrucciones

Francisco J. Arias

La figura anterior muestra que el conjunto de instrucciones se ejecuta solamente si se cumple la condicin (es decir, si expresin lgica es verdadera). Si la condicin es falsa, entonces se sigue el curso normal del diagrama y NO se ejecuta el conjunto de instrucciones.

Francisco J. Arias

Ejemplo

Construya un diagrama de flujo que, dado como dato la calificacin de un alumno en un examen, escriba Aprobado en caso de que esa calificacin sea mayor que 3.9.

Francisco J. Arias

Inicio

nota

nota > 3.9 V Aprobado

Fin
Francisco J. Arias 9

En el ejemplo anterior vemos claramente cmo el caso en que la condicin es falsa lleva el flujo directamente donde el diagrama termina. Otro ejemplo: Dado como dato el sueldo de un trabajador, aplique un aumento del 17% si su sueldo es inferior a $1000.

Francisco J. Arias

10

Inicio

sueldo

sueldo < 1000 V sueldo = sueldo*1.17 sueldo F

Fin
Francisco J. Arias 11

Estructura Si... Entonces... Sino

Es evidente que la seleccin simple es limitada aunque muchas veces necesaria. La alternativa doble nos permite tomar decisiones en ambos sentidos, es decir, cuando la condicin es verdadera o cuando es falsa. En otras palabras, cuando la expresin lgica es verdadera se ejecutar un conjunto de instrucciones y cuando sea falsa otro conjunto de instrucciones.
Francisco J. Arias 12

Expresin lgica V Conjunto de instrucciones

Otro conjunto de instrucciones

Francisco J. Arias

13

Expresin lgica

Francisco J. Arias

14

Ejemplo

Construya un algoritmo que, dado como dato la calificacin de un alumno en un examen, escriba Aprobado si su calificacin es mayor que 3.9 y Reprobado en caso contrario.

Francisco J. Arias

15

Inicio

nota

nota > 3.9 V Aprobado F Reprobado

Conector Fin
Francisco J. Arias 16

Otro ejemplo: Dado como dato el sueldo de un trabajador, aplicar un aumento del 15% si su sueldo es inferior a $1000 y 12% en caso contrario. Imprimir el nuevo sueldo del trabajador.

Francisco J. Arias

17

Inicio

sueldo

sueldo < 1000 V sueldo = sueldo*1.15 F sueldo = sueldo*1.12

sueldo Fin
Francisco J. Arias 18

Anidamiento de estructuras condicionales

Con frecuencia existen problemas con ms de dos elecciones posibles. Los problemas as pueden ser resueltos con estructuras selectivas anidadas o en cascada. Se dice que las estructuras estn anidadas cuando hay otras dentro de ellas.

Francisco J. Arias

19

Expresin lgica V V Expresin lgica V F Expresin lgica V F Expresin lgica

Francisco J. Arias

20

Ejemplo

En los ejemplos anteriores suponamos que la nota ingresada era vlida. En la prctica iremos viendo que nada se supone. Todo ingreso de datos debe estar correctamente validado. Para esto, las instrucciones condicionales nos ayudan.
Francisco J. Arias 21

Leer nota.

Si la nota es vlida

Comprobar que sea superior a 3.9 y reportar Aprobado. Si no, reportar Reprobado.

Si la nota no es vlida, enviar mensaje al usuario.

Francisco J. Arias

22

Inicio

nota nota >= 1.0 Y nota <= 7.0 V nota > 3.9 V Aprobado F Reprobado

F Nota no vlida

Fin
Francisco J. Arias 23

Estructuras de seleccin mltiple

Es muy probable encontrarse con situacin de eleccin mltiple. Pero si la cantidad de opciones es grande se pueden enfrentar se pueden enfrentar serios problemas de escritura y legibilidad. Para facilitar la seleccin mltiple cuando se tiene una gran cantidad de opciones se emplean las estructuras de seleccin mltiple.

Francisco J. Arias

24

La seleccin en una estructura de seleccin mltiple (case o switch en ingls de programacin) depende de una expresin que puede tomar un valor elegido de entre un conjunto finito de valores. De acuerdo al valor que tiene la expresin en un momento dado, se ejecuta un grupo de instruccin u otro.

Francisco J. Arias

25

Expresin 1 2 3 De otra forma

Francisco J. Arias

26

Si el valor de la expresin es 1 se ejecuta la instruccin 1, si el valor es 2 se ejecuta la instruccin 2, y as sucesivamente. En general, si la expresin tomar el valor N se ejecuta la instruccin N. Pero si toma un valor distinto a los nmeros comprendidos entre 1 y N entonces, se continuar con el flujo normal del programa realizndose la accin N+1 (de otra forma).
Francisco J. Arias 27

Ejemplo

Disee un diagrama de flujo tal que, evale la funcin val, a partir de los valores de las variables num y v. La variable num debe ser de tipo entero.
100 * v si num = 1 100 ^ v si num = 2 val = 100 / v si num = 3 0 cualquier otro valor de num

Francisco J. Arias

28

inicio num, v

num 1 val 100*v 2 val 100^v 3 val 100/v De otra forma val 0

val fin
Francisco J. Arias 29

Propuesto: Construya un diagrama que, dados como datos la categora y el sueldo de un trabajador, calcule el aumento correspondiente teniendo en cuenta la tabla. Imprima la categora del trabajador y su nuevo sueldo.
Categora 1 2 3 4 Aumento 15% 10% 8% 5% Gua de Ejercicios 2

Francisco J. Arias

30

Вам также может понравиться