UNIVERSIDAD DON BOSCO
FACULTAD DE INGENIERIA
ESCUELA DE COMPUTACIÓN
Programación de Algoritmos
Ciclo I Guía de Laboratorio No. 3
Estructuras condicionales
I. RESULTADOS DE APRENDIZAJE
Que el estudiante sea capaz de:
• Analizar la solución a problemas que requieran toma de decisiones, ya sean de tipo condicional
y/o selectivo.
• Diseñar correctamente Algoritmos en forma de Diagramas de Flujo con la Aplicación Raptor.
II. INTRODUCCIÓN
¿Como tomar decisiones en un algoritmo?
Uno de los métodos para el control de la ejecución de los pasos de un algoritmo es la Toma de
Decisiones, las cuales se construyen por medio de las Estructuras Selectivas.
Una estructura selectiva define un conjunto de alternativas de flujo, de las cuales solo se puede elegir a
una por medio de la evaluación de una o más condiciones, para continuar con la ejecución del algoritmo.
Todas las alternativas finalizan en un paso común, luego del cual, puede continuar de forma secuencial.
Las estructuras selectivas o alternativas se clasifican en:
Condicional: Se evalúa la condición dada en la estructura SI, si es verdadera se ejecutan las
acciones y si es falso continúa con la ejecución del algoritmo.
Si es necesario, existe el bloque SINO, en el cual se colocan las instrucciones que se ejecutaran
cuando “no se cumpla la condición principal”.
Selectiva: Dada una variable o expresión, su valor/resultado es comparado con toda una lista de
valores (v1, v2, v3… vN) de alternativa.
Cuando el valor evaluado coincide con uno de la lista (vN), se ejecuta solamente el bloque
definido para el (bloqueN).
1
Estructura condicional en un algoritmo
Permite “alterar” la secuencia normal de pasos en un “paso específico” del Algoritmo, para crear “2
alternativas de bloques de ejecución, de manera excluyente entre ambos”. En otras palabras: Solo uno de
los 2 bloques se ejecutará, nunca ambos bloques.
En la Imagen 3.1 se muestra cómo se representa una estructura condicional en forma de pseudocódigo y
diagrama de flujo.
Imagen 3.1: Palabras y símbolos reservados para implementar estructuras de toma de decisiones
En pseudocodigo… En diagrama de flujo…
Si Condición Entonces
acciones_por_verdadero
Acción S1
Sino
acciones_por_falso
Acción S2
FinSi
DECISIONES: Definiendo una condición lógica
Una estructura condicional permite decidir por cuál alternativa seguirá el flujo del programa dependiendo
del resultado de la evaluación de una condición.
Una Condición es una expresión que al ser evaluada, retorna un valor de tipo lógico o booleano. Este
tipo de dato solo tiene 2 valores: Verdadero o Falso.
Para establecer condiciones, se utilizan los operadores relacionales y lógicos.
Según la complejidad de la decisión a definir, hay 2 tipos de condiciones:
a) Condición Simple b) Condición Compuesta
Una condición simple comparar a una pareja de valores, los cuales pueden ser fijos, variables o el
resultado de una expresión. La sintaxis general de una Condición es la siguiente:
( )
Valor fijo 1 Valor fijo 2
Variable 1 Operador Relacional Variable 2
Expresión 1 Expresión 2
Al evaluar una condición simple, se retorna un valor lógico o booleano. Además, utiliza un operador
relacional.
Por otra parte, una condición compuesta consta de al menos una condición simple (Cs), las cuales se
evalúan entre sí por medio de los operadores lógicos/boléanos.
2
Estructuras condicionales en Raptor
En Raptor, cada valor lógico (verdadero y falso) se puede representar de 3 formas diferentes, así:
Valor lógico Representación en Raptor
Verdadero True Yes 1
Falso False No 0
En la Imagen 3.2 se listan a los Operadores Relacionales y Operadores Lógicos/Boléanos.
Imagen 3.2: Símbolos reservados en Raptor para implementar Toma Decisiones
Operador relacional en Raptor
Mayor que > Operador lógico en Raptor
Menor que < O lógico or ||
Mayor o igual que >=
Y lógico and &&
Menor o igual que <=
Igual que ==
Negación, No es no !
Diferente que != <>
Los operadores lógicos evalúan a los valores booleanos de acuerdo a las siguientes reglas:
Operador lógico regla de evaluación
( ! ) Negación Invierte el valor lógico sobre el cual se aplica
Evalúa a un par de valores lógicos. Si ambos son Falsos, el resultado
( || ) O lógico
es Falso. Cualquier otra combinación, retorna Verdadero
Evalúa a un par de valores lógicos. Si ambos son Verdaderos, el
(&&) Y lógico
resultado será Verdadero. Cualquier otra combinación, retorna Falso
Las combinaciones de entradas lógicas (E1, E2) y el resultado correspondiente a cada operador lógico se
pueden resumir en la Tabla de verdad mostrada en la Imagen 3.3.
Imagen 3.3: Tabla de Verdad de Imagen 3.4: Orden de prioridad de
los operadores lógicos los operadores lógicos.
E1 E2 !E2 E1 || E2 E1 && E2 Prioridad Operador
False False True False False 1 ! (negación)
False True False True False 2 &&
True False True False 3 ||
True True True True
Cuando una condición compuesta consta de más de una condición simple, se utilizan varios operadores
lógicos. En este caso, la jerarquía que aplica Raptor para resolverlas, se lista en la tabla de la Imagen 3.4
3
Estructuras selectivas dentro de un algoritmo
Una estructura Selectiva divide la ejecución de un Algoritmo en N segmentos de pasos.
Para determinar ¿Cuál segmento de pasos ejecutara la estructura?, se compara el valor de una misma
“variable clave” con un valor diferente por cada segmento y luego:
a) Si se cumple la comparación de ambos valores (valor clave con fijo) de un bloque, solamente se ejecuta
el respectivo segmento de pasos.
b) En caso que el valor de la variable clave no coincida con ninguno de los valores a comparar, se podrá
ejecutar un segmento “extra/por defecto” de pasos.
Una Estructura Selectiva en un algoritmo se puede expresar tanto en pseudocódigo como flujograma,
como lo muestra la Imagen 3.5.
Imagen 3.5: Estructura selectiva, en forma de pseudocodigo y diagrama de flujo
En pseudocodigo… En diagrama de flujo…
Según Variable Hacer
valor1:
bloque 1
…
valor2:
bloque 2
…
Otro Valor:
Bloque alterno
Fin Según
Estructura de toma de decisiones anidada
Una estructura selectiva (Según-Hacer) puede ser reemplazada por un árbol de toma de decisiones
anidada (Si-Entonces anidados). La Imagen 3.6 muestra a una Estructura condicional anidada.
Imagen 3.6: Estructura condicional anidada equivalente a una Estructura selectiva
4
III. MATERIALES Y EQUIPO
No. Requerimiento Cantidad
1 Memoria USB 1
2 Computadora con el software Raptor instalado. 1
IV. PROCEDIMIENTO
PARTE A: Redacción de tomas de decisiones en flujogramas con el Software Raptor
1. Prepare una carpeta de trabajo para almacenar todos los archivos (.rap) a elaborar dentro del
procedimiento de la practica
2. A continuación se le presenta el algoritmo solución (en pseudocodigo) del primer problema de tipo
Condicional (Ejemplo #1) a implementar en Raptor.
Ejemplo # 1
PROBLEMA:
Solicitar 2 números al usuario y luego, informarle si el primer número ingresado es mayor o igual que
el segundo (o viceversa), o de lo contrario, indicarle que ambos números son iguales.
Pseudocodigo general:
#Paso Descripción
1 Iniciar
2 Asignar num1 <- 0.0 , num2 <- 0.0
3 Mostrar “Ingrese Primer Numero”
4 Leer num1
5 Mostrar “Ingrese Segundo Numero”
6 Leer num2
7 Si num1 == num2 Entonces
8 Mostrar “Los numeros son iguales”
9 Sino
10 Si num1>num2 Entonces
11 Mostrar "primer numero "+num1+" es mayor que segundo numero "+num2
12 Sino
13 Mostrar "segundo numero "+num2+" es mayor que primer numero "+num1
14 Fin Si
15 Fin Si
16 Finalizar
5
3. Cargue el software Raptor y guarde el flujograma bajo el nombre Ejemplo1.rap
4. Proceda a traducir los pasos 1 al 6 del pseudocodigo de este ejemplo a la simbología apropiada bajo
Raptor.
5. Para agregar la toma de decisiones del paso 7, seleccione el símbolo Selection e insértelo
antes del paso final del flujograma.
La simbología y contenido de los campos que solicita este comando se describen en la Imagen 3.7.
Imagen 3.7: Vista del comando Selection dentro de un flujograma con la aplicación Raptor
En Raptor Redacción
• La expresión lógica (condición) a
evaluar se escribe en el cuadro de texto.
Raptor ofrece ejemplo de condiciones
simples y compuestas.
Ejecución
• Cuando se ejecuta el flujograma:
✓ Si la condición es evaluada como
Verdadera (True), el flujo continua
hacia el extremo izquierdo [Yes]
✓ De lo contrario, el flujo continua
hacia la derecha [No]
6. De doble clic sobre el símbolo del rombo y agregue solamente a la expresión lógica indicada en el
Paso 7 del pseudocodigo y de clic en botón Done.
7. Sobre la flecha de la izquierda [Yes], agregue el símbolo apropiado para el Paso 8 del pseudocodigo.
Raptor dará el siguiente error:
Can't insert in collapsed symbol
8. De clic en botón Expandir del rombo (ver la Imagen 3.7) y luego repita el paso anterior. Hoy si podrá
agregar símbolos en cada extremo de la estructura de decisión.
9. El bloque [No] de la toma de decisiones corresponde al Paso 9 del pseudocodigo.
10. El paso 10 del pseudocodigo corresponde a otra toma de decisiones. Agregue otro símbolo Selection
en la flecha [No].
11. En esta nueva toma de decisiones, complete los pasos 11 y 13 del pseudocodigo en la flecha [Yes] y
[No], respectivamente.
12. En la imagen 3.8, se muestra como debe quedar el segmento de pasos (7-15) del Pseudocodigo como
símbolos dentro del flujograma en Raptor.
6
Imagen 3.8: Sección de tomas de decisiones dentro del flujograma con Raptor
13. Una vez elaborado el flujograma en Raptor, guarde los cambios y ejecútelo.
En caso de errores, Raptor indicara el símbolo en donde detecta el error. Solicite ayuda a su instructor
para solucionarlo.
14. Realice 3 pruebas de ingreso de datos diferentes, para confirmar que satisfacen la solución del
problema.
PARTE B: Uso de operadores lógicos y alteración de su jerarquía.
15. Para continuar, se describe el Problema propuesto para el segundo ejemplo del procedimiento.
.
Ejemplo # 2
PROBLEMA:
Pida a usuario su edad y el sexo, para que la aplicación le indique si ya puede jubilarse. Tome en cuenta
que un Hombre se puede jubilar cuando tenga 60 años o más, en cambio, una mujer mayor se jubilara
solo si tiene más de 54 años.
16. A continuación, se muestran los pasos que conforman el pseudocódigo que soluciona este 2do
problema:
Pseudocódigo general:
#Paso Descripción
1 Iniciar
2 Asignar edad <- 0.0, Cadena sexo <- “n”
3 Mostrar “Ingrese su Edad”
4 Leer edad
5 Mostrar “Sexo Digite f (si es Mujer), m (si es Hombre)“
6 Leer sexo
7 Si (sexo==”f” O sexo==”F”) Y edad>=55 Entonces
8 Mostrar “ **** Puede Jubilarse **** “
7
#Paso Descripción
9 Sino
10 Si (sexo==”m” O sexo==”M”) Y edad>=60 Entonces
11 Mostrar “ **** Puede Jubilarse **** “
12 Sino
13 Mostrar “ **** Aun no puede Jubilarse **** “
14 Fin Si
15 Fin Si
16 Finalizar
17. Cree un nuevo flujograma en Raptor y guárdelo bajo el nombre Ejemplo2.rap.
18. Complete los pasos (1-6) del pseudocodigo de este problema al nuevo flujograma de Raptor.
19. Para implementar el Paso 7 del pseudocodigo, agregue un símbolo Selection.
20. Observe la condición compuesta que se evalúa en esta toma de decisiones:
✓ Esta utiliza 2 operadores lógicos (Y , O), que en Raptor son equivalentes a los operadores (&&,
||) respectivamente.
✓ Usa signos de agrupación ( ) para alterar la jerarquía de los operadores lógicos y hacer que el
operador OR (||) se evalúe antes que la AND (&&).
Dentro del símbolo de decisión en Raptor, redacte la expresión lógica con la siguiente sintaxis:
Expresión lógica en Pseudocodigo: (sexo==”f” O sexo==”F”) Y edad>=55
Expresión lógica a redactar en Raptor: (sexo==”f” || sexo==”F”) && edad>=55
21. Complete la redacción del pseudocodigo en el flujograma en Raptor.
La expresión lógica de la 2da toma de decisiones (Paso 10 del pseudocodigo) se resolverá de manera
similar a la sintaxis descrita en el paso anterior.
22. Guarde los cambios en el archivo y ejecute el flujograma. Realice las pruebas descritas en la Tabla
de entrada/salida a continuación, confirme los resultados:
# prueba Datos entradas Datos salida (Resultados)
1 edad= 30 sexo= f **** Aun no puede Jubilarse ****
2 edad=58 sexo= M **** Aun no puede Jubilarse ****
3 edad=64 sexo= m **** Puede Jubilarse ****
4 edad=56 sexo= f **** Puede Jubilarse ****
Importante: observe el uso de minúsculas/mayúsculas al ingresar el dato sexo.
PARTE C: Elaboración de algoritmos selectivos
23. Ahora se le propone un último problema, que se basa en estructuras selectivas (En Caso) para diseñar
su solución.
8
Ejemplo # 3
PROBLEMA:
Un estudiante necesita calcular el valor del área de una figura geométrica.
Las figuras geométricas disponibles son el triángulo, circulo, rectángulo y un hexágono.
24. A continuación, se le presenta los pasos del pseudocódigo que resuelven el problema anterior.
Observe el uso de la estructura selectiva Segun-Hacer, en la cual se evalúa a la misma variable (M)
con varias alternativas.
Paso Descripción
1 Iniciar
2 Asignar lado<- 0.0, radio<- 0.0, base<- 0, altura<-0
3 Asignar apotema<- 0, area<- 0
4 Asignar M<- “sin elegir”
5 Mostrar “Calculo de áreas de figuras geométricas”
6 Mostrar “Elija la letra de la figura geométrica a la cual se le calculara su área: E. Triangulo equilátero,
C. Circunferencia, R. Rectangulo, H. Hexagono ? ”
7 Mostrar “digite la letra de la figura a calcular: “
8 Leer M
9 Segun M Hacer
10 “E” : “e” :
11 Mostrar “Calculo de área de triangulo equilatero”
12 Mostrar “Digite valor (en cm.) de uno de los lados del triangulo:”
13 Leer lado
14 apotema<- sqrt(3/4 *lado^2)
15 area<- lado * apotema
16 Mostrar “R// Area del triangulo equilátero es "+area+" cm cuadrados “
17 ”C” : “c” :
18 Mostrar “Calculo de área de una circunferencia”
19 Mostrar “Digite valor (en cm.) del radio del circulo:“
20 Leer radio
21 area<- pi * radio^2
22 Mostrar “R// Area de la circunferencia es " + area + " cm cuadrados “
23 ”R”: “r” :
24 Mostrar “Calculo de área de un rectángulo”
25 Mostrar “Digite valor (en cm.) de la base del rectangulo: “
26 Leer base
27 Mostrar “Y ahora la altura del mismo: “
9
Paso Descripción
28 Leer altura
29 area<- base*altura
30 Mostrar “R// Area del rectángulo es “ + area + “ cm cuadrados“
31 ”H” : “h” :
32 Mostrar “Calculo del área de un hexágono“
33 Mostrar “Digite la medida (en cm.) de uno de los lados del hexágono:“
34 Leer lado
35 apotema<- sqrt ( 3/4 * lado^2 )
36 area<- 6 * (apotema*lado / 2 )
37 Mostrar “R// Area del hexágono es “+ area + “ cm cuadrados “
38 de Otro Modo:
39 Mostrar “Error, opcion elegida no existe!!”
40 FinSegun
41 FinProceso
25. Cree un nuevo flujograma en Raptor y guárdelo bajo el nombre de archivo Ejemplo03.rap.
26. Codifique en el flujograma de Raptor a los pasos (1-8) del pseudocodigo anterior.
27. Agregue al flujograma una serie de símbolos Selection en una secuencia idéntica a la mostrada en la
Imagen 3.9.
Esta estructura implementa una estructura condicional anidada (en cascada) que reemplazara a la
estructura selectiva (Según-Hacer) que inicia en el Paso 9 del Pseudocodigo.
Imagen 3.9: Estructura condicional anidada a implementar en flujograma
28. En el Paso 10 del Pseucodigo, se hace la primera comparación del valor de la variable M con los
valores de “E” o tambien “e”. De doble clic sobre el primer símbolo Selector y redacte ahí la
siguiente condición:
10
M==”E” || M=”e”
29. De manera similar al paso anterior, traduzca las comparaciones hechas en los Pasos (17, 23 y 21) del
Pseudocodigo, de manera correlativa hacia los símbolos Selector restantes.
Por ej. Para la comparación del Paso 17 del Pseudocodigo, en el 2do Selector se usara la siguiente
condición: M==”C” || M==”c”
30. En la flecha Yes del 1er Selector, agregue los símbolos y contenido necesarios para implementar los
Pasos (del 11 a 16) del Pseudocodigo.
31. De manera similar, en la flecha Yes del 2do Selector, redacte la simbología para los Pasos (18 al 22).
32. Complete la traducción de los bloques de Pasos (24 al 30) y (32 al 37) del Pseudocodigo en la flecha
Yes de los selectores restantes, respectivamente.
33. Redacte el Paso 39 del Pseudocodigo en la flecha No del ultimo Selector.
34. Guarde los cambios realizados al flujograma.
35. Proceda a realizar pruebas de ejecución del mismo, ingresando una letra de opción (e, c, r, h o sus
mayusculas) de la figura geométrica a la cual le calculara el Area.
Utilice los siguientes datos de entradas
a) Para una circunferencia de 10 cm de radio, la respuesta devuelta será un área de 314.16 cm
cuadrados.
b) Un triangulo equilátero de 6 cm de lado; su área sera de 5.196 cm cuadrados
c) El Area de un hexágono de 8 cm de lado sera de 166.27 cm cuadrados
d) Digite una letra diferente de las descritas en el menú y se indicara el mensaje de error ubicado al
final de la estructura selectiva.
36. Llame a su instructor para mostrarle la ejecución de todos los ejemplos del procedimiento de esta
práctica que ha realizado.
11
V. ANÁLISIS DE RESULTADOS
En grupos de compañeros, implemente en Raptor a los flujogramas que solucionen a cada uno de los
problemas a continuación.
PROBLEMAS:
A. Ayude a un estudiante de electrónica básica a determinar el resultado de la compuerta lógica AND y
una NOR. Los valores lógicos que requiere ingresarse o mostrarse son las letras (v , f ) o sus
mayusculas.
Si usuario se equivoca al brindar entradas, el algoritmo le informa el error apropiadamente y finaliza.
B. Permita calcular el total a pagar por la compra de N camisas. Si se compran entre 1 a 4 camisas se
aplica un descuento del 12.5%, si se compra una cantidad comprendida entre 5 y 8 camisas se aplica
un descuento del 20% y si se compran cantidades mayores, se aplica un descuento del 31.5% sobre
el total de la compra.
Debe imprimirse en pantalla la compra final sin descuento, monto del descuento y la compra con
descuento.
C. Solicite al usuario un total de 3 numeros, para luego:
• ¿Cuál de ellos es el mayor y cual el menor de todos?
• Mostrar el trio de números ingresados, pero ordenados de manera ascendente.
D. Solicite un numero entero a usuario, solamente entre 1 a 10. Luego, retorne un mensaje que indique
si es primo. Si no es primo, justificarlo apropiadamente.
E. Solicite a usuario 3 numeros enteros cualquiera, para luego mostrárselos nuevamente en pantalla,
pero ordenados de manera ascendente.
F. Solicite a usuario el valor de la hora actual, en horas, minutos y segundos; asi como, si es antes
medidiano (am) o después medidiano (pm). Luego, mostrarle la hora que seria después de transcurrir
10 segundos exactamente.
Observe algunos ejemplos de horas ingresadas y su correspondiente valor luego de transcurrir los 10
segundos.
Hora ingresada Hora (luego de 10 segundos)
4 am. 8 min.: 25 seg. 4 am. 8 min.: 35 seg.
5 pm. 45 min.: 57 seg. 5 pm. 46 min.: 7 seg.
11 pm. 59 min.: 52 seg. 12 am. 0 min.: 2 seg.
7 am. 59 min.: 54 seg. 8 am. 0 min.: 4 seg.
12
G. Solicite a usuario el nombre de una materia que ha cursado y tambien la nota final obtenida en la
misma (en la escala decimal). Luego, se mostrará el equivalente de esta nota ingresada en el Standard
Grading System, utilizado en el sistema educativo de EEUU.
H. Solicite los parámetros necesarios para resolver una ecuación de 2do grado por medio de la ”ecuación
cuadrática general”. El algoritmo retornara las soluciones reales (x1 y x2).
En caso que la ecuación no tenga solucion, debe justificar el motivo que no permite resolverla.
Pruebe su solucion con las siguientes ecuaciones:
2𝑋 2 − 5𝑋 − 3 = 0 0𝑋 2 + 2𝑋 − 1 = 0 1𝑋 2 + 𝑋 + 1 = 0
I. Elabore un conversor de medidas de longitud. El usuario podrá elegir pares de medida para realizar
la conversión de medidas. Las unidades de medida de longitud disponible para el usuario, seran:
a) Metros b) Pies c) Centimetros d) Pulgadas
13
Guía de Laboratorio No. 3:
RÚBRICA DE EVALUACIÓN
Actividad a evaluar: ANÁLISIS DE RESULTADOS
Formar grupos entre 3 a 5 estudiantes, llenar esta hoja de evaluación y entregarla a su docente.
Su instructor seleccionará 3 problemas del ANÁLISIS DE RESULTADOS, para ser resueltos
apropiadamente por el grupo.
Lista de Integrantes:
CARNET 1 CARNET 2 CARNET 3 CARNET 4 CARNET 5
Problemas a resolver:
Prob 1 Prob 2 Prob 4
Criterio a evaluar PROM. Puntaje
(20%) Define las variables de entrada y salida
esperadas
(25%) Redacta expresiones lógicas apropiadas
(30%) El flujograma se ejecuta normalmente.
Se obtiene a c/u de los resultados solicitados
(25%) Se cumplen cada una de las restricciones
descritas en el problema
14