Estructuras de control selectivas

Post on 26-Jul-2015

293 views 17 download

Transcript of Estructuras de control selectivas

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

FACULTAD DE INGENIERÍACoordinación de Ciencias Básicas

División de Ingeniería Civil

Unidad de Aprendizaje: Programación Básica

Créditos: 8

“ESTRUCTURAS DE CONTROL SELECTIVAS”

POR

LETICIA PALMA ROSALESMARÍA DE LOS ANGELES CONTRERAS FLORES

Guía Explicativa• El presente material tiene como propósito ser una

herramienta de apoyo para los estudiantes principiantes en el área de la programación de computadoras. Los temas que aquí se tratan, son los referentes a las estructuras de control secuenciales y selectivas o decisivas: selectiva simple, selectiva doble, selectiva múltiple y en cascada.

• En este contexto se presenta una explicación del funcionamiento de cada estructura, como trabaja y algunos ejercicios propuestos que le permitan practicar y reforzar los conocimientos adquiridos.

CONTENIDO1. Introducción2. Definición de Estructuras de Control3. Clasificación de las Estructuras de Control4. Empleo de las Estructuras de Control5. Estructura Secuencial6. Estructuras de Control Selectivas7. Ejercicios

Objetivo• El presente trabajo tiene como objetivo apoyar a los

estudiantes del área de programación básica en la identificación y utilización de técnicas para la formulación de algoritmos (pseudocódigos y diagramas de flujo) empleando las estructuras de control secuencial y selectivas.

IntroducciónLa programación estructurada nació como solución a los problemas que se presentaban en la programación no estructurada, la cual fue empleada durante mucho tiempo antes de la invención de ésta técnica.

Un programa no estructurado es un programa procedimental donde las instrucciones se ejecutan en el mismo orden en que han sido escritas. Sin embargo, este tipo de programación hace uso de la instrucción goto. Una instrucción goto permite pasar el control a cualquier otra parte del programa.

IntroducciónCuando se ejecuta una instrucción goto la secuencia de ejecución del programa continúa a partir de la instrucción indicada por goto.

De esta forma, para comprender como funciona un programa es necesario simular su ejecución. Razón por la cual, en la mayoría de los casos es muy difícil comprender la lógica de un programa de este tipo.

IntroducciónEn los lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Todas las estructuras de control tienen un único punto de entrada y un único punto de salida.

Estructuras de ControlDefinición: “Las estructuras de control controlan el comportamiento de un método o de un programa. Las estructuras de Control permiten combinar instrucciones o sentencias individuales en una simple unidad lógica con un punto de entrada y un punto de salida”[2]

Clasificación de las Estructuras de Control

Las estructuras de control se clasifican en tres:

1. Secuenciales2. Decisivas o Selectivas3. Repetitivas o Iterativas

Esta es una de las razones que permite que la programación se rija por los principios de la programación estructurada.

Empleo de las Estructuras de ControlAlgunas funciones de las estructuras de control son las siguientes:

1. De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-then-else y Switch-Case)

2. Ejecutar un grupo de sentencias mientras una condición sea verdaderas (Do-While)

3. Ejecutar un grupo de sentencias hasta que la condición evaluada sea falsa (Do-Until)

4. Ejecutar un grupo de sentencias un número determinado de veces (For), etc.

Estructura SecuencialLa estructura secuencial es una estructura básica, y se presenta cuando una instrucción del programa sigue a otra, es decir, el flujo fluye de sentencia a sentencia.

Estructura SecuencialUna sentencia compuesta es un conjunto de sentencias encerradas entre llaves ({ }) empleadas para indicar un flujo secuencial.{ sentencia1; sentencia2; sentencia3; : sentencian;}

Ejercicio1. Elabore un diagrama de flujo que reciba como datos de

entrada la longitud y el peso de un objeto expresados en pies y libras, y que de cómo resultado, los datos del mismo objeto pero expresados en metros y kilos, respectivamente.

Diagrama de Flujo

Inicio

pieslibra

mt pies * 0.0929kg libra * 0.45359

mt, kg

Fin

Figura 1. Diagrama de Flujo para realizar Conversiones de pies a metros y de libras a kilos

Estructura Selectiva SimpleLa estructura de control de selección principal es la sentencia si (if). El formato de esta estructura tiene la siguiente sintaxis:

if (condición) acción;

Estructura Selectiva SimpleLa sentencia if funciona de la siguiente forma: cuando se encuentra la sentencia if dentro de un método, se evalúa la condición escrita entre paréntesis. Si dicha condición es verdadera, se ejecuta la acción, en caso contrario, no se realiza nada. En ambos casos, la ejecución del programa continúa con la siguiente sentencia.

Estructura Selectiva Simple

V

F

Condición

Acciones

Figura 2. Diagrama de Flujo de la Estructura Selectiva Simple

Pseudocódigo

Si (condición) { sentencia_1; sentencia_2; … sentencia_n; }Fin_si

Ejercicios

Ejemplo 1: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre si un número es par.

Ejemplo 2: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre si una persona es mayor de edad.

La estructura selectiva doble tiene como propósito hacer que el diagrama se bifurque por dos ramas diferentes en el punto de la toma de decisión. Si la condición evaluada da como resultado verdadero, entonces se toma un camino específico (el de la izquierda), realizando una acción o acciones determinadas. Por otro lado, si el resultado es falso, entonces se continúa por otro camino (el de la derecha), ejecutando otra u otras acciones.

Estructura selectiva doble

(si-otro caso)

Para cualquiera de los dos casos, una vez que se han terminado de ejecutar las acciones correspondientes, se sigue con la secuencia normal del diagrama de flujo.

La representación gráfica de ésta estructura, se presenta a continuación:

Pseudocódigo

Si (condición) Bloque A;Otro_caso Bloque B;Fin_si

Figura 2. Diagrama de Flujo y Pseudocódigo de la

Estructura Selectiva Doble

V FCondición

Bloque A Bloque B

EjerciciosEjemplo 3: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre si un número es par o impar.

Ejemplo 4: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre si una persona es mayor de edad o si aún es menor de edad.

Estructura Selectiva Múltiple(Switch)

Esta estructura se utiliza para seleccionar una de entre múltiples alternativas, pues permite que el diagrama se bifurque por varias ramas en el punto de la toma de decisión.

La elección del camino que se ha de seguir, depende de valor que toma una variable conocida como selector o expresión de control.

Estructura Selectiva Múltiple(Switch)

El valor de la expresión o selector solamente puede ser de tipo entero, booleano o caracter, nunca de tipo real ni cadena de caracteres.

A continuación se presenta el diagrama de flujo y el pseudocódigo que ilustra esta estructura selectiva.

Estructura Selectiva Múltiple(Switch)

Selector

Etiqueta 1

Bloque A Bloque NBloque B

Bloque N+1

Etiqueta 2 Etiqueta n

Figura 3. Diagrama de Flujo de la Estructura Selectiva Múltiple

Estructura Selectiva Múltiple(Switch)

Esta estructura de control trabaja de la siguiente manera:

1º. Evalúa la expresión de control o selector2º. Compara el valor dado con cada una de las

etiquetas del caso3º. Cuando el valor del selector es igual al de una

etiqueta del caso, entonces comienza la ejecución del bloque hasta que encuentra la sentencia de Terminar.

Estructura Selectiva Múltiple(Switch)

Se debe considerar que cada etiqueta es un valor único, constante y que además tiene un valor diferente de los otros.

Es importante destacar también que el tipo de datos de las etiquetas debe ser el mismo que la expresión selector.

Estructura Selectiva Múltiple(Switch)

Si el valor del selector no llegara a listarse en alguna etiqueta caso, entonces no se podrá ejecutar ninguna de las opciones, a menos que se haya especificado una acción por defecto (omisión = default).

La etiqueta default es opcional, pero se recomienda su uso, a menos que este completamente seguro de que todos los valores del selector han sido incluidos en las etiquetas caso.

Estructura Selectiva Múltiple(Switch)

PseudocódigoSwitch (selector){

caso etiqueta 1: Bloque A; Terminar;

caso etiqueta 2: Bloque B; Terminar;

…caso etiqueta n: Bloque N;

Terminar;omisión: Bloque N+1; //opcional

}

Estructura Selectiva Múltiple(Switch)

Ejemplo 5: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre el número de días que tiene un mes según el año.

Ejemplo 6: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre los nombres de los meses, de tal forma que al ingresar una fecha en forma numérica, se impriman los nombres de los meses.

Estructura Selectiva en Cascada

Cuando se realiza el desarrollo para solucionar problemas, es común que , luego de tomar una decisión y señalar el camino a seguir, nuevamente es necesario tomar otra decisión. Este proceso puede repetirse numerosas veces. Una forma de solucionar esto, es aplicar una estructura selectiva en cascada. La cual se analiza a continuación.

Estructura Selectiva en Cascada

Bloque A

Bloque D

Bloque C

Bloque N

V FCondición 1

Condición 3Condición 2

Bloque B Condición 4

V V

V

V

Mensaje

EjerciciosEjemplo 7: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre cuál es el mayor de tres números.Ejemplo 8: Elabore un diagrama de flujo, un pseudocódigo y el correspondiente código fuente en C, de un programa que muestre si un año dado es bisiesto o no.

Bibliografía1. Cairó Osvaldo, (2006) “Fundamentos de Programación, Piensa

en C), Prentice-Hall, México.2. Joyanes Aguilar Luis et al, (2002), “Programación en Java 2,

Algoritmos, Estructuras de Datos y Programación Orientada a Objetos”, McGraw-Hill, España