Extructuras de Control
Extructuras de Control
Estructura e
datos
UNIDAD 3
ESTRUCTURAS DE CONTROL
Introducción
La formalización algorítmica que se comenzó a desarrollar en el tema anterior, ha
permitido resolver algunos problemas sencillos empleando algoritmos
computacionales.
Los algoritmos así diseñados son más legibles, y permiten seguir más fácilmente
su lógica, ayudando a la detección de errores, modificación y mantenimiento.
2/21
Estructura Básicas de Control
Estructura Secuencial
Las acciones correspondientes a esta estructura se van ejecutando en el orden en
que aparecen, es decir secuencialmente. Esta estructura puede representarse
esquemáticamente:
3/21
En pseudocódigo se expresará esta estructura de la manera siguiente:
Solución en Pseudocódigo:
Algoritmo FArbitraria
Escribir 'Ingrese el valor de la variabe x:'
Leer x
Si x > 2 Entonces fx
← 3*ln(x)-5*x
Sino
fx ← 2*x-1
FinSi
Escribir 'Valor de la función: y=', fx
FinAlgoritmo
4/21
Obsérvese que la visualización bidimensional que ofrece el diagrama permite una
mejor legibilidad de la lógica del algoritmo respecto del pseudocódigo.
Si <exp.lógica> entonces
<Acción A>
FinSi
Y en un diagrama de flujo:
5/21
El pequeño círculo con la E indica la entrada o ingreso a la estructura, donde debe
evaluarse una expresión lógica. Si el valor obtenido es Verdadero el control de
ejecución permanece dentro de la estructura y se ejecutan las acciones allí
encerradas; en el ejemplo propuesto: P, Q , y R .
El círculo con la D señala el punto delimitador del Mientras e indica que se
debe volver a evaluar la expresión lógica del comienzo.
El valor de verdad que se obtenga determinará si el control de ejecución
permanece o sale del esquema.
6/21
Problema Ejemplo: Leer una serie de datos numéricos
correspondientes a las edades de 90 personas. Obtener e informar el
valor de la suma y la media (promedio) de dicho conjunto de datos.
Solución en pseudocódigo
Algoritmo CalcMedia
Conteo ← 0
Suma ← 0
Mientras Conteo < 90 Hacer
Leer X
Conteo ← Conteo + 1
Suma ← Suma + X
FinMientras
Media ← Suma/Conteo
Escribir 'Suma=', Suma
Escribir 'Media=' , Media
FinAlgoritmo
7/21
Nótese que la acción Conteo ← Conteo + 1 permite controlar la
estructura al incrementar en una unidad la variable Conteo. En cierto
momento Conteo tomará el valor 90 y el control de ejecución escapará
del Mientras para pasar a la acción que permite calcular la media.
Los datos se ingresan en la variable x de a uno por vez ( 90 veces ).
Ejemplo
Un club deportivo posee N socios. Tiene 5 categorías de asociados: 1,
2, 3, 4 y 5; que corresponden respectivamente a vitalicios, mayores,
juveniles cadetes e infantiles. A cada categoría le corresponde abonar
una cuota mensual diferente, a excepción de las categorías cadetes e
infantiles que pagan igual monto.
Además, los cadetes y juveniles --por este mes-- tienen un descuento
del 25%, y el resto de las categorías un 10%. El club desea conocer el
monto correspondiente a la recaudación mensual por el abono de
cuotas de asociados, suponiendo que abona la totalidad de los mismos.
8/21
Solución:
Algoritmo Club C ← 0 ;
Suma ← 0
Leer N, C1, C2, C3, C4
Mientras C<N Hacer
Leer Cat
C ← C+1
Si Cat=1 Entonces
Cuota ← C1*0.90
Sino
Si Cat=2 Entonces
Cuota ← C2*0.90
Sino
Si Cat=3 Entonces
Cuota ← C3*0.75
Sino
Si Cat=4 Entonces Cuota
← C4*0.75
Sino
Cuota ← C4*0.90
FinSi
FinSi
FinSi
FinSi
Suma ← Suma + Cuota FinMientras
Escribir 'Recaudación del mes:', Suma
FinAlgoritmo
9/21
Segun V Hacer 1:
<Acción A> 2:
<Acción B> 3:
<Acción C> n:
<Acción Q>
FinSegun
Donde V es la variable de control, que debe ser de tipo numérico y además entera
positiva sin incluir el cero. Al encontrar esta estructura, el ejecutante (la
computadora) realiza lo siguiente:
Segun V
Hacer 1:
<Acción A> 2:
<Acción B> 3,4:
<Acción C> n:
<Acción Q>
De Otro Modo:
<Acción R>
FinSegun
10/21
El esquema que se empleará en un diagrama de flujo para la estructura Según es
el siguiente:
Ejemplo:
Solución:
Algoritmo Club
C ← 0 ; Suma ← 0
Leer N, C1, C2, C3, C4
Mientras C < N Hacer
Leer Cat
C ← C + 1
Segun Cat Hacer
1: Cuota ← C1 * 0.90
2: Cuota ← C2 * 0.90
3: Cuota ← C3 * 0.75
11/21
4: Cuota ← C4 * 0.75
5: Cuota ← C4 * 0.90
FinSegun
Suma ← Suma + Cuota
FinMientras
Escribir 'Recaudación del mes:', Suma
FinAlgoritmo
Repetir
<acción P>
<acción Q>
<acción R>
Hasta Que <exp. lógica>
12/21
Al igual que el Mientras, la estructura Repetir posee algunas características
particulares:
Caso 1
Aquí, se presenta una estructura condicional con una acción simple en la salida
por VERDAD. Por FALSO, tiene otra estructura condicional anidada.
Ejemplo: observe la solución propuesta para el problema del Club que se usó para
introducir el tema de la estructura Segun
13/21
Caso 2
Caso 3
14/21
Caso 4
Síntesis
1. Las estructuras de control permiten resolver algorítmicamente problemas
más complejos. Con ellas es posible tomar decisiones, iterar o repetir
grupos de acciones.
2. Cada estructura de control tiene un único punto de entrada y un único punto
de salida. Esto es propio del modelo o paradigma de la programación
estructurada.
3. La estructura condicional Si-Entonces permite tomar un camino u otro en
la secuencia de ejecución, en base al valor de verdad de una proposición
lógica.
4. La estructura iterativa Mientras-Hacer permite evaluar una expresión lógica
al inicio y si su valor de verdad arroja verdadero se ejecutan las acciones
incluidas en la estructura; luego se vuelve a evaluar la expresión lógica y
así sucesivamente. Las acciones incluidas en esta estructura se podrán
ejecutar 0 o más veces.
5. La estructura de selección múltiple Según-Hacer permite ejecutar una o
más acciones selectivamente en base al valor de una variable de control
que es evaluada al inicio.
15/21
6. La estructura iterativa Repetir-Hasta Que actúa similarmente a la
estructura Mientras-Hacer solo que la expresión lógica se evalúa al final; si
esta arroja verdadero se abandona la estructura, y se continúa iterando en
caso de arrojar falso.
7. A medida que lo problemas se hacen más complejos es usual tener que
combinar estructuras encerrando o anidando unas dentro de otras. En
estos casos recordar que cada estructura anidada debe estar
completamente incluida dentro de la estructura exterior o anidante.
16/21
Actividades
Ejercicios
Ejercicio 3.1.
Realice un seguimiento (prueba de escritorio) del algoritmo siguiente para cada
uno de los juegos de datos propuestos:
Ejercicio 3.2.
Se ingresa un número entero como dato. Determine si es par o impar e informe un
mensaje alusivo.
Ejercicio 3.3.
Ingresar 3 valores numéricos y determinar e informar el mayor.
Ejercicio 3.4.
Ingresar como datos los tres lados de un triángulo rectángulo. Estos datos se leen
sin ningún orden. Determinar si los datos corresponden a ese tipo de triángulo. En
caso de que no tratarse de un triángulo rectángulo indicar un mensaje alusivo; si
lo es calcular e informar su área.
Ejercicio 3.5.
Dada la función arbitraria siguiente, escribir un algoritmo que calcule e informe el
resultado de la función para un valor de x de la variable independiente que debe
ingresarse como dato.
17/21
Ejercicio 3.6.
Ejercicio 3.7.
Resuelva el problema anterior considerando que la cantidad de estudiantes es
desconocida. La entrada de datos termina con la altura cero.
Ejercicio 3.8.
Resuelva el problema del ejemplo del club empleando un diagrama de flujo.
Ejercicio 3.9.
Resuelva el siguiente problema empleando pseudocódigo.
Problema: En cierta carrera universitaria la asignatura Álgebra está organizada en
5 comisiones de 24 alumnos cada una. Se ingresa por cada alumno la calificación
obtenida en una evaluación parcial y el número de comisión al que pertenece.
Estos pares de datos llegan sin orden alguno. Informe el promedio de cada
comisión.
Ejercicio 3.10.
Resuelva el siguiente problema empleando diagrama de flujo.
Problema: considere el enunciado del ejercicio anterior. Se desea lograr la misma
salida (promedio de cada comisión) para la materia Inglés. Esta tiene 4 grupos o
comisiones, pero se desconoce el número de alumnos por comisión. Los datos
terminan con la calificación cero y el número de comisión cero.
Ejercicio 3.11.
En el recuadro de la derecha se
plantea un algoritmo mediante un
diagrama de flujo.
A. Escriba el mismo algoritmo
empleando pseudocódigo.
B. Realice un seguimiento del
algoritmo con los datos: 12,
28, 67, 10, 31, 29, 62
C. Modifique el
algoritmo
sustituyendo la estructura de
control repetitiva por otra
similar de modo de obtener
la misma información de
salida; y realice el un
seguimiento con el mismo
juego de datos del ejercicio
(b) para verificar su diseño.
D. Proponga un enunciado que
tenga por solución el
algoritmo planteado.
18/21
Ejercicio 3.12.
Resolver el problema siguiente empleando la estructura Repetir-Hasta Que.
Problema: Ingresar como dato inicial la cantidad C de estudiantes que aprobaron
un examen de Física. Si no hubiera aprobados (C=0), emitir el mensaje "Nadie
aprobó" ; en otro caso determinar el % de esos estudiantes que obtuvieron 9 o
más de calificación.
Ejercicio 3.13.
Resolver el problema que sigue mediante un diagrama de flujo.
Problema: Ingresar como datos N valores numéricos. Determinar e informar el
mayor.
Ejercicio 3.14.
Problema: Ingresar un número natural N como dato. Determinar e informar el
factorial del número.
Ejercicio 3.15.
Problema: Ingresar una lista de alumnos (apellido y nombres) con sus
correspondientes edades. Determinar e informar las edades y nombres de los 2
mayores.
19/21
Cuestionario
3.1 Mencione el teorema de la Programación estructurada.
3.2 Señale las diferencias entre las estructuras de control iterativas mientras-hacer
y repetir-hasta que.
3.3 ¿Qué tipos de datos se admite para la variable que controla la estructura de
selección múltiple Segun-Hacer?
3.5 En una estructura condicional Si-Entonces ¿es posible plantear una acción por
falso y ninguna acción en la salida por verdadero? (Observe el siguiente ejemplo)
....
Si (A<100) Y (R='OK')
Sino
Escribir A
FinSi .....
3.7¿Es posible que una estructura mientras-hacer contenga una sola acción
algorítmica? Explique.
3.9 ¿Es indistinto usar cualquiera de las estructuras iterativas? Si opina que no:
¿en qué casos es preferible emplear una estructura Mientras en lugar de una
Repetir?
20/21
Ejercicios Adicionales
3.100 Escriba un programa para leer los datos de 22 pilotos de fórmula 1 e informar
el nombre del campeón. Por cada piloto se lee: nombre, puntaje, y cantidad de
carreras ganadas. El campeón será el de mayor puntaje. En caso de empate se
define por la cantidad de carreras ganadas.
21/21