Estructuras selectivas

12
1 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 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

description

Estructuras Selectivas

Transcript of Estructuras selectivas

  • 1

    Unidad II: Estructuras Algoritmicas Selectivas

    Objetivo

    Aplicar las estructuras de control selectivas en la solucin de problemas de ndole lgico que requieren puntos de decisin algortmicos, dado diferentes alternativas para una nica situacin.

    2.1 Estructuras de Condicionales

    Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que, en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. Existen dos tipos bsicos, las simples y las mltiples.

    2.1.1 Simples Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas tomas de decisin tienen la siguiente forma: Si entonces Accin(es) Fin-si

    Ejemplo Construir un algoritmo tal, que dado como dato la calificacin de un alumno en un examen, escriba Aprobado en caso que esa calificacin fuese mayor que 8. Inicio

  • 2

    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 funcin del cumplimiento o no de una determinada condicin. Se representa de la siguiente forma: Si

    entonces Accin(es) Fin-entonces Sino Accin(es) Fin-si Donde: Si Indica el comando de comparacin Condicin Indica la condicin a evaluar entonces.. Precede a las acciones a realizar cuando se cumple la condicin accin(es) Son las acciones a realizar cuando se cumple o no la condicin sino Precede a las acciones a realizar cuando no se cumple la condicin Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o mas acciones.

  • 3

    Ejemplo Construir un algoritmo tal, que dado como dato la calificacin de un alumno en un examen, escriba Aprobado en caso que esa calificacin fuese mayor que 8 y Reprobado en caso contrario. Inicio Leer (cal) Si cal > 8 entonces Escribir (aprobado) Sino Escribir (reprobado) Fin_si Fin

  • 4

    2.1.3 Mltiples Las estructuras de comparacin mltiples, son tomas de decisin especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma comn es la siguiente: LEER (variable) CON-SELECCIN (VARIABLE) HACER CASO constante1: Sentencias

    ROMPER CASO constante2: Sentencias

    ROMPER CASO constanteN: Sentencias

    ROMPER OTROS CASOS: Sentencias FIN-SELECCIN

    La estructura de seleccin mltiple slo 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 instruccin que rompa la misma.

    No puede haber 2 casos con el mismo valor en la constante. Slo se pueden utilizar variables de tipo carcter o enteras.

  • 5

    Si la variable que se est seleccionando es de tipo carcter, las constantes de tipo carcter se colocan entre comillas simples o apstrofes, para el caso de variables de tipo enteras, las constantes numricas se colocan directamente. Puede contener casos vacos.

    Ejemplo Disear un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente funcin:

    PROFUNDIZANDO LO APRENDIDO Para entender an ms el funcionamiento de las estructuras de control, es recomendable ver los siguientes videos: 1) Estructuras algortmicas (Parte 1) Pgina

  • 6

    Enlace: http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3114 2) Estructuras algortmicas (Parte 2) Enlace: http://www.ingenieriarivas.net/aulavirtual/mod/page/view.php?id=3115 3) Estructuras algortmicas 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 nmero e informe Nmero mayor a cero o Nmero menor o igual a cero segn corresponda. Anlisis del problema. El algoritmo deber:

    1. Leer el nmero que ingresa el usuario 2. Seleccionar mediante una condicin si ese numero es o no mayor a cero 3. Informar con una de las leyendas enunciadas

    Desarrollo del algoritmo en pseudocdigo INICIO { declaro las variables a utilizar} NUMERO { Ingreso de datos} MOSTRAR (Ingrese un nmero:) LEER (NUMERO) { Proceso de seleccin} SI ( NUMERO > 0) ENTONCES MOSTRAR(Nmero mayor a cero) FIN-ENTONCES SINO MOSTRAR(Nmero menor o igual a cero) FIN-SI FIN

  • 7

    APLICANDO LO APRENDIDO

    A continuacin se presentan una serie de problemas con sus respectivas soluciones a travs de pseudocdigo, usted podr completar esta prctica 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 )

    entonces Mostrar ( alumno aprobado ) Fin-entonces

    si no Mostrar ( alumno reprobado ) Fin-si FIN 2) En un almacn se hace un 20% de descuento a los clientes cuya compra supere los $1000 Cul ser la cantidad que pagar una persona por su compra?

    INICIO Leer ( compra ) Si ( compra > 1000 )

    entonces desc compra * 0.20 fin-entonces

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

  • 8

    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 ms 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 * 16 fin-entonces si no

    salario-sem horas-trab * 16 Fin-si Mostrar ( salario-sem ) Fin 4) Que lea dos nmeros y los imprima en forma ascendente

    INICIO Leer ( num1 )

    Leer ( num2 ) Si ( num1 < num2 )

    entonces Mostrar ( num1, num2 ) Fin-entonces

    si no Mostrar ( num2, num1 ) fin-si FIN 5) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o ms 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 )

  • 9

    entonces tot_pag tot_comp - tot_comp * 0.20 fin-entonces

    si 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 continuacin 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 prctica 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 indicndolo.

    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 nmero del 1 al 5 y diga si es primo o no.

    4. Crear un algoritmo que pida un nmero y diga si es par o impar. 5. Dado el tiempo en horas (hh), disea un programa que haga la conversin a su equivalente en

    minutos (mm) y segundos (ss). Si el tiempo ledo es negativo el programa no har nada en caso contrario se har la conversin.

    6. Dado un nmero 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 nmero dado es divisible por otro. 8. Dado un numero introducido por el usuario determina si es nulo, par o impar.

    9. Dados dos nmeros disea un programa que haga lo siguiente:

  • 10

    Si ambos nmeros son iguales el programa deber enviar un mensaje adecuado indicando este hecho, en cualquier otro caso se determinar el mayor.

    10. Dados tres nmeros diferentes A, B y C determine cual es el mayor 11. A un trabajador le paga segn 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 ms a fondo este tipo de problemas y su solucin algortmica, 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 solucin utilizado estructuras selectivas compuestas: 1) Leer 2 nmeros; 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 )

    entonces resul num1 * num2 fin-entonces

    si no si ( num1 > num2 )

    entonces resul num1 - num2 fin-entonces

    si no resul num1 + num2

    fin-si

  • 11

    fin-si FIN 2) Leer tres nmeros diferentes e imprimir el nmero mayor de los tres. INICIO Leer ( num1 )

    Leer ( num2 ) Leer ( num3 )

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

    entonces mayor num1 FIN-entonces

    si no Si ( (num2 > num1) and (num2 > num3) )

    entonces mayor num2 fin-entonces

    si no mayor num3

    fin-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 continuacin 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 prctica el tema estudiado Resuelva los siguientes ejercicios propuestos

  • 12

    2) Disee un algoritmo que lea el importe de la compra y la cantidad recibida y calcule el cambio a devolver, teniendo en cuenta que el nmero de monedas que se devuelven debe ser mnimo. 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 nmeros enteros de un supuesto tringulo, determine si realmente forman un tringulo, y muestre el tipo de tringulo que es (si es un tringulo). a) tringulo: La suma de dos cualesquiera de los lados debe ser mayor que el otro. b) equiltero: todos los lados son iguales. c) issceles: solo dos lados son iguales. d) escaleno: no tiene dos lados iguales. Ms all de lo aprendido Para completar esta temtica se sugiere la diagramacin 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 explicacin.

    Cmo descargar y usar DFD Enlace: 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