• No se han encontrado resultados

Sesión 2 - Estructuras Secuenciales y Selectivas

N/A
N/A
Protected

Academic year: 2021

Share "Sesión 2 - Estructuras Secuenciales y Selectivas"

Copied!
33
0
0

Texto completo

(1)

Estructuras de control secuenciales

Estructuras de control secuenciales

y selectivas

y selectivas

Prof. Robert Espinoza Domínguez

(2)

La expresión flujo

La expresión flujo

de control hace

de control hace

referencia al

referencia al

orden

orden

en el que

en el que

se ejecutarán las

se ejecutarán las

instrucciones de

instrucciones de

un programa,

un programa,

desde su comienzo

desde su comienzo

hasta que finaliza.

hasta que finaliza.

Flujo de control de un programa

(3)

La expresión flujo

La expresión flujo

de control hace

de control hace

referencia al

referencia al

orden

orden

en el que

en el que

se ejecutarán las

se ejecutarán las

instrucciones de

instrucciones de

un programa,

un programa,

desde su comienzo

desde su comienzo

hasta que finaliza.

hasta que finaliza.

Flujo de control de un programa

(4)

 La programación estructurada es una forma deLa programación estructurada es una forma de

escribir programas de computadora de forma clara

escribir programas de computadora de forma clara,,

utilizando únicamente tres estructuras:

utilizando únicamente tres estructuras: secuencia,secuencia,

selección e iteración;

selección e iteración;  siendo innecesario y no  siendo innecesario y no

permitiéndose el uso de instrucciones de

permitiéndose el uso de instrucciones de

transferenci

transferencia incondicional (por ejemplo: a incondicional (por ejemplo: Go to).Go to). 

 El teorema del programa estructurado, deEl teorema del programa estructurado, de Böhm-

Böhm- Jacopini,

 Jacopini,  demuestra que todo programa puede  demuestra que todo programa puede

escribirse utilizando únicamente las tres

escribirse utilizando únicamente las tres

instrucciones de control siguientes:

instrucciones de control siguientes: 

 SecuenciaSecuencia 

  Instrucción condicional. Instrucción condicional. 

  Iteración  Iteración (bucle (bucle de de instrucciones) instrucciones) con con lala

condición al principio

condición al principio

Programación estructurada

(5)

Programación estructurada

 Solamente con estas tres estructuras o  “patrones

lógicos”   se pueden escribir todos los programas y

aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas.

(6)

 Hoy en día las aplicaciones informáticas son mucho

más ambiciosas que las necesidades de aquellos años, por lo que se desarrollaron nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.

 De todas formas, el paradigma estructurado tiene

vigencia en muchos ámbitos de desarrollo de programas y constituye una buena forma de iniciarse en la programación de computadoras.

(7)

Estructuras de Control

 Las estructuras de control tienen una finalidad

bastante definida: señalar el orden en que

tienen que sucederse o ejecutarse los pasos de un algoritmo o instrucciones en un programa.  Pueden ser:  Secuenciales  Selectivas  Iterativas

(8)
(9)

 Son estructuras que obedecen la linealidad, es decir,

no admiten saltos

  A la ejecución de una instrucción le sigue otra

instrucción y así sucesivamente.

 Mantiene la secuencia de acciones en el orden en

el que aparecen las instrucciones.

Estructuras secuenciales

acción 1 acción 2 acción n acción 1 acción 2 … acción n

(10)

Estructura secuencial

Ejemplo:

Sumar y multiplicar 2 números.

Inicio x, y, z, w: reales Leer y, z; x  y + z; w  y * z; Escribir x, w; Fin Leer y, z Inicio Fin Escribir x, w x  y+z w  y*z

(11)

Ejercicios

1. El primer problema es determinar el alcance y el tiempo de vuelo de un proyectil lanzado con una velocidad inicial v0 y haciendo un ángulo de 

(12)

Ejercicios

 g  v  R sen2  2 0   g  v T  2 0sen  

máximo alcance de un proyectil, g es la

aceleración de la gravedad

tiempo de vuelo

180

 

 grados

(13)
(14)

2. Parte del costo de producción de un producto se calcula por el tiempo de operación de una máquina utilizada. Se

realizan pruebas para determinar este tiempo ingresando la hora de inicio de y de final de producción en el formato de horas, minutos y segundos registrados en la máquina. El costo está diferenciado por hora, minuto y segundo.

Calcular dicho costo.

Por ejemplo, se tienen los siguientes datos de entrada: Hora Inicio: 14:30:15

Hora final: 16:40:20 Costo por hora: 60 soles Costo por minuto: 2 soles

Costo por segundo: 0,20 soles

(15)

Ejercicios

3. Estando en guerra, se necesita enviar a los aliados la

cantidad de tanques disponibles en un valor encriptado, por lo que le encarga a usted dicha tarea.

La encriptación se hace mediante el ingreso de 5 valores de 5 dígitos cada uno. Estos valores serán enviados a los aliados que ya tienen el programa hecho por usted.

Por ejemplo podrían ser estos valores: Valor 1: 34571

Valor 2: 61254 Valor 3: 75120 Valor 4: 24712 Valor 5: 31652

(16)

Ejercicios

Suma de dígitos de primera diagonal: 8 Suma de dígitos de segunda diagonal: 14 Cantidad de tanques disponibles: 112

Su sistema, ya disponible en los aliados, tomarán los dígitos según la figura, donde los dígitos de las diagonales se suman y estos 2 valores se multiplican, el resultado será la cantidad de tanques disponibles:

(17)

Otras estructuras

 Algunos programas muy simples pueden escribirse

sólo con este flujo unidireccional. No obstante, la mayor eficacia y utilidad de cualquier lenguaje de programación se deriva de la posibilidad de cambiar el orden de ejecución según la necesidad de elegir uno de entre varios caminos en función de ciertas condiciones, o de ejecutar algo repetidas veces, sin tener que escribir el código para cada vez.

 Con frecuencia, el programador necesita que el

programa no se comporte sólo de modo secuencial. Por ejemplo, calcular una función f(x) para los X > 0.

(18)

Otras estructuras

 También puede ocurrir que interese que un grupo

de instrucciones se ejecute repetidamente hasta que se le indique que se detenga. Por ejemplo, calcular el promedio de notas para cada uno de los alumnos de un curso, o realizar algún cálculo con cada uno de los elementos de un vector.

 Para las dos situaciones planteadas existen dos

soluciones: las sentencias de control selectivas y

las repetitivas o iterativas.

 Éstas permiten que el flujo secuencial del

programa sea modificado. También cumplen con este objetivo las sentencias denominadas de invocación o salto.

(19)
(20)

Las estructuras selectivas permiten seleccionar

uno de entre varios caminos por donde seguirá

la ejecución del programa. Esta selección viene

determinada por la evaluación de una expresión

lógica o condición.

Pueden ser:

 Simples  Dobles  Anidadas  Múltiples

Estructuras selectivas

(21)

Estructura selectiva simple

Diagrama de Flujo Sentencias Condición V F En C++ if(condición){ sentencias; } Pseudocódigo Si(condición)entonces sentencias Fin Si

(22)

Estructura selectiva doble

Diagrama de Flujo En C++ if(condición){ sentencias; } else{ sentencias; } Pseudocódigo Si(condición)entonces sentencias 1 Sino sentencias 2 Fin Si condición F V sentencia1 sentencia2

(23)

La instrucción SI-ENTONCES puede ser utilizada

también en casos de selección de más de dos

alternativas.

Esto es posible

anidando

estas instrucciones. Es

decir, una estructura SI-ENTONCES puede

contener a otra, y esta a su vez a otra.

(24)

Estructura selectiva anidada

Diagrama de Flujo cond F V cond cond F V V F

(25)

Estructura selectiva anidada

if (condición1) { if (condición2) { bloque1 } else { bloque2 } } else { if (condición3) { bloque3 } else { bloque4 } } Si (condición1) entonces Si (condición2) entonces bloque1 Sino bloque2 Fin Si Sino Si (condición3) entonces bloque3 Sino bloque4 Fin Si Fin Si Pseudocódigo En C++

(26)

Estructura selectiva anidada

Ejemplo:

Inicio

edadJuan  20 edadJose  18

Si (edadJuan < edadJose) entonces

Escribir "Juan es mas joven que Jose" Sino

Si (edadJuan > edadJose)

Escribir "Juan es mayor que Jose" Sino

Escribir "Juan tiene la misma edad que Jose" Fin Si

Fin Si Fin

(27)

Estructura selectiva anidada

Ejemplo:

 Un sensor toma (lee) la temperatura ambiente y de

acuerdo al rango en que se encuentre, debe emitir un mensaje. La escala es la siguiente:

 Mayor que 100  “Temperatura  muy alta –  Mal

funcionamiento” 

 Entre 91 y 100 “Rango normal” 

 Entre 51 y 90 “Bajo el rango normal” 

(28)

Estructura selectiva anidada

Solución:

INICIO

Leer temperatura

Si temperatura > 100 entonces

Escribir “Temperatura muy alta – Mal funcionamiento”

Sino

Si temperatura > 90 entonces Escribir “Rango normal”

Sino

Si temperatura > 50 entonces

Escribir “Bajo el rango normal”

Sino

Escribir “Muy frío – Apague equipo”

Fin Si Fin Si

Fin Si FIN

(29)

Estructura selectiva múltiple

 Cuando en una condición existen diversas

posibilidades nos vemos obligados a utilizar

estructuras selectivas anidadas, lo que complica la realización y depuración del código.

 Para facilitar esta situación se tiene la estructura

selectiva múltiple que permite definir un número

ilimitado de ramas basadas en una misma condición.

 En otras palabras la condición puede tomar más de

dos valores y por cada valor que cumpla realizará una acción

(30)

Estructura selectiva múltiple

Diagrama de Flujo cond Caso1 Caso2 … CasoN

(31)

Estructura selectiva múltiple

Pseudocódigo

Según (condición) Hacer Caso1: Acción1 [salir] Caso2: Acción2 [salir] ... CasoN: AcciónN [salir] De otro modo:

Acción por defecto Fin Según

(32)

Estructura selectiva múltiple (switch)

En C++

switch (condición) { case caso1: acción1;

[break;]

case caso2: acción2; [break;]

...

case casoP: acciónP; [break;]

default: acciónN; };

(33)

 La condición puede ser una expresión, siendo ésta una

fórmula o una variable.

 Las sentencias de cada case se ejecutan

secuencialmente incluyendo las de los otros casos, a menos que se use la sentencia break que es opcional.

 En la condicional sólo se permite char, int, byte, short.  Omitir la sentencia break trae como consecuencia,

ejecutar el siguiente case.

Referencias

Documento similar

● La condición de contador &lt; fin puede utilizar cualquier condición explicada en el tema pasado para la estructura if.. Comparadores de

Mientras la condición retorne verdadero, se ejecuta el bloque de instrucciones; al retornar falso la verificación de la condición, se sale de la estructura repetitiva y continúa

RA2 Aborda la condición humana y la apertura del hombre a la trascendencia desde diferentes métodos y sistemas propios de la filosofía contemporánea.. RA3 Dialoga en sus

Ejercicio. Diremos que la ecuación es exacta si se cumple ∂P ∂y = ∂Q ∂x.. Entonces podemos pensar en la condición ii) como una ecuación con incógnita µ.. El término de

Igualmente procede respecto de las providencias expedidas por dichas cortes o tribunales en la fase de ejecución de las sentencias dictadas en procesos de conocimiento, si

Si es cierta se ejecuta el Bloque de sentencias y luego las instrucciones de operación en ese orden y se vuelve a evaluar la condición. • Si la condición es falsa termina

En estas posturas se puede sostener que hay ciertos grados de responsabilidad política que se le exigen a las creaciones de ficciones artísticas, entendiendo que éstas son parte de

a) Los tribunales se guían fundamentalmente por un razonamiento informal en la redacción de las sentencias (en torno al 90% de las sentencias contienen sesgos y heurísticos en