sábado, 31 de mayo de 2008

unidad V

UNIDAD V. ESTRUCTURA SELECTIVA

Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas.

En las estructuras selectivas se evalúa una condición y en función del resultado de la misma se realiza un opción u otra. Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else o bien en español si, entonces, sino), con una figura geométrica en forma de rombo o bien con un triángulo en el interior de una caja rectangular.

Estructuras de Control

Por lo regular en un programa los enunciados son ejecutados uno después del otro, en el ordén en que aparecen escritos. Esto se conoce como ejecución secuencial. Sin embargo, existen enunciados que le permiten al programador especificar que el enunciado siguiente a ejecutar pueda ser otro diferente al que sigue en secuencia. Esto se conoce como transferencia de control.

Las estructuras selectivas o alternativas pueden ser:

simples
dobles
múltiples



5.1ESTRUCTURA DE SELECCIÓN SIMPLE.


Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso:
Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias). Si la condición es falsa, entonces no se hace nada.
Español Inglés Si If Entonces then fin_si endif
Ejemplo 1. Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 8. Salidas: mensaje de aprobado si se cumple la condición. Entradas: calificación
Datos adicionales: un alumno aprueba si la calificación es mayor que 8 Variables: Cal = calificación Algoritmo: Inicio Leer (cal) Si cal > 8 entonces Escribir (“aprobado”) Fin_si Fin

//Este programa al dar tu edad te dice si eres mayor o menor de edad sencillo pero ayuda.
//Para este programa se utiliza la sentencia if(condicion) o en Pseudocodigo Si(condicion) y else o sino.
import javax.swing.J Option Pane;
class ifcondicional{
public static void main(String args[]){
//Declaracion de variables
//Variable tipo cadena
String a;
//Variable Tipo entero.
int edad;
//En esta parte del programa se pide al usuario que nos de su edad
a=J Option Pane.showInputDialog(“Introduce Tu Edad:”);
edad=Integer.parseInt(a);
//En esta parte se utiliza la sentencia if con la condicion de si la edad es mayor o igual a 18 se imprimera el msn eres mayor de edad,
if(edad>=18){
System.out.println(“Eres Mayor De Edad”);
}
//Else solo se ejecutara cuando la edad se menor a 18 y la condicion anterios no se cumpla
else{
System.out.println(“Eres Menor De Edad”);

}
}
}
//Espero que le entiendan copien tal como esta y ejecutenlo en jgrasp o en su compilador.


La estructura de selección simple evalúa una condición, si ésta es verdadera ejecuta una o varias instrucciones, si es falsa continua la ejecución normal del programa.

La representación gráfica de la estructura de selección simple es:


Expresión
Booleana

Instrucciones

Verdadero

Falso


El pseudocódigo correspondiente es (en español):

Si entonces

fin_si

En ingles:

If then

end_if

La estructura de selección simple se codifica en Visual Basic tal y como se muestra a continuación:
If Then

End if
No es fácil definir el concepto de programación estructurada, pero se podría considerar como un conjunto de técnicas que, utilizadas en el diseño de un programa, facilitan la escritura, lectura y seguimiento del mismo.
Siempre se ha considerado a la sentencia IR A (GOTO) el principal impedimento de la programación estructurada. De hecho, ya se expresaba en estos términos el profesor Edgar Dijkstra, considerado el padre de la programación estructurada en su libro "Goto Statement Considered Harmful".
En 1966, Böhm y Jacopini demostraron que un programa se puede escribir utilizando tan sólo tres tipos de estructuras de programación:
Secuenciales
Selectivas
Iterativas
La estructura secuencial ya se estudió en el epígrafe anterior. Se analizarán ahora las estructuras selectivas (bifurcativas condicionadas) y las iterativas.


ESTRUCTURAS SELECTIVAS

En muchas ocasiones, las circunstancias que nos rodean condicionan la forma en que debemos actuar. Desde el punto de vista de programación ocurre algo similar, y, según se cumpla o no una determinada condición, será necesario actuar de una u otra manera.
Las estructuras de programación que nos permiten tomar este tipo de decisiones son las estructuras selectivas, que pueden ver a su vez de tres tipos:

Simples
Dobles
Múltiples
Simples: ejecutan una secuencia de acciones sólo si se cumple una determinada condición.

Sintaxis - Pseudocódigo:
SI ENTONCES
Acción 1 : Acción n
fin-SI
La forma de representar esta estructura en diagramas de flujos y diagramas N/S se encuentra en las figuras siguientes.










Ejemplo:

Introducir 100 números por teclado, de forma que el ordenador nos avise cuando introducimos un número par, y nos muestre al final del proceso el total de números pares introducidos.

Algoritmos Pares
Var
H : entero CC : entero C : entero N : entero
Inicio
H = 0 CC = 0 C = 0
Etq: CC = CC + 1
Leer (N) H = N MOD 2 SI H = 0 ENTONCES
escribir ("detectado número par") C = C + 1
fin-SI SI CC < 100 ENTONCES

fin-SI escribir ("Han sido detectados", C," números pares")
Fin
Veamos el diagrama de flujo correspondiente a este algoritmo:







5.2ESTRUCTURA SELECTIVA DOBLE:

En las estructuras selectivas simples se ejecutaban una serie de acciones sólo en el caso de que se cumpliese una condición. Una vez terminada la ejecución de tales acciones, se continuaba con el flujo natural del programa, que es el proceso que se hubiera seguido en caso de no satisfacerse la condición.
En cambio, en la estructura selectiva doble, si se cumple la condición se ejecutan un conjunto de acciones, mientras que si no se cumple, se ejecuta otro conjunto de acciones diferentes. Resulta, por tanto, imposible que se ejecuten ambos conjuntos en secuencia, uno tras otro.

Sintaxis - Pseudocódigo:
SI ENTONCES
acción 1a acción 2a : acción na
SI NO
acción 1b acción 2b : acción nb
fin-SI

La sintaxis correspondiente al diagrama de flujo y N/S son como sigue:


Ejemplo:

Realizar pseudocódigo y diagrama de flujo de un programa que calcule el precio de la entrada de una persona a un parque de atracciones, sabiendo que:

Los niños < 15 años pagan 50 pesetas.
Las personas >= 15 años pagan 150 pesetas.
Al calcular un precio, el algoritmo pregunta si hay más clientes. En caso afirmativo repetimos el proceso. En caso contrario, abandonamos el programa.

Análisis:

El proceso es el siguiente:

Recoger la edad de cliente.
Si la edad < 15, establecer precio en 50 Ptas.
Si la edad >= 15, establecer precio en 150 Ptas.
Esperar a que el usuario diga si quiere continuar con el programa.
En caso afirmativo repetir el proceso. En caso contrario abandonar el programa.

Pseudocódigo:

Algoritmo Parque
Var
Edad: entero Precio: entero Res: cadena
Inicio
Eti1: leer (edad)
Si Edad < 15 Entonces
Precio = 50
si-no
Precio = 150
Fin-si
Escribir (precio) Escribir ("¿Hay más clientes (Si/No)? ") Leer (Res)
Si (Res = "Si") Entonces
IR A Eti1;
Fin-si
Fin

El diagrama de flujo correspondiente a este pseudocódigo se encuentra en la siguiente figura:






5.2ESTRUCTURAS SELECTIVAS ANIDADAS

La estructura selectiva es anidada cuando dentro de alguna acción de ésta, se encuentra otra estructura selectiva y la(s) acción(es) de esta puede contener otra selectiva y esta otra más; es decir cuando después de una decisión se debe tomar otra, después otra y así sucesivamente.


5.3ESTRUCTURAS SELECTIVAS MÚLTIPLES:

Las estructuras selectivas estudiadas hasta el momento nos permiten evaluar la condición en resultado booleano exclusivamente (si/no).
Sin embargo, hay ocasiones en que la gama de opciones es mucho más amplia. Por ejemplo, consideremos el caso de un local comercial de ordenadores y periféricos, donde cada periférico y cada ordenador tendrían un precio determinado.
Un hipotético programa que controlase las ventas y facilitase los precios, debería preguntar qué periférico se va a comprar. Según de qué periférico se tratase, establecería el precio correspondiente. Como se puede observar, si tal establecimiento vende ordenadores, impresoras, módems y ratones, el abanico de posibilidades se ha ampliado de dos a cuatro.


Existe una estructura selectiva que permite trabajar con más de dos elementos susceptibles de ser seleccionados. Se conoce como estructura selectiva múltiple y su formato es el siguiente:
Según hacer
valor1:
acción 1a acción 2a : acción na
valor2:
acción 1b acción 2b : acción nb ...
valorn:
acción 1z acción 2z : acción nz
cualquier otro:
acción 1 : acción n
fin-según

La representación de la estructura SEGÚN-SEA en diagrama de flujo y N/S, es como sigue:





Ejemplo:

Imaginemos un sistema informático, al que, por razones de seguridad, sólo tienen acceso cuatro personas: Eva, Juan, Pedro y María.
Imaginemos también que cada una de estas cuatro personas puede realizar una serie de acciones sobre el sistema, aunque tienen otras restringidas en función de su cargo.
Establezcamos la jerarquía en cuatro niveles según la siguiente tabla:
Realizar el algoritmo que permita la entrada al sistema sólo a los usuarios autorizados y en el nivel que les corresponde.
Algoritmo Seguridad
Var
nombre: cadena nivel: entero
Inicio
Eti1: leer ("nombre") según-sea nombre hacer
"Eva": nivel = 1 "María": nivel = 4 "Juan": nivel = 2 "Pedro": nivel = 3 cualquier otra: escribir ("acceso denegado") ir a Eti1
fin-según según-sea nivel hacer
1: acceso libre 2: acceso con X restricciones 3: acceso con Y restricciones 4: acceso con Z restricciones
fin-según
fin

Si este algoritmo fuese un programa real de control de acceso, en aquellos lugares donde encontramos los accesos libre o con restricción X, irían las órdenes que permiten la entrada real al sistema. Esta segunda estructura del tipo SEGÚN-SEA podría considerarse la "llave" que abre el cerrojo del sistema.
El lector podrá observar que en el segundo SEGÚN-SEA no aparece la opción cualquier-otra. La explicación es muy simple. La variable que actúa como condición del segundo SEGÚN-SEA, sólo se trata a lo largo del algoritmo en las acciones del primer SEGÚN-SEA, con lo cual estamos seguros de que si el programa llega al segundo SEGÚN-SEA, NIVEL sólo puede valer 1, 2, 3 ó 4 y no existe otro valor posible.
El diagrama de flujo correspondiente a esta estructura se halla en la siguiente figura:

No hay comentarios: