Académique Documents
Professionnel Documents
Culture Documents
FUNDAMENTOS
DE PROGRAMACIÓN
Asignatura correspondiente al plan de estudios
de la carrera de Ingeniería Informática
UNIDAD 3
ESTRUCTURAS
DE CONTROL
Ing. Horacio Loyarte ® 2008
Unidad 3 2
UNIDAD 3
Estructuras de Control
Resumen de Conceptos
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.
acción A
acción B
acción C
falso verdadero
< exp. lógica >
B A
Si <exp. lógica>
entonces A
sino B
FinSi
Ejemplo:
Proceso FArbitraria
Leer X;
Si X > 2
entonces
y3*ln(x)-5*x;
sino
y2*x-1;
FinSi
Escribir 'Valor de la función: y=', y;
Fin Proceso
Inicio
falso verdad
X > 2
y 2x - 1 y 3Ln(x) - 5x
Fin
Si <exp.lógica>
entonces A
FinSi
Y en un diagrama de flujo:
falso verdad
< exp. lógica >
falso
< exp. lógica >
verdad
R
D
In ic io
C o n te o 0
S um a 0
fa ls o
C o n te o <
90
ve r d a d
x
C o n te o C o n te o + 1
S um a S u m a + x
M e d ia S u m a /C o n te o
'S u m a = ' , S u m a
' M e d ia = ' , M e d ia
Fin
Solución en pseudocódigo
Proceso Media
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;
FinProceso
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.
Solución:
Proceso 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 ;
FinProceso
Según V Hacer
1: A:
2: B;
3,4: C;
.
.
n: Q;
FinSegún
Según V Hacer
1: A:
2: B;
3,4: C;
.
.
n: Q;
De Otro Modo
R;
FinSegún
v
De Otro
1 2 3,4 ....... n Modo
C Q
A
R
B
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.1
Solución
Proceso Club
C 0 ; Suma 0 ;
Leer N, C1, C2, C3, C4 ;
Mientras C < N Hacer
Leer Cat ;
C C + 1 ;
Según Cat Hacer
1: Cuota C1 * 0.90 ;
2:Cuota C2 * 0.90 ;
3:Cuota C3 * 0.75 ;
4:Cuota C4 * 0.75 ;
5:Cuota C4 * 0.90 ;
FinSegún
Suma Suma + Cuota ;
FinMientras
Escribir 'Recaudación del mes:', Suma;
FinProceso
D verdad
Repetir
acción P ;
acción Q ;
acción R ;
Hasta que <exp. lógica>
Caso 1
Caso 2.
F V
Decision
Acción Acción
Caso 3.
F
Decisión
En este caso, se tiene
un REPETIR anidado
dentro de la salida por
Acción FALSO de la
Acción
estructura condicional.
Acción
F
Hasta que
Caso 4.
Acción
F
Hasta que
V
Acción
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.
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.
Actividades
Ejercicios
Ejercicio 3.1.
Realice un seguimiento (prueba de escritorio) del algoritmo siguiente para cada uno de
los juegos de datos propuestos:
Proceso Ejer1
Leer a, b, c;
Si c = 0 entonces Escribir 'División
por cero'
sino r a / c;
t b * c;
v r - t;
Escribir 'v=', v;
FinSi
FinProceso
Ejercicio 3.2.
Dada la función arbitraria siguiente, escribir un algoritmo x 2 si x < 1
que calcule e informe el resultado de la función para un y
valor de x de la variable independiente que debe x 3 si x >= 1
ingresarse como dato.
Ejercicio 3.3.
Se ingresa un número entero como dato. Determine si es par o impar e informe un
mensaje alusivo.
Ejercicio 3.4.
Ingresar 3 valores numéricos y determinar e informar el mayor.
Ejercicio 3.5.
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 ractángulo indicar un mensaje alusivo; si lo es
calcular e informar su área.
Ejercicio 3.6.
Resuelva el siguiente problema empleando la estructura iterativa Mientras-Hacer.
Emplee pseudocódigo y diagrama de flujo.
Problema: En un curso de cierta universidad se desea determinar cuantos estudiantes
varones superan la altura 1.90 m y cuantas mujeres superan 1.75m. Se leen como
datos el sexo y la altura de los 112 integrantes del curso.
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 Algebra 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.
verdad
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. Determinra e informar las edades y nombres de los 2
mayores.
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 Según-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 ejemplo del recuadro)
....
Si (A<100) V (R=‘OK’)
Sino Escribir A
FinSi
.....
3.7 ¿Es posible que una estructura mientras-hacer contenga una sola acción
algorítmica? Explique.
3.8 ¿Puede ser correcta una estructura condicional como la indicada a continuación.
Explique.
.....
Si R
entonces
Escribir ‘Salida por Verdad’
sino
Escribir ‘Salida por Falso’
FinSi
.....
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?