You are on page 1of 18

Universidad Nacional del Litoral

Facultad de Ingeniería y Ciencias Hídricas


Departamento de Informática

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.

El objetivo de este tema es desarrollar nuevas herramientas algorítmicas para


resolver problemas más complejos, mediante el diseño de algoritmos
estructurados. Esto sentará las bases para facilitar más adelante el desarrollo de
programas en un lenguaje estructurado.

En nuestros primeros diseños de algoritmos sólo se utilizaron tres acciones


primitivas fundamentales: lectura, asignación y escritura. Estos algoritmos fueron
resueltos en base a una estructura secuencial de acciones: los pasos o
acciones indicados se ejecutan uno tras otro, a medida que van apareciendo; es
decir, secuencialmente.

Pero en el diseño de algoritmos, generalmente es necesario modificar el orden


secuencial de ejecución del conjunto de acciones. El diseño estructurado de
algoritmos brinda recursos para resolver este tipo de situaciones.

Teorema Fundamental de la Programación Estructurada

Baum y Jacopini demostraron que: "Todo problema


computacional --sin importar su complejidad-- puede
resolverse empleando solo tres estructuras básicas de
control. Estas son: una de tipo SECUENCIAL, otra de tipo
CONDICIONAL y una de tipo REPETITIVO".

Cada una de esas estructuras conforma un segmento algorítmico perfectamente


identificable de acceso y salida únicos.

Un algoritmo estructurado está conformado por


segmentos de código. Cada uno de estos segmentos tiene un
único punto de entrada y un
único punto de salida.

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.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 3

De acuerdo a lo mencionado, las acciones algorítmicas se encuadran en alguna


de las estructuras básicas de control siguientes:
 Secuenciales
 Condicionales
 Repetitivas
Se analizarán -a continuación- cada una de ellas.

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:

acción A

acción B

acción C

Recuérdese que los ejercicios correspondientes a las actividades del tema


anterior, fueron resueltos empleando tres acciones primitivas fundamentales:
Lectura, Asignación y Escritura. Su estructura general corresponde a las
acciones de tipo secuencial.

Por convención, tales acciones al escribirlas en pseudocódigo deben ser


finalizadas con el signo de puntuación " ; " punto y coma).

Estructura Condicional Si-Entonces


Esta estructura implica una toma de decisión en el algoritmo, donde el
ejecutante (la computadora) puede seguir un camino u otro, según el valor de
verdad de una expresión lógica.
El esquema representativo de esta estructura es el siguiente:
E

falso verdadero
< exp. lógica >

B A

Donde <exp. lógica> es cualquier proposición que arroje un resultado lógico:


Verdadero o Falso.
La presencia de esta estructura en un algoritmo le indica al ejecutante que:

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 4

debe evaluar la expresión lógica planteada.



si es verdadera, debe ejecutar las acciones indicadas en

A. Luego ir al fin de la estructura.
 si es falsa, resolver el bloque B. Luego ir al fin de la
estructura.

En el diagrama señalado, tanto el bloque A, como el B, pueden representar


acciones primitivas elementales o alguna otra estructura de control.
Nótese que esta estructura condicional tiene un solo punto de entrada y un único
punto de salida representados por un pequeño círculo con una E y una S
respectivamente.
En pseudocódigo se expresará esta estructura de la manera siguiente:

Si <exp. lógica>
entonces A
sino B
FinSi

Donde las palabras claves Si y FinSi representan respectivamente la entrada y


el fin de la estructura.
Aquí también, si la expresión lógica arroja Verdadero, el ejecutante realiza A y
luego va a FinSi; si la expresión lógica arroja Falso realiza B y pasa a FinSi.

Ejemplo:

Problema: Determinar el valor de la función  3 ln( x)  5 x si x > 2


arbitraria y=f(x) que se indica a la derecha y 
para un valor de la variable x que se lee  2x  1 si x <= 2
como dato.

Solución empleando pseudocódigo:

Proceso FArbitraria
Leer X;
Si X > 2
entonces
y3*ln(x)-5*x;
sino
y2*x-1;
FinSi
Escribir 'Valor de la función: y=', y;
Fin Proceso

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 5

Solución empleando diagrama de flujo:

Inicio

falso verdad
X > 2

y 2x - 1 y 3Ln(x) - 5x

'Valor de la Función: y = ' ,y

Fin

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.

En una estructura condicional, la salida por Verdadero, siempre tendrá al


menos una acción para ejecutar; pero es posible que no haya acciones en la
salida por Falso de la expresión lógica. Esta variante de la estructura
condicional se expresará en pseudocódigo de la manera siguiente:

Si <exp.lógica>
entonces A
FinSi

Y en un diagrama de flujo:

falso verdad
< exp. lógica >

Es recomendable respetar la forma gráfica del esquema, tal como se propone.


Esto es porque la forma de diamante o rombo se empleará para otras
estructuras, y si se altera el esquema, puede resultar confuso el seguimiento de
su lógica.

Estructura Repetitiva Mientras-Hacer

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 6

Esta estructura permite ejecutar una acción o grupo de acciones en forma


reiterada, cierto número de veces, mientras se cumpla una condición. El
esquema gráfico que se empleará en los diagramas de flujo será el siguiente:

falso
< exp. lógica >

verdad

R
D

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.

La sintaxis correspondiente en pseudocódigo es:

Mientras <exp. lógica> Hacer


acción A
acción B
acción C
FinMientras

El punto D del diagrama se corresponde con el delimitador FinMientras. En ese


lugar se indica al ejecutante que debe volver a observar el valor de verdad de la
proposición lógica. Si esta arroja verdadero se vuelven a ejecutar las acciones
A, B, C; si arroja falso, el control escapa de la estructura para pasar a ejecutar la
próxima acción después del FinMientras.

Como en la estructura condicional, aquí también se tiene un único punto de


entrada y un único punto de salida.

Dos características particulares de la estructura repetitiva Mientras:

 Es posible que en un algoritmo las acciones encerradas


en la estructura nunca lleguen a ejecutarse, si la
expresión lógica arroja un falso en la primer evaluación.

 En el grupo de acciones que abarca la estructura es


necesaria la presencia de cierta acción, que permita
alguna vez, modificar el valor de verdad de la expresión
lógica que controla el Mientras. De lo contrario se estaría
en presencia de un bucle infinito.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 7

Al disponer de un proceso repetitivo o iterativo en un algoritmo, se pueden


plantear soluciones a problemas más complejos o que involucren una gran
cantidad de datos. Se verá que los problemas y sus correspondientes algoritmos
no difieren en mucho de lo que UD. venía haciendo hasta ahora; solo se
incorpora a la secuencia de acciones una estructura que las itere (repita). De
este modo se puede lograr la repetición sistemática de un proceso, lo que
implica importantes ventajas desde el punto de vista computacional debido a la
velocidad con que pueden operar las computadoras.

¿Qué ocurre ahora con la lectura de numerosos datos . Aprovechando el


proceso iterativo se puede leer un dato o grupo de datos, realizar sobre ellos el
proceso correspondiente, luego repetir la lectura para el segundo dato o grupo
de datos, procesarlo y así sucesivamente. Para aclarar esto obsérvese el
ejemplo siguiente.
Problema: 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 empleando Diagrama de Flujo

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;

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 8

Conteo  Conteo + 1;
Suma  Suma + X;
FinMientras
Media  Suma/Conteo;
Escribir 'Suma=', Suma;
Escribir 'Media=', Media;
FinProceso

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 ).

Estructuras de Control Adicionales


De acuerdo al Teorema Fundamental de la Programación Estructurada
enunciado por Baum y Jacopini serían suficientes las estructuras hasta aquí
planteadas para resolver cualquier problema computacional. Pero en diversas
situaciones --limitados por tan pocas herramientas-- es posible encontrar diseños
de algoritmos algo intrincados, engorrosos, o faltos de claridad.
Por tal motivo, se estudiará el uso de estructuras adicionales, que no son sino
variantes de las ya vistas y pueden ayudar a clarificar el diseño de ciertas
soluciones.

Estructura Condicional de Selección Múltiple


En varias situaciones se presentará el caso de que la decisión a tomar para
bifurcar el flujo o control de ejecución en un algoritmo no se basa en un
proposición lógica única con dos posibles alternativas; sino, que los caminos
posibles a seguir serán: 3, 4, ..,10 o más.
Tal situación puede resolverse con la Estructura Condicional Si-Entonces.
Se analizará en un ejemplo la resolución de un caso como el descrito.

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.

Datos generales del problema: N: número de asociados.


C1, C2, C3, C4: monto de cada cuota.

Y por cada socio: Cat: categoría del socio.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 9

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

Como se puede observar en la solución planteada para el ejemplo, el empleo de


la estructura condicional Si-Entonces resuelve el caso; pero a pesar de la
sencillez del problema, el seguimiento de la lógica es confuso.

Para tal situación se propone una estructura que contempla la posibilidad de


establecer una selección entre varias posibilidades clarificado el algoritmo. Esta
estructura se denomina Estructura Condicional de Selección Múltiple, y se trata
de una generalización de la estructura condicional.
En ella, en lugar de evaluar una condición o expresión lógica, se coteja el valor
de cierta variable, llamada variable de control de la estructura, con una lista de
valores posibles. El valor determinará cual es la próxima acción a ejecutar.

Según V Hacer
1: A:
2: B;
3,4: C;
.
.
n: Q;
FinSegún

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:
 Observa el valor de la variable V.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 10

 Buscar en la lista de valores propuestos el valor que coincida con


el de V.
 Si encuentra dicho valor, ejecutar las acciones indicadas para esa
opción. Luego, ir al fin de la estructura (FinSegún).
 Si el valor asignado a la variable, no coincide con ningún valor de
la lista propuesta, salta al FinSegún sin ejecutar acciones.

Opcionalmente, pueden plantearse acciones para el caso de que la variable de


control V no coincida con ningún valor de la lista. La sintaxis alternativa es la
siguiente:

Según V Hacer
1: A:
2: B;
3,4: C;
.
.
n: Q;
De Otro Modo
R;
FinSegún

Si para más de un valor, se debe realizar la misma acción (o grupo de acciones),


tales valores pueden agruparse en la misma línea separados por coma. Es el
caso de los valores 3 y 4 indicados más arriba al describir la sintaxis.
Para esos dos valores, debe realizarse la misma acción (o grupo de acciones)
que se identificó con C.

Nota: A, B, C,...Q, y R pueden representar desde una acción elemental hasta un


grupo de acciones o estructuras.

El esquema que se empleará en un diagrama de flujo para la estructura Según


es el siguiente:
E

v
De Otro
1 2 3,4 ....... n Modo

C Q
A
R
B

Al igual que la estructura condicional, se tiene aquí, un único punto de entrada y


un único punto de salida que en el gráfico se indican con los pequeños círculos
que encierran una E y una S.
Obsérvese en el mismo caso del club que se usó como ejemplo introductorio a
este tema, cómo aplicar la estructura de selección múltiple.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 11

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

Datos generales del problema: N: número de asociados.


C1, C2, C3, C4: monto de cada cuota.
Y por cada socio: Cat: categoría de un socio.

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

Compare ambas soluciones del problema, con y sin la estructura de selección


múltiple, y podrá observar la diferente legibilidad en favor del último ejemplo
donde se ha empleado la estructura Según.

Estructura Iterativa Repetir-Hasta que


Esta herramienta algorítmica adicional, tiene cierta similitud con el Mientras-
Hacer, ya que se debe evaluar cierta proposición lógica, cuyo resultado permite
continuar o escapar del bucle iterativo. Su esquema gráfico se indica abajo:

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 12

< exp. lógica >


falso

D verdad

En presencia de esta estructura, el ejecutante del algoritmo, ingresa a la


estructura, resuelve las acciones indicadas en los bloques P, Q, y R; entonces
evalúa la expresión lógica: si esta es falsa, vuelve a repetir las acciones. Así
sucesivamente Hasta que la expresión lógica arroje un resultado verdadero.

Su sintaxis para el pseudocódigo es:

Repetir
acción P ;
acción Q ;
acción R ;
Hasta que <exp. lógica>

Al igual que el Mientras, la estructura Repetir posee algunas características


particulares:

 Si la expresión lógica arroja un falso en la primer


evaluación, las acciones abarcadas por la estructura ya
habrán sido ejecutadas. Por tanto --siempre-- las acciones
de esta estructura serán realizadas al menos una vez.

 En el grupo de acciones que abarca la estructura es


necesaria la presencia de cierta acción, que permita alguna
vez, modificar el valor de verdad de la expresión lógica que
controla el Repetir. De lo contrario se estaría en presencia
de un bucle infinito.

Observación: en las dos estructuras iterativas o de repetición estudiadas, se


puede notar que no es necesario conocer el número de iteraciones a realizar. Es
común hallar problemas donde la proposición lógica que controla a ambas
estructuras, sea dependiente de alguno de los datos de entrada del algoritmo.

Estructuras de control anidadas


En el diseño de algoritmos, es usual el empleo de estructuras lógicas de control
en situaciones más complejas, las cuales se resuelven combinando las

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 13

estructuras básicas y adicionales que se desarrollaron en esta unidad.


Obsérvense algunos casos:

Caso 1

Aquí, se presenta una


estructura condicional con una
F V acción simple en la salida por
Decision
VERDAD. Por FALSO, tiene
otra estructura condicional
Acción
anidada
F V
Decision Ejemplo: observe la solución
propuesta para el problema del
Club que se usó para introducir
Acción
Acción el tema de la estructura Según

Caso 2.

F El diagrama plantea una


Mientras
estructura iterativa
MIENTRAS, la cual
V encierra una estructura
condicional.
Acción

F V
Decision

Acción Acción

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 14

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.

Aquí una estructura


Mientras encierra acciones
F de estructura secuencial y
Mientras
además una estructura
iterativa Repetir-Hasta que.
V
Acción

Acción

F
Hasta que

V
Acción

IMPORTANTE:. en todos los casos, observe que cada estructura encerrada o


anidada en otra, tiene su punto de entrada y su punto de salida, dentro de la
estructura anidante.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 15


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.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 16

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

a) Datos: 120, 80, 2


b) Datos: 0, 4, 1
c) Datos: 45, 92, 0

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.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 17

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.

Ejercicio 3.11. In icio

En el recuadro de la derecha se plantea un algoritmo


mediante un diagrama de flujo. C := 0

a) Escriba el mismo algoritmo empleando S uma : =


0
pseudocódigo.
Leer X
b) Realice un seguimiento del algoritmo con los datos: 12,
28, 67, 10, 31, 29, 62 C C + 1

c) Modifique el algoritmo sustituyendo la estructura de


control repetitiva por otra similar de modo de obtener fa ls o verdad la
X /2 = tr unc (X /2 )
misma información de salida; y realice el un
seguimiento con el mismo juego de datos del ejercicio S uma S uma + X
(b)
para verificar su diseño.
d) Proponga un enunciado que tenga por solución el
algoritmo planteado. fa ls o
C = 7

verdad

Ejercicio 3.12. Escribir 'S uma = ' ,S uma


Resolver el problema siguiente empleando la
Fin
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.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 3 18

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.4 Al anidar 2 o más estructuras de control ¿qué regla debe observarse?

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.6 ¿Si se cambia la expresión lógica por la expresión complementaria en un Si-


Entonces (por ejemplo cambiar < por >= ) ¿qué otra modificación realizaría para no
alterar la lógica del algoritmo?

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?

Ingeniería Informática – Fundamentos de Programación 2008

You might also like