Uso de Estructuras Condicionales

Anuncio
UNIVERSIDAD DON BOSCO
FACULTAD DE ESTUDIOS TECNOLÓGICOS
ESCUELA DE COMPUTACION
GUIA DE LABORATORIO #03
CICLO: 02/ 2013
Nombre de la Practica:
Uso de estructuras condicionales
Lugar de Ejecución:
Centro de Computo
Tiempo Estimado:
2 horas y 30 minutos
MATERIA:
Introducción a la Programación
I. OBJETIVOS
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 DFD
•
Implemente soluciones (algoritmos) condicionales/selectivas bajo 2 aplicaciones diferentes (PSeint y DFD)
•
Cumplir las sintaxis de uso de las diferentes instrucciones de programación
II. INTRODUCCION TEORICA
1. Tipos de estructuras de control dentro de un Algoritmo
Existen tres tipos de estructuras generales para controlar la secuencia de la ejecución de los pasos de un
algoritmo. Estas son:
a) Estructura secuencial
b) Estructura condicional o selectiva
c) Estructura repetitiva
1.A. Estructura Secuencial
Es el método de control más simple de ejecución de pasos de un algoritmo. Cada nuevo paso N no se puede
ejecutar hasta que se halla ejecutado el paso (N-1) anterior al mismo. Tiene que contar con un paso inicial y un
paso final.
1.B. Estructura Condicional ¿Cómo 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.
Las estructuras selectivas se basan en la definición de un conjunto de alternativas de flujo, de las cuales solo se
puede elegir una de esas alternativas por medio de la evaluación de una o mas condiciones para continuar con la
ejecución del algoritmo. Todas las alternativas finalizan en un paso común, luego del cual el algoritmo puede
continuar de forma secuencial.
1
Guía # 03: Uso de estructuras condicionales
Las estructuras selectivas o alternativas se clasifican en:
A
Condicional
B
Selectiva
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”
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).
2.1 Diseño de una Condición en un Algoritmo
Una estructura Condicional permite “alterar” la secuencia normal de pasos en un “paso especifico” 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 ejecutaran, nunca ambos bloques!!
¿DECISIONES? , Definiendo una condición lógica
Una estructura condicional permite decidir por cual alternativa seguirá el flujo del programa dependiendo del
resultado de la evaluación de una condición. Para establecer condiciones complejas 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 Compleja
Una condición simple puede comparar entre 3 alternativas de valores (fijo, de una variable, resultado de una
expresión), así:
Valor fijo 1
(
Variable 1
Valor fijo 2
OperadorRelacional
Expresión 1
Variable 2
)
Expresión 2
Al evaluar una condición simple, retorna un valor lógico, es decir, de Verdadero/True cuando se cumple, de lo
contrario, retorna Falso/False.
Ejemplos de condiciones simples y su evaluación
Si tenemos 3 variables A, B y C con los valores actuales: A<-5, B<-10 y C<-999. A continuación observe la
redacción de diversas condiciones simples y su respectiva evaluación (que devuelve Verdadero o Falso).
#
Condición
simple
Resultado
Descripción
1
(A<50)
Verdadero
Se evalúa si variable A almacena un valor menor de 50. Como A vale 5, se
cumple esta condición y su resultado es Verdadero.
2
(A+1<=B)
Falso
Se calcula la expresión izquierda (A+1 = 5+1 = 6). Se compara valor resultante
(6) con valor de variable B (10), haciendo la pregunta: ¿Es 6 menor o igual que
10?
Resultado: Falso.
Introducción a la Programación
2 de 11
Guía # 03: Uso de estructuras condicionales
#
Condición
simple
Resultado
Descripción
Se compara el resultado de 2 expresiones, así:
1. calcula resultado de expresión izquierda: B*100 = (10)*100 = 1000
3
(B*100<>C+2)
2. calcula resultado de expresión derecha: C+2 = 999+2 = 1001
Verdadero
3. Se comparan ambos resultados anteriores con operador relacional (<>
diferente de), evaluando finalmente ¿ 1000 es diferente de 1001?
Resultado: Verdadero
Por otra parte, una Condición Compleja consta de 2 o mas condiciones simples (Cs), las cuales se evalúan entre si
por medio de los operadores lógicos/boléanos básicos and, or y not.
El listado de Operadores Relacionales y los operadores Lógicos/Boléanos utilizados en ambas herramientas de
software (PSeint y DFD) se muestran a continuación (ver Figura 2.A):
Operador relacional
en PSeint
Mayor que, Menor que
>
<
en DFD
>
Operador lógico
<
en PSeint
en DFD
Mayor o igual que
>=
>=
O lógico
|
OR
Menor o igual que
<=
<=
Y lógico
&
AND
=
=
Negación, No es
~
NOT
<>
!=
Igual que
Diferente que
Figura 2.A: Palabras y/o Símbolos reservados para implementar estructuras de Toma Decisiones
Una estructura Condicional en un Algoritmo se representa en Pseudocodigo y DFD así (ver Figura 2.1):
En Pseudocodigo…
En Diagrama de Flujo…
Si Condición Entonces
Bloque de acciones a
realizar_si_es_verdadero
Sino
Bloque de acciones a
realizar_si_es_falso
FinSi
Figura 2.1: Palabras y/o Símbolos reservados para implementar estructuras de Toma Decisiones
Introducción a la Programación
3 de 11
Guía # 03: Uso de estructuras condicionales
En Pseudocodigo…
En Diagrama de Flujo…
Según variable_numerica Hacer
opcion_1:
secuencia_de_acciones_1
opcion_2:
secuencia_de_acciones_2
opcion_N:
secuencia_de_acciones_N
Cualquier otro caso:
secuencia_de_acciones_dom
FinSegun
Figura 2.2: Palabras y Símbolos “reservados” para estructuras Selectivas
2.2 Estructuras Selectivas (EN CASO) en 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 desarrollan estos pasos:
a) Se compara el valor de una “variable clave” con un valor fijo diferente para cada Segmento.
b) Cuando se cumple una de las comparaciones de ambos valores (valor clave con el valor fijo) de un bloque
especifico, se ejecuta el segmento de pasos respectivo.
c) 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. Este último es opcional
Una Estructura Selectiva en un algoritmo se puede expresar tanto en Pseucodigo como Diagrama de Flujo tal
como se muestra en la Figura 2.2.
3. Estructuras de tomas de decisiones en aplicación PSeint
En el software PSeint existen 2 tipos de estructuras de control condicional de pasos de un Pseudocódigo.
Estructura Si-Entonces
Si expresion_logica Entonces
acciones_por_verdadero
Estructura Según-Hacer
Segun variable_numerica Hacer
opcion_1:
Sino
secuencia_de_acciones_1
opcion_2:
acciones_por_falso
FinSi
secuencia_de_acciones_2
De Otro Modo:
secuencia_de_acciones_dom
FinSegun
Figura 2.3: Sintaxis de estructuras condicionales en la aplicación PSeint
Introducción a la Programación
4 de 11
Guía # 03: Uso de estructuras condicionales
III. MATERIALES Y EQUIPO
Para la realización de la guía de práctica se requerirá lo siguiente:
No.
Requerimiento
Cantidad
1
Guía de Laboratorio #03 de IP
1
2
Disquete ó Memoria USB
1
3
Computadora con acceso a Internet
1
IV. PROCEDIMIENTO
PARTE A: Elaboración de algoritmos CONDICIONALES
1. Prepare una carpeta de trabajo denominada Practica3IP_SUCARNET para almacenar todos los archivos a
elaborar dentro del procedimiento de la práctica. Reemplazar SUCARNET por su número de carnet.
2. A continuación se le presenta el algoritmo solución (en pseudocodigo) del primer problema de tipo
Condicional (Ejemplo #1).
Ejemplo # 1
PROBLEMA A RESOLVER: Solicitar 2 números al usuario y mostrar si ambos números son iguales o indicar
cuál de ellos es mayor que el otro numero ingresado...
3. En la figura 2.4 se definen los pasos
generales de la solución a este
problema
en
forma
de
Pseudocódigo.
4. Ahora se procederá a crear los pasos
equivalentes al mismo en forma de
diagrama de flujo (con el software
DFD) y luego en pseudocódigo con
el programa PSeint.
Pseudocódigo
1. Inicio
2. declarar num1<-0, num2<-0
3. Imprimir "Ingrese Primer Numero"
4. Ingresar num1
5. Imprimir "Ingrese Segundo Numero"
6. Ingresar num2
7. Si (num1=num2) Entonces
8.
Imprimir "Ambos números son iguales"
9. Sino
10. Si (num1>num2) Entonces
11.
Imprimir num1," es Mayor que ", num2
12. Sino
13.
Imprimir num2," es Mayor que ", num1
14. Fin-Si
15.Fin-Si
16.Fin
Figura 2.4: Algoritmo de solución
del Ejemplo #1
Creando diagrama en DFD
5. Prepare un nuevo archivo en software DFD y comience a redactar la secuencia de simbolos equivalentes al
pseudocódigo de la Figura 2.4
6. El paso 2 del pseudocódigo se implementara en el diagrama de DFD con el símbolo Asignar.
En este símbolo, defina las 2 variables indicadas en este paso 2, con su valor especifico.
7. Guardar el archivo DFD en su carpeta de trabajo bajo el nombre Ejemplo01_DFD.dfd
Introducción a la Programación
5 de 11
Guía # 03: Uso de estructuras condicionales
8. Agregue los símbolos para redactar el rango de pasos 3 al paso 6 del pseudocodigo.
9. El paso 7 consiste en una estructura condicional (Si-Entonces-Sino).
10. Seleccione el símbolo (Decisión) y colocarlo justamente en la línea anterior al paso Fin hasta ahora.
• Se agrega una figura “rombo”, que divide/bifurca la ejecución secuencial del paso anterior del DFD en 2
caminos diferentes (ver la Figura 2.5), representados por las 2 líneas que salen de las puntas derecha (indicada
por si) e izquierda (indicada por no) del símbolo.
•
Ambas líneas regresan a un punto común (el cierre de la toma de decisión), para continuar hacia abajo con la
secuencia normal de pasos restantes.
Figura 2.5: estructura DFD para una toma de decisión
11. Dar doble clic en el símbolo del Rombo, para luego redactar ahí a la condición num1=num2 dada en el paso 7
del pseudocódigo.
12. Gracias al símbolo Decisión y la condición anterior, usted ya tiene definido en el diagrama de flujo a los pasos
7, 9 y 15 del pseudocódigo de la Figura 2.4.
13. En la línea vertical a la derecha del rombo (el Bloque Si), seleccione el símbolo apropiado para definir el paso
8 del pseudocódigo. Defina el contenido ahí indicado.
14. Ejecute la solución DFD y proceda a realizar las pruebas indicadas en la Tabla 1 (de Entradas-Salidas).
# prueba
Entradas
Salidas
1
Num1= 13 num2= 13
Mensaje Ambos números son iguales
2
Num1= 45 num2= 28
(ninguna salida)
3
Num1= 25 num2= 39
(ninguna salida)
Tabla 1: tabla Entradas-Salidas para pruebas de Ejemplo #1
15. Ahora permitirá agregar una condición para mostrar el mensaje apropiado para las pruebas 2 y 3 de la Tabla 1
(que aun no muestra respuesta alguna ante esas entradas).
16. Seleccione un nuevo símbolo Decisión y colóquelo en la línea vertical a la izquierda de la decisión ya existente
del DFD. Si lo ha hecho correctamente, se mostraran 2 decisiones (símbolos de “rombos”) consecutivas, como
en la Figura 2.6.
Introducción a la Programación
6 de 11
Guía # 03: Uso de estructuras condicionales
17. Se agregara un nuevo bloque de toma de
decisión, la cual será evaluada solamente si
la 1er decisión no se cumple.
18. Ingrese a los parámetros de esta nueva
decisión, para agregar la Condición dada en
el Paso 10.
19. Con mucho cuidado, agregue el Paso 11 y
Paso 13 del Pseudocódigo en los Bloque (Si)
y Bloque (No) de esta 2da Condición.
Figura 2.6: dos tomas de decisiones consecutivas
20. Ejecute nuevamente su DFD y pruébelo nuevamente con los datos de pruebas indicados en la Tabla 1.
Esta vez si debe obtener un mensaje de respuesta apropiado para cada grupo de pruebas!!
Creando pseudocódigo en PSeint
21. Ejecute la aplicación PSeint y guarde este nuevo archivo bajo el nombre Ejemplo01_Pseucodigo.pseint en
su carpeta de trabajo.
22. Asigne el nombre del proceso como CualNumeroEsMayor. Luego, haga lo necesario para expresar los Pasos del
2 al 6 del pseudocódigo con la sintaxis de PSeint.
23. Para agregar la toma de decisiones del Paso 7 del pseudocódigo en PSeint, agregar una línea en blanco luego
del paso 6.
Ubicar cursor en la Línea 7 y luego seleccionar el comando “Si-Entonces”.
24. Reemplace el parámetro expresión_logica por la condición a evaluar en Paso 7 del pseudocódigo.
25. En la Línea 8 del archivo PSeint, reemplace el parámetro acciones_por_verdadero para agregar el comando
necesario para redactar el Paso 8.
26. Luego, en la línea 10, reemplazara el parámetro acciones_por_falso por otra nueva decisión, seleccionando
nuevamente el comando Si-Entonces.
Se agregara una nueva secuencia de pasos para crear una toma de decisiones.
27. En la expresión lógica de la línea Si Entonces, defina la condición indicada en el Paso 10 del pseudocódigo.
28. Después, reemplace las Líneas 11 y 13 del archivo PSeint por la sintaxis necesaria para definir los Pasos 11 y
13 del pseudocódigo.
29. Si ha cumplido correctamente los pasos anteriores, su pseudocódigo equivalente en PSeint se debe mostrar
igual al de la figura 2.7.
30. Ejecute el archivo Pseint y pruébelo con los datos de entrada definidos en la Tabla 1. Confirme que cada
pareja de números de entrada, genera el mensaje de salida indicado en cada caso.
31. Ahora se describe el Problema propuesto para el segundo Ejemplo del procedimiento.
Introducción a la Programación
7 de 11
Guía # 03: Uso de estructuras condicionales
Figura 2.7: Pseudocódigo en PSeint, equivalente a la solución del Ejemplo 1
.
Ejemplo # 2
PROBLEMA A RESOLVER: Pida a usuario la edad y el sexo, para que la computadora le indique si ya puede
jubilarse. Tome en cuenta que un Hombre se puede jubilar cuando tenga 60 años o mas, en cambio, una mujer
mayor se jubilara si tiene mas de 54 años.
32. A continuación se muestran los pasos que conforman el pseudocodigo general que soluciona este problema:
Pseudocodigo
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
paso
1: Inicio
2: Asignar edad <- 0, sexo <- “n”
3: Escribir “Ingrese su Edad”
4: Ingresar edad
5: Imprimir "Sexo: Digite f (si es Mujer), m (si es Hombre): “
6: Ingresar sexo
7: Si ((sexo=’f’) Y (edad>=55)) Entonces
8:
Imprimir “ ** Puede Jubilarse ** ”
9: Sino
10:
Si ((sexo=’m’) Y (edad>=60)) Entonces
11:
Imprimir “ ** Puede Jubilarse **
”
12:
Sino
13:
Imprimir “ ** Aun no puede Jubilarse ** ”
14:
Fin Si
15: Fin Si
16: Fin
33. Basado en los pasos del Pseudocodigo general anterior, proceda a crear los archivos Ejemplo02_DFD.dfd
(con el software DFD) y Ejemplo02_Pseucodigo.pseint (con el software Pseint)
Introducción a la Programación
8 de 11
Guía # 03: Uso de estructuras condicionales
34. Tenga mucho cuidado de cumplir con la sintaxis de uso de cada uno de los diferentes operadores relacionales
y/o lógicos a utilizar en el pseudocódigo con los utilizados en ambas aplicaciones. Si no se recuerdan alguno
de ellos, consultar la introducción teorica de esta práctica!!
PARTE B: Elaboración de algoritmos SELECTIVOS en Software PSeint
35. Ahora se le propone un nuevo Problema, que se basa en estructuras selectivas (En Caso) para diseñar su
solución.
Ejemplo # 3
PROBLEMA A RESOLVER:
Permita a usuario elegir una figura geometrica especifica (Rectangulo, Triangulo o Circulo), para luego solicitar
los datos necesarios para calcular su area.
36. A continuación se le presenta los pasos del Pseudocodigo que resuelve el problema anterior bajo la sintaxis de
PSeint.
Observe al uso de la estructura selectiva Según-Hacer (en los Pasos 13, 14, 20, 26, 31 y 33) de la solución, que es
equivalente a una Estructura Selectiva General EnCaso de un algoritmo general.
Linea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Descripción
Proceso Ejemplo2
area<-0; //salidas
opc<-"sinletra"; //entradas
largo<-0; ancho<-0;
base<-0;altura<-0;
radio<-0;
valorpi<-4*ATAN(1); //de proceso, valor constante pi (3.1415926)
Escribir valorpi;
Escribir "Calculo de Areas de Figuras Geometricas";
Escribir "Figuras geometricas:”;
Escribir “A.Rectangulo, B.Triangulo, C.Circulo";
Escribir "indique la letra de la figura a calcular: ";
Leer opc;
Segun opc Hacer
"a":
//primera opcion
Escribir "Ingrese largo y luego el ancho de Rectangulo (en cm):";
Leer largo;
Leer ancho;
area<-largo*ancho;
Escribir "Area del rectangulo: ",area," cm cuadrados";
"b":
//2da alternativa
Escribir "Ingrese la base y luego la altura del Triangulo (en cm):";
Leer base;
Leer altura;
area<-base*altura/2;
Escribir "Area del triangulo: ",area," cm cuadrados";
"c":
//ultima alternativa
Escribir "Ingrese el radio del Circulo (en cm):";
Leer radio;
Introducción a la Programación
9 de 11
Guía # 03: Uso de estructuras condicionales
31
32
33
34
35
36
area<-valorpi*radio^2;
Escribir "Area del circulo: ",area," cm cuadrados";
Otro Modo: //cuando no se cumpla ninguna alternativa anterior
Escribir "Error, opcion no valida, fin del programa";
FinSegun
FinProceso
37. Cree un nuevo archivo de pseudocodigo en PSeint, llamado (Ejemplo03_Pseucodigo.pseint) y digite
c/paso del pseudocodigo anterior.
38. Observe el uso de la palabra ATAN en el paso de la línea 40. Esta es una de las “funciones” que utiliza PSeint
para realizar calculos especiales con los datos escritos en los paréntesis (). Active la ayuda de PSeint y busque
información sobre la función ATAN bajo el apartado (PSeudocodigo-Expresiones-Funciones)
39. Intente ejecutar el nuevo PSeudocodigo. En caso de presentar errores, corríjalos para poder continuar.
40. Pruebe su Pseudocodigo con cada una de las siguientes combinaciones de prueba indicados en la tabla
entradas-salidas a continuacion:
Entradas
#prueba
opc
largo
ancho
1
“a”
10
10
2
“b”
3
“c”
base
Salidas
altura
radio
area
100
20
18
180
6
113.097
PROBLEMAS A RESOLVER DURANTE LA PRÁCTICA:
1. Cree el diagrama de flujo en software DFD equivalente al pseudocódigo del Ejemplo #3 anterior.
Denominar a este nuevo archivo como (Guia02procedimiento1.dfd).
2. Resuelva el siguiente problema bajo ambas aplicaciones (DFD y PSeint) del siguiente problema.
Denominar a los archivos como Guia02procedimiento2.dfd y Guia02procedimiento2.pseint,
respectivamente.
Un Gerente Contable del Banco Bella Vista requiere un programa para ayudarle a realizar diversos cálculos
financieros sobre los Préstamos autorizados por su persona. Específicamente, necesita los siguientes 3 tipos de
cálculos sobre prestamos:
a) Determinar el Monto en concepto de Interés que se debe pagar por el préstamo de un Capital (C) durante un
total de años a una tasa de simple, la cual puede ser anual o trimestral.
b) Calcular el Monto total a pagar por un Capital base que se prestara por un total de n meses, con una de
interés (valida solo entre 2.5% hasta 14.7%) de interés compuesta mensual.
c) Determinar el tiempo (en meses) que debe transcurrir para que un capital semilla (C) se convierta en un capital
final, al cual se le aplicara una tasa de interés simple mensual.
Nota: en cualquiera de los cálculos a desarrollar, si usuario ingresa una tasa de interés no valida, se le
mostrara el siguiente mensaje “Tasa interés no valida” y se terminara la ejecución del algoritmo, sin
mostrar ningún resultado.
Introducción a la Programación
10 de 11
Guía # 03: Uso de estructuras condicionales
V. DISCUSION DE RESULTADOS
En parejas o tríos de estudiantes, crear los archivos de pseudocódigo (con la aplicación PSeint y diagramas de
flujo con software DFD) que solucionen a cada uno de los problemas a continuación:
PROBLEMAS A RESOLVER:
A. Como se podría determinar cuál es el menor valor de 3 números brindados por el usuario.
B. Determinar en ¿En que lugar exacto del plano cartesiano
X-Y está ubicado un par ordenado (x, y) introducido por
el usuario?
Tome en cuenta que el punto podría estar ubicado en un
Cuadrante especifico (I, II, III o IV) o sino, estar
localizado en el Origen o sino sobre uno de los ejes del
plano (Eje X negativo, Eje X positivo, o de manera
similar sobre el Eje Y). Ver ejemplos de ubicaciones en el
diagrama siguiente:
C. 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 final con descuento.
D. Ayude a un estudiante de electrónica a calcular el capacitor equivalente de una serie de 4 condensadores
diferentes (medida en micro-faradios). Considerar que los dispositivos pueden estar conectadas en serie o en
paralelo.
Introducción a la Programación
11 de 11
Descargar