0% encontró este documento útil (0 votos)
141 vistas16 páginas

Tema 3: Estructuras de Decisión: Procesamiento de Datos Unidad 2

Este documento describe diferentes estructuras de decisión en programación, incluyendo condicionales simples (IF), compuestas (IF-ELSE), y anidadas (IF-ELSEIF-ELSE). Explica cómo estas estructuras permiten modificar el flujo secuencial de un programa ejecutando instrucciones de forma condicional dependiendo de si una expresión lógica es verdadera o falsa. También provee ejemplos pseudocódigo para ilustrar el uso de estas estructuras en la solución de problemas como determinar el signo de un número y calcular
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
141 vistas16 páginas

Tema 3: Estructuras de Decisión: Procesamiento de Datos Unidad 2

Este documento describe diferentes estructuras de decisión en programación, incluyendo condicionales simples (IF), compuestas (IF-ELSE), y anidadas (IF-ELSEIF-ELSE). Explica cómo estas estructuras permiten modificar el flujo secuencial de un programa ejecutando instrucciones de forma condicional dependiendo de si una expresión lógica es verdadera o falsa. También provee ejemplos pseudocódigo para ilustrar el uso de estas estructuras en la solución de problemas como determinar el signo de un número y calcular
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MINISTERIO DE LA DEFENSA

UNIVERSIDAD NACIONAL REPÚBLICA BOLIVARIANA DE VENEZUELA


EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA
UNEFA – NÚCLEO YARACUY
PROCESAMIENTO DE DATOS

Unidad 2

Ing. Lucia Morera

Tema 3: Estructuras de Decisión

Estructuras de control: condicionales (o de decisión) y bucles (o de


repetición). Son parte fundamental de cualquier lenguaje. Sin ellas, las
instrucciones de un programa sólo podrían ejecutarse en el orden en que
están escritas (orden secuencial). Las estructuras de control permiten
modificar este orden. Hay dos categorías de estructuras de control:

 Condicionales o bifurcaciones: permiten que se ejecuten conjuntos


distintos de instrucciones, en función de que se verifique o no
determinada condición.

 Bucles o repeticiones: permiten que se ejecute repetidamente un


conjunto de instrucciones, bien un número pre-determinado de veces,
o bien hasta que se verifique una determinada condición.

En términos de un lenguaje de programación, que se verifique o no una


condición se traduce en que una (adecuada) expresión lógica tome el valor
VERDADERO (TRUE) o tome el valor FALSO (FALSE). En los casos más sencillos
y habituales la condición suele ser una comparación entre dos datos, como
por ejemplo: si a < b hacer una cosa y en caso contrario hacer otra distinta.

ESTRUCTURAS DE DECISIÓN

Son acciones que afectan directamente el flujo del algoritmo (afectan


el orden secuencial en el cual se deben ejecutar los pasos).

Permiten resolver problemas indicando al computador que tome


decisiones dependiendo del valor que arroje la evaluación de cierta(s)
condición(es) lógica(s) previamente establecidas.

Estas estructuras controlan la ejecución o la no ejecución de una o más


instrucciones dependiendo de una condición impuesta.

Ing. Lucia Morera UNEFA 1


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Decisión Simple – Si (If):

Este es el tipo más sencillo de estructura condicional. Involucra una


sola decisión, evaluando una expresión lógica, y una sola respuesta posible.

En caso de que el resultado de la condición (expresión lógica) sea


“verdadero”, entonces se ejecuta un grupo de acciones establecidas para la
condición; luego se continúa con la secuencia de pasos del algoritmo o
programa.

En el caso en que el resultado de la expresión sea “falso”, no se


ejecuta el grupo de acciones establecidas para la condición sino que se
continúa directamente con la secuencia de pasos del algoritmo o programa.

El círculo rojo indica el Acción 1


cierre de la estructura,
Acción 2
es la instrucción fin
Expresión Si
Acción m

No

Observe que, en ambos casos (que se verifique o no la condición), los


“caminos” bifurcados se unen posteriormente en un punto, es decir, el flujo
del programa recupera su carácter secuencial, y se continúa ejecutando por la
instrucción siguiente a la estructura IF.

Ing. Lucia Morera UNEFA 2


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Como ejemplo de utilización de este tipo de condicional, se considera


el cálculo del valor en un punto x de una función definida por partes, como
por ejemplo:

El Algoritmo muestra el pseudocódigo correspondiente:

Cálculo del valor de la función f (x) = 0 si x ≤ 0, f (x) = x2 si x > 0.


Inicio
1- LEER x
2- HACER f=0
3- Si x>0
HACER f=x2
Fin Si
4- IMPRIMIR ’El valor de la funcion es: ’, f
Fin

Decisión Compuesta o Estructura condicional doble: IF – ELSE.

Involucra una sola decisión evaluando una condición (expresión lógica)


y dos posibles respuestas.

Este tipo de estructura permite implementar condicionales en los que hay dos
acciones alternativas:

 Si se verifica una determinada condición, ejecutar un serie de


instrucciones (bloque 1).

 Si no, esto es, si la condición NO se verifica, ejecutar otra serie de


instrucciones (bloque 2).

En otras palabras, en este tipo de estructuras hay una alternativa: se


hace una cosa o se hace la otra. En ambos casos, se sigue por la instrucción
siguiente a la estrucutra IF – ELSE.

Ing. Lucia Morera UNEFA 3


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Como ejemplo de utilización de este tipo de estructuras se plantea el


problema de calcular las raıces
́ de una ecuación de segundo grado

ax2 + bx + c = 0

distinguiendo dos casos: que las raıces


́ sean reales o que sean complejas (no
se contempla, de momento, dintinguir entre una o dos ra ıceś reales). Ver a
continuación el diagrama de flujo y el pseudocódigo correspondiente

Ing. Lucia Morera UNEFA 4


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Cálculo de las raíces de la ecuación de segundo grado Ax2 + Bx + C = 0,


distinguiendo los casos de raíces reales y complejas.
Inicio
1- LEER A,B y C
2- CALCULAR D=B2 -4*A*C
3- CALCULAR AA=2*A
4- Si D≥0
CALCULAR DD= D
x1=(-B+DD)/AA
x2=(-B-DD)/AA
IMPRIMIR ’La ecuación tiene raı́ces reales:’, x1, x2
Si no
CALCULAR DD= -D
Re=-B/AA
Im=DD/A2
IMPRIMIR ’La ecuación tiene raı
́ces complejas
conjugadas:’
IMPRIMIR ’Parte real:’, Re
IMPRIMIR ’Parte imaginaria:’, Im
Fin Si
Fin

Estructura condicional múltiple o Decisiones Anidadas: IF - ELSEIF –


ELSE.

Involucran decisiones simples o compuestas dentro de las acciones de


otras decisiones que también pueden ser simples o compuestas.

Ing. Lucia Morera UNEFA 5


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

En su forma más general, la estructura IF - ELSEIF - ELSE permite


implementar condicionales más complicados, en los que se “encadenan”
condiciones en la forma siguiente:

 Si se verifica la condición 1, ejecutar las instrucciones del bloque 1.

 Si no se verifica la condición 1, pero SÍ se verifica la condición 2 ,


ejecutar las instrucciones del bloque 2.

 Si no, esto es, si no se ha verificado ninguna de las condiciones


anteriores, ejecutar las instrucciones del bloque 3.

En cualquiera de los casos, el flujo del programa continúa por la instrucción


siguiente a la estructura IF - ELSEIF – ELSE.

Determinación del signo de un número: positivo, negativo o nulo.


Inicio
1- LEER X
2- Si X>0
IMPRIMIR ’El número tiene signo positivo’
Si no, si X<0
IMPRIMIR ’El numero tiene signo negativo’
Si no
IMPRIMIR ’El numero es nulo’
Fin

Ing. Lucia Morera UNEFA 6


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Ejercicios con la Estructura de decisión If-else-if (Si-sino-si)

Ejercicio 1. Escribir un algoritmo que permita verificar si el producto de dos


números A y B será positivo, negativo o nulo sin tener que realizar el cálculo
del producto.

Análisis:

Qué me piden? Decir si el producto será positivo o Decir si el producto será


negativo o Decir si el producto será nulo.

Qué tenemos? Dos datos A y B

Qué necesito? Saber cuándo el producto da positivo sin realizar la


multiplicación.

Saber cuándo el producto da negativo sin realizar la multiplicación.

Saber cuándo el producto da nulo sin realizar la multiplicación.

Recuerda que:

El producto de dos números da positivo si ambos números tienen igual


signo: + por + o – por –

El producto de dos números da negativo si los números tienen signos


diferentes: + por - o – por +

El producto de dos números da nulo si alguno de los números es cero.

Ya estamos listos para hacer el algoritmo!!

Ing. Lucia Morera UNEFA 7


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

¿Cuál Opción es correcta?


Y ¿Cuál no lo es?

Opción 1
A=input(‘Escriba el primer número’)
B= input(‘Escriba el segundo número’)
Si A>0 and B>0
disp(‘El producto es positivo’)
fin
Si A>0 and B<0
disp(‘El producto es negativo’)
fin
Si A==0 or B==0
disp(‘El producto es nulo’)
fin

Opción 2
A=input(‘Escriba el primer número’)
B= input(‘Escriba el segundo número’)
Si (A>0 and B>0) or (A<0 and B<0)
disp(‘El producto es positivo’)
fin
Si (A>0 and B<0) or (A<0 and B>0)
disp(‘El producto es negativo’)
fin
Si A==0 or B==0
disp(‘El producto es nulo’)
fin

Opción 3
A=input(‘Escriba el primer número’)
B= input(‘Escriba el segundo número’)
Si (A>0 and B>0) or (A<0 and B<0)
disp(‘El producto es positivo’)
sino Si (A>0 and B<0) or (A<0 and B>0)
disp(‘El producto es negativo’)
sino
disp(‘El producto es nulo’)

Ing. Lucia Morera UNEFA 8


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

fin
fin

¿Ya analizaste las opciones presentadas?


¿Te diste cuenta de cuál opción se
incorrecta?

Analiza las opciones antes


de pasar a leer las
Observaciones

Observaciones:

La opción 1 no es correcta porque le faltan condiciones por evaluar en


las estructuras Si (if). En el primer Si (primera condición) solo se está
considerando el caso en que ambos datos son positivos, pero cuando ambos
datos son negativos su producto da positivo y este caso no se ha escrito en el
algoritmo.

Por otra parte, en el segundo Si (segunda condición) solo se ha


colocado el caso en que A sea positivo y B negativo, pero cuando A es
negativo (A<0) y B es positivo(B>0) el producto da negativo y este caso no se
ha colocado en el algoritmo.

Las opciones 2 y 3 son correctas, fíjate que se han considerado todos


los casos analizados. La opción 3 es más corta y directa puesto que se ha
empleado un Si anidado, fíjate bien cómo se ha escrito y cómo van los cierres
de cada Si

Veamos unas corridas en papel


de éstas tres opciones

Ing. Lucia Morera UNEFA 9


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Corridas en papel de la Opción 1

Corrida 1 Corrida 2
A=-10 A=-10
B=-15 B=15
A>0 and B>0 A>0 and B>0
--------- ---------
A>0 and B<0 A>0 and B<0
--------- ---------
A==0 or B==0 A==0 or B==0
--------- ---------

En ambas corridas no habrá salida, y debe haber una salida para que
la vea el usuario. No hay salida porque no se escribieron todas las condiciones
posibles para evaluar, como las dadas en estas corridas (A<0 and B<0 y A<0
and B>0).

Corridas en papel, Opción 2

Corrida 1 Corrida 2
A=-10 A=-10
B=-15 B=15
(A>0 and B>0) or (A<0 and B<0) (A>0 and B>0) or (A<0 and B<0)
El producto es positivo ---------
(A>0 and B<0) or (A<0 and B>0) (A>0 and B<0) or (A<0 and B>0)
--------- El producto es negativo
A==0 or B==0 A==0 or B==0
--------- ---------

En ambas corridas habrá una salida la cual es correcta. Fíjate que se


han considerado todas las opciones posibles.

Corridas en papel, Opción 3

Corrida 1 Corrida 2
A=-10 A=-10
B=-15 B=15
(A>0 and B>0) or (A<0 and B<0) (A>0 and B>0) or (A<0 and B<0)

Ing. Lucia Morera UNEFA 10


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

El producto es positivo ---------


(A>0 and B<0) or (A<0 and B>0)
El producto es negativo

En ambas corridas habrá una salida la cual es correcta. En esta opción,


al presentar una estructura if anidada no se evalúan algunas condiciones
porque no hace falta evaluarlas ya que se ha dado previamente la salida
correcta. Fíjate bien en ambas corridas

Ejercicio 2. Escribir un algoritmo que determine cuál es el mayor de tres


números dados.

Análisis:

Qué me piden? Decir el mayor de los números

Qué tenemos? Tres datos A, B y C

Qué necesito? Saber cómo elegir al mayor número.

Se compara cada número con los demás, si resulta ser más grande que
un dato entonces lo comparamos con el otro dato a ver si sigue siendo el
mayor, así continuamos hasta compararlo con todos, pero si resulta ser menor
que uno de los datos en nuestra comparación entonces dejamos de
compararlo con los que faltan (porque ya no tienen sentido seguir).

Hacemos la comparación de todos los datos, uno por uno hasta que se
cumpla que un dato sea más grande que todos los demás.

Ya estamos listos para hacer el algoritmo!!

Opción 1
A=input(‘Escriba el primer número’)
B=input(‘Escriba el segundo número’)
C= input(‘Escriba el tercer número’)
Si A> B
disp(‘A es mayor’)
Si A>C
disp(‘A es el mayor’)
fin
fin
Si B> A

Ing. Lucia Morera UNEFA 11


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

disp(‘B es mayor’)
Si B>C
disp(‘B es el mayor’)
fin
fin
Si C> A
disp(‘C es mayor’)
Si C>B
disp(‘C es el mayor’)
fin

fin

Opción 2

A=input(‘Escriba el primer número’)

B=input(‘Escriba el segundo número’)

C= input(‘Escriba el tercer número’)

Si A> B and A>C

disp(‘A es el mayor’)

sino Si B> A and B>C

disp(‘B es el mayor’)

sino

disp(‘C es el mayor’)

fin

fin

Analiza las opciones antes


de pasar a leer las
Observaciones

Ing. Lucia Morera UNEFA 12


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Observaciones:

La opción 1 no es correcta porque cuando compara un dato con otro de


una vez da una salida (se da un comentario con el disp que es mostrado en
pantalla para el usuario y lo puede confundir) antes de verificar con todos los
datos a ver si de verdad es el mayor de todos.

La opción 2 verifica cada dato contra los otros, se compara A contra los
otros datos (A>B and A>C) al cumplirse entonces da la salida A es el mayor,
sino se cumple entonces pasa a comparar B contra los otros datos (B> A and
B>C) al cumplirse entonces da la salida B es el mayor, sino se cumple
entonces C es el mayor porque solo hay tres datos.

Si tuviésemos más datos entonces hay que seguir el mismo


procedimiento con cada uno, es decir, se tiene que repetir lo que se ha hecho
con A y con B en los demás datos hasta llegar al último dato en cuyo caso, por
ser el último, no se compararía (así como se hizo con el dato C que no se
comparó por ser el último).

Veamos unas corridas en papel


de éstas tres opciones

Corridas en papel, Opción 1


Corrida 1 Corrida 2
A=-10 A=-10
B=-15 B=15
C=5 C=5
A>B A>B
A es el mayor ----------------
A>C A>C
---------------- ----------------
B>A B>A
---------------- B es el mayor
B>C B>C
---------------- B es el mayor
C>A C>A
C es el mayor C es el mayor
C>B C>A
C es el mayor ---------------

Ing. Lucia Morera UNEFA 13


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Ambas corridas presentan salidas en pantallas que no son correctas


según lo que se pide (¿cuál es el mayor de todos?), esto es porque el algoritmo
no está bien diseñado, presenta salidas (disp) donde no debería tenerlas,
fíjate bien.

Corridas en papel, Opción 2

Corrida 1 Corrida 2
A=-10 A=-10
B=-15 B=15
C=5 C=5
A>B and A>C A>B and A>C
--------------- ----------------
B> A and B>C B> A and B>C
-------------- B es el mayor
C>A and C>B C>A and C>B
C es el mayor ---------------

Ambas corridas presentan las salidas en pantallas correctas según lo


que se pide (¿cuál es el mayor de todos?), esto es porque en el algoritmo se
colocaron las salidas cuando se cumplan todas las comparaciones.

Prueba ambas opciones con otros datos.

Ejercicio 3. Dados tres números enteros, determinar si la suma de


cualquier pareja de ellos es igual al tercer número. Si se cumple esta
condición, escribir “Iguales” y, en caso contrario, escribir “Distintos”.

Análisis:

Qué me piden? Decir si la suma de dos números es igual al tercer numero.

Qué tenemos? Tres datos A, B y C

Qué necesito? Determinar si la suma de cualquier pareja de ellos es igual al


tercer número. Determinar si A + B = C escribir “Iguales”. Determinar si A + C
= B ⇒ “Iguales” - Determinar si B + C = A ⇒ “Iguales” - Si no se cumple
ninguno de los anteriores ⇒ “Distintos”

Ya estamos listos para hacer el algoritmo!!

Opción 1
Inicio
Escribir (“Introduzca tres números enteros”)
Leer (A, B, C)

Ing. Lucia Morera UNEFA 14


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

Si (A + B = C) entonces
Escribir (“Iguales”)
Fin_si
Si (A + C = B) entonces
Escribir (“Iguales”)
Fin_si
Si (B + C = A) entonces
Escribir (“Iguales”)
Fin_si
Si ((A + B = C) o (A + C = B) o (B + C = A)) entonces
Escribir (“Distintos”)
Fin_si
Fin
Es correcta esa
solución?
Pasa a Java el
procedimiento

Ejercicios propuestos

Realice el análisis, algoritmo y programa en Java para cada uno de los


siguientes problemas.

1. Leer un número entero n y calcular e imprimir su inverso 1/n.


Considerar el caso especial del valor 0, en cuyo caso el programa
deberá escribir el mensaje "ERROR -división por cero".
2. Leer el valor de un año e indicar si es o no un año bisiesto. Recordar la
regla: "Un año es bisiesto si es divisible por 400, o bien si es divisible
por 4 pero no por 100”
3. Leer un instante de tiempo expresado en horas y minutos y escribir
como respuesta uno de los mensajes "Buenos días", "Buenas tardes" o
"Buenas noches", de acuerdo con las siguientes reglas:
a) Se considera que es de día desde las 7:30 horas hasta las 14:00
horas.
b) Se considera que es por la tarde desde las 14:01 horas hasta las
20:30 horas.
c) Se considera que es de noche desde las 20:31 horas hasta las 7:29
horas

Ing. Lucia Morera UNEFA 15


Procesamiento de Datos. Unidad 2.
Estructuras: de Decisión.

4. Leer un carácter y deducir si está o no comprendido entre las letras I y


M ambas inclusive
5. Emitir la factura correspondiente a una compra de un artículo
determinado del que se adquieren una o varias unidades. El IVA a
aplicar es del 16% y si el precio bruto (precio de venta + IVA) es mayor
de Bs. 500 se aplicará un descuento del 5%
6. Leer las coordenadas cartesianas (x, y) de un punto del plano y calcular
e imprimir el cuadrante al cual pertenece el punto (I, II, III, IV).
7. Determinar el precio de un pasaje de ida y vuelta en avión. El pasaje
tiene un descuento del 30% si la distancia a viajar es superior a los
800km y si el número de días de estancia es superior a 7. El precio por
km. es Bs. 250.
8. Dado un reloj de 24 horas y un tiempo representado en forma de entero
de la forma hhmm, donde hh representa las horas (00 a 23) y mm
representa los minutos (00 a 59), determinar el tiempo después de que
han pasado h horas y m minutos.
9. Escribir un programa que convierta de grados Fahrenheit a Celsius y
viceversa. El programa deberá leer en primer lugar un número entero
que indicará si se va a convertir de grados Fahrenheit a Celsius (1) o de
grados Celsius a Fahrenheit (2). Seguidamente leerá el valor de la
temperatura, realizará la conversión aplicando la fórmula adecuada e
imprimirá.

Ing. Lucia Morera UNEFA 16

También podría gustarte