2. El Flujo de Control de un Programa
El término Flujo de Control (secuenciación o control del flujo) se refiere al
orden en que se ejecutan las sentencias del programa.
Existen tres estructuras de control de flujo estandarizadas:
Secuencial, Selección y Repetitiva.
El flujo normal de control de todos los programas es el
secuencial.
3. Estructura Secuencial
Es aquella en la que una acción (instrucción o sentencia) sigue a otra en
secuencia.
4. Estructura Secuencial
Ejercicio:
1) Calcular la suma y el producto de 2 números. Representar el algoritmo en
Pseudocódigo y diagrama de flujo.
2) Calcular el salario neto de un trabajador en función del número de horas
trabajadas, precio de la hora de trabajo y (considerando unos descuentos
fijos) el sueldo bruto en concepto de impuestos (20 por 100).
8. Estructuras Selectivas
Se utilizan para tomar decisiones lógicas, también se conocen como
estructuras de decisión o alternativas.
En las estructuras selectivas se evalúa una condición y en consecuencia se
realiza un opción u otra.
Las condiciones se especifican usando expresiones lógicas.
En pseudocódigo se utilizan las palabras if, then, else (si, entonces, si_no).
Las estructuras selectivas pueden ser: simples, dobles o múltiples.
9. Alternativa Simple (Si-Entonces/If-Then)
Ejecuta una determinada acción cuando se cumple una determinada
condición.
- Si la condición es verdadera, entonces ejecuta la acción S1 (o acciones).
- Si la condición es falsa, entonces no hacer nada.
14. Alternativa Doble (si-entonces-sino/if-
then-else)
Ejercicio 3: Diseñar un algoritmo para la resolución de una ecuación de
primer grado.
Ejercicio 4: Calcular la media aritmética de una serie de números positivos.
16. Alternativa Doble (si-entonces-sino/if-
then-else)
Ejercicio 4: Calcular la media aritmética de una serie de números positivos.
Se supondrá que la entrada de datos es por el teclado hasta que se introduzca
el último número que será -99.
18. Alternativa Doble (si-entonces-sino/if-
then-else)
Ejercicio 5: Se desea obtener la nómina semanal – salario neto – de los
empleados de un empresa cuyo trabajo se paga por horas y del modo
siguiente.
las horas inferiores o iguales a 35 horas (semanales) se pagan a una tarifa
determinada que se debe introducir por teclado al igual que el número de
horas y el nombre del trabajador.
las horas superiores a 35 se pagarán como extras a un promedio de 1.5 horas
normales.
Los impuestos a reducir a los trabajadores varían en función de su sueldo
mensual:
- Sueldo <= 2000, libre de impuestos
- Las siguientes 220 euros al 20%
- El resto al 30%
21. Alternativa Doble (si-entonces-sino/if-
then-else)
Ejercicio 6: Empleo de estructura selectiva para detectar si un número tiene
o no parte fraccionaria (decimales).
Ejercicio 7: Escritura selectiva para averiguar si un año leído es o no
bisiesto.
Ejercicio 8: Algoritmo que nos calcule el área de un triángulo conociendo
sus lados. La estructura selectiva se utiliza para el control de la entrada de
datos en el programa.
25. Alternativa Múltiple (según_sea, caso_de
/case )
La estructura de decisión múltiple evaluará
una expresión que tomará n valores
distintos, 1, 2, 3, …, n.
De acuerdo al valor elegido, se realizará
una de las n acciones (un camino entre los n
posibles).
Ejemplo en pseudocódigo.
29. Alternativa Múltiple (según_sea, caso_de
/case )
Nota: Los valores que toman las expresiones (E) no tienen por qué ser
consecutivos ni únicos; se pueden considerar rangos de constantes
numéricas o de caracteres como valores de la expresión E.
30. Alternativa Múltiple (según_sea, caso_de
/case )
Ejercicio 9: Se desea diseñar un algoritmo que escriba los nombres de los
días de la semana en función del valor de una variable introducida por
teclado.
Los días de la semana son 7; por consiguiente, el rango de valores de será
1, 2, …, 7; en caso de que tome un valor fuera de este rango se deberá
producir un mensaje de error advirtiendo la situación anómala.
Ejercicio 10: Se desea convertir las calificaciones alfabéticas y
a calificaciones numéricas y respectivamente.
Ejercicio 11: Se desea leer por teclado un número comprendido entre 1 y 10
(inclusive) y se desea visualizar si el número es par o impar a través de un
mensaje ( o ).
31. Alternativa Múltiple (según_sea, caso_de
/case )
Ejercicio 12: Leída una fecha, decir el día de la semana, suponiendo que el
día 1 de dicho mes fue lunes.
Ejercicio 13: Preguntar qué día de la semana fue el día 1 del mes actual y
calcular que día de la semana es hoy.
Ejercicio 14: Algoritmo que nos indique si un número es entero, leído del
teclado, tiene 1, 2, 3 o más de 3 dígitos. Considerar los negativos.
38. Estructuras de Decisión Anidadas (en
Escalera)
Es posible utilizar la instrucción para estructuras de selección con más de
dos alternativas.
Una estructura si-entonces puede contener otra estructura si-entonces y
esta estructura puede contener otra y así sucesivamente cualquier número
de veces.
39. Estructuras de Decisión Anidadas (en
Escalera)
Las estructuras interiores a otras estructuras se denominan anidadas o
encajadas.
40. Estructuras de Decisión Anidadas (en
Escalera)
Una estructura de selección de n
alternativas o de decisión múltiple se
puede construir con este formato.
41. Estructuras de Decisión Anidadas (en
Escalera)
Ejercicio 15: Diseñar un algoritmo que lea tres números , , y visualice
en pantalla el valor del más grande. Se supone que los tres valores son
diferentes.
Ejercicio 16: Diseñar un algoritmo que lea tres números , , e imprima
los valores máximo y mínimo. El procedimiento consistirá en comparaciones
sucesivas de parejas de números.
Ejercicio 17: Pseudocódigo que nos permita calcular las soluciones de una
ecuación de segundo grado, incluyendo los valores imaginarios.
Ejercicio 18: Algoritmo al que le damos la hora , , y nos calcule la
hora dentro de un segundo. Leeremos las horas, minutos y segundos como
números enteros.
46. La Sentencia ( )
En ocasiones es necesario realizar bifurcaciones incondicionales, para esto
se utiliza la instrucción ( ).
Algunos prestigiosos informáticos han tachado esta instrucción como nefasta
y perjudicial para los programadores y recomiendan no utilizarla en sus
algoritmos y programas.
A pesar de lo anterior, todos los lenguajes de programación contienen esta
instrucción.
En general, no existe ninguna necesidad de utilizar instrucciones .
Se puede emplear en tipos de situaciones de salida de bucles.
Para utilizar esta instrucción es necesario una etiqueta que sirva de punto
de referencia para el salto.
50. Actividades de programación resueltas
4.1 Leer dos números y deducir si están en orden creciente.
4.2 Determinar el precio del billete de ida y vuelta en avión, conociendo la
distancia a recorrer y sabiendo que si el número de días de estancia es
superior a 7 y la distancia superior a 800 km el billete tiene una reducción
del 30%. El precio por km es de 2,5 Euros.
4.3 Los empleados de una fábrica trabajan en dos turnos: diurno y nocturno.
Se desea calcular el jornal diario de acuerdo con los siguientes puntos:
1. La tarifa de las horas diurnas es de 5 Euros.
2. La tarifa de las horas nocturnas es de 8 Euros.
3. En caso de ser Domingo, la tarifa se incrementará en 2 Euros el turno
diurno y 3 Euros el turno nocturno.
4.4 Construir un algoritmo que escriba los nombres de los días de la semana,
en función de la entrada correspondiente a la variable .