estructuras selectivas.docx

15
Unidad II: Estructuras Algoritmicas Selectivas Objetivo Aplicar las estructuras de control selectivas en la solución de problemas de índole lógico que requieren puntos de decisión algorítmicos, dado diferentes alternativas para una única situación. 2.1 Estructuras de Condicionales Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que, en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen dos tipos básicos, las simples y las múltiples. 2.1.1 Simples Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma: Si <condición> entonces Acción(es) Fin-si 1

Upload: wilfredo-meneses

Post on 23-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Unidad II: Estructuras Algoritmicas Selectivas

Objetivo

Aplicar las estructuras de control selectivas en la solución de problemas de índole lógico que requieren puntos de decisión algorítmicos, dado diferentes alternativas para una única situación.

2.1 Estructuras de Condicionales

Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que, en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen dos tipos básicos, las simples y las múltiples.

2.1.1 Simples

Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Si <condición> entoncesAcción(es)

Fin-si

Ejemplo

Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 8.Inicio

1

Leer (cal)Si cal > 8 entonces

Escribir (“aprobado”)Fin_si

Fin

2.1.2. Dobles

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

Si <condición> entonces

Acción(es)Fin-entonces

SinoAcción(es)

Fin-si

Donde:Si ………………… Indica el comando de comparaciónCondición………… Indica la condición a evaluarentonces……..…… Precede a las acciones a realizar cuando se cumple la condiciónacción(es)………… Son las acciones a realizar cuando se cumple o no la condiciónsino……………… Precede a las acciones a realizar cuando no se cumple la condición

Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o mas acciones.

2

Ejemplo

Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 8 y “Reprobado” en caso contrario.

InicioLeer (cal)Si cal > 8 entonces

Escribir (“aprobado”)Sino

Escribir (“reprobado”)Fin_si

Fin

3

2.1.3 Múltiples

Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente:

LEER (variable)CON-SELECCIÓN (VARIABLE) HACER

CASO constante1: Sentencias ROMPER

CASO constante2: Sentencias ROMPER

CASO constanteN: Sentencias ROMPER

OTROS CASOS: Sentencias

FIN-SELECCIÓN

La estructura de selección múltiple sólo compara por igualdad el valor de la variable con cada una de las constantes de cada caso. Al encontrar una coincidencia comienza a ejecutar las sentencias en forma secuencial hasta encontrar el fin de la estructura o una instrucción que rompa la misma.

No puede haber 2 casos con el mismo valor en la constante.Sólo se pueden utilizar variables de tipo carácter o enteras.

4

Si la variable que se está seleccionando es de tipo carácter, las constantes de tipo carácter se colocan entre comillas simples o apóstrofes, para el caso de variables de tipo enteras, las constantes numéricas se colocan directamente.Puede contener casos vacíos.

Ejemplo

Diseñar un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente función:

PROFUNDIZANDO LO APRENDIDO

Para entender aún más el funcionamiento de las estructuras de control, es recomendable ver los siguientes videos:

1) Estructuras algorítmicas (Parte 1) Página

5

Enlace: http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3114

2) Estructuras algorítmicas (Parte 2)

Enlace: http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3115

3) Estructuras algorítmicas selectivas 

Enlace: http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3116

2.1.4 Uso de estructuras selectivas

Razonemos a partir de un ejemplo. Realizar un algoritmo que permita ingresar un número e informe “Número mayor a cero” o “Número menor o igual a cero” según corresponda.

Análisis del problema. El algoritmo deberá:1. Leer el número que ingresa el usuario2. Seleccionar mediante una condición si ese numero es o no mayor a cero3. Informar con una de las leyendas enunciadas

Desarrollo del algoritmo en pseudocódigo

INICIO{ declaro las variables a utilizar}NUMERO{ Ingreso de datos}MOSTRAR (“Ingrese un número:”)LEER (NUMERO){ Proceso de selección}SI ( NUMERO > 0)

ENTONCESMOSTRAR(“Número mayor a cero”)

FIN-ENTONCESSINO

MOSTRAR(“Número menor o igual a cero”)FIN-SI

FIN

6

APLICANDO LO APRENDIDO

A continuación se presentan una serie de problemas con sus respectivas soluciones a través de pseudocódigo, usted podrá completar esta práctica creando el flujograma de cada algoritmo y la tabla de corrida correspondiente.

Problemas Condicionales

Problemas Selectivos Simples

1) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobará si su promedio de tres calificaciones es mayor o igual a 7; reprueba en caso contrario.

INICIO Leer ( nota1 ) Leer ( nota2 ) Leer ( nota3 )

prom nota1 +nota2 + nota3 )/3 Si ( prom >= 7 )

entoncesMostrar ( “alumno aprobado” )

Fin-entoncessi no

Mostrar ( “alumno reprobado” ) Fin-siFIN

2) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000 ¿ Cuál será la cantidad que pagará una persona por su compra?

INICIO Leer ( compra ) Si ( compra > 1000 )

entonces desc compra * 0.20 fin-entonces

si nodesc 0

fin-si tot_pag compra - desc Mostrar ( tot_pag )FIN

7

3) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera: Si trabaja 40 horas o menos se le paga $16 por hora Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por

cada hora extra.

INICIO Leer (horas-trab ) Si ( horas-trab > 40 )

entonces horas-extras horas-trab - 40

salario-sem horas-extras * 20 + 40 * 16fin-entoncessi no

salario-sem horas-trab * 16 Fin-si Mostrar ( salario-sem )Fin

4) Que lea dos números y los imprima en forma ascendente

INICIO Leer ( num1 ) Leer ( num2 )

Si ( num1 < num2 ) entonces

Mostrar ( num1, num2 )Fin-entoncessi no

Mostrar ( num2, num1 ) fin-siFIN

5) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas un descuento del 10%

INICIO Leer ( num_camisas )

Leer ( prec ) tot_comp num_camisas * prec Si ( num_camisas > = 3 )

entonces

8

tot_pag tot_comp - tot_comp * 0.20fin-entoncessi no

tot_pag tot_comp - tot_comp * 0.10 fin-si Mostrar ( tot_pag )FIN

Aplicando lo aprendido

Ha llegado el momento de aplicar los conocimientos adquiridos acerca de as estructuras selectivas simples y dobles. A continuación se propone una serie de ejercicios que deberá resolver, para tal caso le recomiendo leer este material cuantas veces lo estime conveniente y utilizarlo como un referente para obtener las respuesta correctas y sobretodo afianzar de manera práctica el tema estudiado

Resuelva los siguientes ejercicios propuestos

1. Crear un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe aparecerá un mensaje indicándolo.

2. Dado un monto calcular el descuento considerando que por encima de 100 el descuento es el 10% y por debajo de 100 el descuento es el 2%.

3. Crear un algoritmo que pida un número del 1 al 5 y diga si es primo o no.

4. Crear un algoritmo que pida un número y diga si es par o impar.

5. Dado el tiempo en horas (hh), diseña un programa que haga la conversión a su equivalente en minutos (mm) y segundos (ss). Si el tiempo leído es negativo el programa no hará nada en caso contrario se hará la conversión.

6. Dado un número entero determina si es divisible entre dos, tres y cinco. En cada caso se deberá de enviar un mensaje indicando este hecho.

7. Cree un algoritmo para determinar si un número dado es divisible por otro.

8. Dado un numero introducido por el usuario determina si es nulo, par o impar.

9. Dados dos números diseña un programa que haga lo siguiente: Si ambos números son iguales el programa deberá enviar un mensaje adecuado indicando este hecho, en cualquier otro caso se determinará el mayor.

9

10.Dados tres números diferentes A, B y C determine cual es el mayor

11.A un trabajador le paga según sus horas y una tarifa de pago por horas. Si la cantidad de horas trabajadas es mayor a 40 horas la tarifa se incrementa en un 50% para las horas extras. Calcular el salario del trabajador dadas las horas trabajadas y la tarifa.

Problemas Selectivos Compuestos

Para entender más a fondo este tipo de problemas y su solución algorítmica, es recomendable ver un video disponible en el aula virtual que explica situaciones en las que se hace necesario incluir condiciones dentro de otras condiciones (condiciones anidadas):

Estructuras condicionales compuestas

Enlace:http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3117

Ahora si podemos ver una serie de ejercicios resueltos que muestran propuestas de solución utilizado estructuras selectivas compuestas:

1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.

INICIO Leer ( num1 ) Leer ( num2 ) si ( num1 = num2 )

entoncesresul num1 * num2

fin-entoncessi no

si ( num1 > num2 ) entonces

resul num1 - num2fin-entonces

si noresul num1 + num2

fin-si fin-siFIN

10

2) Leer tres números diferentes e imprimir el número mayor de los tres.

INICIO Leer ( num1 ) Leer ( num2 ) Leer ( num3 )

Si ( (num1 > num2) and (num1 > num3) ) entonces

mayor num1FIN-entoncessi no

Si ( (num2 > num1) and (num2 > num3) ) entonces

mayor num2fin-entoncessi no

mayor num3fin-si

fin-si Mostrar ( mayor )FIN

Aplicando lo aprendido

Ha llegado el momento de aplicar los conocimientos adquiridos acerca de as estructuras selectivas compuestas o anidadas. A continuación se propone una serie de ejercicios que deberá resolver, para tal caso le recomiendo leer este material cuantas veces lo estime conveniente y utilizarlo como un referente para obtener las respuesta correctas y sobretodo afianzar de manera práctica el tema estudiado

Resuelva los siguientes ejercicios propuestos

11

2) Diseñe un algoritmo que lea el importe de la compra y la cantidad recibida y calcule el cambio a devolver, teniendo en cuenta que el número de monedas que se devuelven debe ser mínimo. Suponer que el sistema monetario utilizado consta de monedas de 100, 50, 25, 5 y 1 unidad, y que hay capacidad ilimitada de monedas.

3) Escriba un algoritmo que lea tres números enteros de un supuesto triángulo, determine si realmente forman un triángulo, y muestre el tipo de triángulo que es (si es un triángulo). a) triángulo: La suma de dos cualesquiera de los lados debe ser mayor que el otro. b) equilátero: todos los lados son iguales. c) isósceles: solo dos lados son iguales. d) escaleno: no tiene dos lados iguales.

Más allá de lo aprendido

Para completar esta temática se sugiere la diagramación de los ejercicios resueltos en esta unidad haciendo uso del software DFD disponible en el aula virtual para su respectiva descarga con un video de explicación.

Cómo descargar y usar DFDEnlace:http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3102

Decargar DFD (Software para crear Algoritmos)Enlace: http://www.ingenieriarivas.net/aulavirtual/mod/url/view.php?id=3101

12