Está en la página 1de 18

Unidad 4

Estructuras de Decisin

Estructura selectiva
En programacin, al realizar alguna actividad, nuestro programa debe ser capaz de elegir uno u otro camino, a seguir dependiendo del valor de alguna condicin evaluada. Para ello C, dispone de tres tipos de 3 tipos de estructuras selectivas, la cuales son: Estructura Selectiva Simple Estructura Selectiva Doble Estructura Selectiva Mltiple

ESTRUCTURA SELECTIVA SIMPLE


Se evala una condicin, de ser cierta efecta una accin, de lo contrario, contina con la ejecucin normal del programa. Su sintaxis es la siguiente: 1. If(condicin) Accin; 2. If (condicin) { Accin 1; Accin 2; } Donde: Condicin: Es una expresin lgica que es evaluada por el compilador Accin: Es la Accin o Acciones que realizar el programa de resultar cierta la condicin NOTA: Si son varias acciones, estas deben ir dentro de llaves {}, para indicarle al compilador que son un solo bloque de acciones que deben ejecutarse

Cont
1 Ejemplo 2.1: En una tienda se venden artculos de primera necesidad, a los cuales se les aplica un descuento del 20%, de la compra total, si esta es igual o mayor a $200. Disee un programa en C, que a partir del importe total de la compra muestre lo que debe pagar el cliente. 2 Prctica: Determinar si un alumno aprob un curso a partir del promedio que obtuvo en tres parciales que se hicieron durante el semestre.

ESTRUCTURA SELECTIVA DOBLE


Se caracteriza por el hecho que ofrece dos caminos a seguir, dependiendo si al evaluar la condicin resulta cierta o falsa. Su sintaxis es la siguiente: 1. if(Condicin) Accin 1; Funciona, de la siguiente manera si else condicin, al evaluarla resulta cierta, Accin 2; realiza la accin 1. de lo contrario, es decir; si al evaluar la condicin resulta 2. falsa, realiza la accin 2. Cuando if(Condicin) tenemos ms de una sentencia por { ejecutar ya sea del lado del cierto o Accin 1; del falso, estas van dentro de llaves. Accin 2; } Else { Accin 3; Accin 4; }

Cont..
3 Ejemplo 3: Se desea saber si un nmero es par o impar. Disee un programa en el cual el usuario, ingrese el nmero y el programa muestre con un mensaje, si ste es par o no. 4 Prctica: Disee un programa, que dada la nota de alumno, imprima en la pantalla un comentario sobre esa nota. El criterio para los comentarios es el siguiente: Si nota es mayor o igual a 90 "Excelente" Si nota es mayor o igual a 80"Muy Bueno" Si nota es mayor o igual a 70 "Bueno" Si nota es mayor o igual a 60Necesitas Mejorar" Si nota es menor que 60 Te veo en el siguiente curso

Estructura selectiva doble anidada


Es aquella estructura que dentro del alcance de una condicin tiene otra condicin, es decir dentro de un if-else se encuentra otro if-else. Cada condicin ser evaluada en el orden en el que va apareciendo: si la condicin1 es verdad se ejecuta la primera instruccin ya no se revisan las dems condiciones, de lo contrario se evala la siguiente condicin, la condicin 2 y si esta es verdadera realizar su instruccin y as sucesivamente. El else final que contiene la ltima instruccin ser ejecutado si ninguna de las condiciones anteriores fue verdadera. if(Condicin 1) Accin 1; else if(Condicin 2) Accin 2; else Accin 3;

Cont..
5 Ejemplo 4: Indicar si el nmero ledo es positivo, negativo o cero. 6 Ejemplo 4.1: Determinar que tipo de tringulo se tiene.

7 Prctica: Leer dos nmeros y si son iguales multiplicarlos, si el primero es mayor que el segundo, que se resten; si el primero es menor que el segundo, que se sumen.

Cont
8 TAREA: Dada el peso, la altura y el sexo, de unos estudiantes. Determinar la cantidad de vitaminas que deben consumir estos estudiantes, en base al siguiente criterio: >> Si son varones, y su estatura es mayor a 1.60, y su peso es mayor o igual a 70Kg., su dosis, sern: 20% de la estatura y 80% de su peso. De lo contrario, la dosis ser la siguiente: 30% de la estatura y 70% de su peso. >> Si son mujeres, y su estatura es mayor de a 1.50 m y su peso es mayor o igual a 60kg., su dosis ser: 25% de la estatura y 75% de su peso. De lo contrario, la dosis ser: 35% de la estatura y 65% de su peso. La dosis debe ser expresada en gramos

Estructura de seleccin mltiple


Como su nombre lo indica, permite seleccionar entre varios caminos para llegar al final. En este caso se pueden elegir un camino o accin a ejecutar de entre varios posibles que se debe de evaluar, llamada selector. Sintaxis: switch(selector) { En donde: case Etiqueta A: Selector: Variables, expresiones simples de tipo Accin A; ordinal, (enteros y caracteres int y char) break; Etiqueta: Tiene que ser del mismo tipo de datos case Etiqueta B: de selecto. Estas deber ser constantes nicas y Accin B; diferentes de otras. break; Excepcin: Es opcional case Etiqueta n: Accin n; break; default: Excepcin; break; }

Cont
9 Ejemplo 5 : Disee un programa en C, que dado un nmero del 1 al 3, muestre en pantalla con letras, el mismo nmero. 10 Ejemplo 5.1: Indicar un da de la semana y que el programa escriba el nmero de da que le corresponde. 11 Tarea: En un cine se exhiben, pelculas para mayores de edad, disee un programa que dada la edad, indique si la persona puede o no ver la pelcula. 12 Se procesan las notas de 5, alumnos, de las cuales se desea saber cual es el promedio de esas 5 notas, y cual fue la nota mayor y menor, adems de imprimir al final el nombre y la nota de cada alumno en forma de tabla. 13 En un estacionamiento, se cobra de la siguiente manera: los primeros 10 minutos son gratis, los siguientes 30 minutos tiene un valor de $8 y la hora $16. disee un programa que reciba tanto minutos como horas y muestre lo que debe pagar el cliente. Tomando en cuenta que si es Martes y Sbado se hace un descuento del 5% sobre el monto total.

Ciclos
Es muy comn encontrar en los programas operaciones que se deben ejecutar un nmero repetido de veces en perodos ms o menos espaciados. Si bien las instrucciones son las mismas, los datos sobre los que operan varan. Para repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a los cuales se les conoce con el nombre de estructura repetitiva, estructura iterativa, lazo o bucle En C, podemos encontrar tres tipos de ciclos: Entrada Asegurada (while) Ciclo Controlado Por Contador (for) Hacer Mientras (do.. while)

Estructura repetitiva while


Funciona de la siguiente manera: primero evala la condicin, si da como resultado cierta, realiza la accin, luego vuelve a evaluar la condicin, si su resultado es falso, se sale del ciclo y contina con la ejecucin del programa. La sintaxis es la siguiente: expresion 1; while(expresion 2) { instruccin 1; expresion 3; } 14 Ejemplo 7: Se desea conocer el promedio de los nmeros mayores que cero, en una serie de nmeros ingresados por el usuario. De los cuales no se sabe la cantidad, haciendo uso de una bandera, disee un programa en el cual el usuario ingrese los nmeros que desee. (Bandera:Las variables tipo bandera son aquellas que slo admiten dos valores: cierto o falso, true o false, hombre o mujer.. Etc])

Cont
Prctica: 151. Disee un Programa que imprima los primeros 10 nmeros.

16 2. Hacer la prctica de la tabla de multiplicar ahora haciendo uso de la estructura de control While.

Estructura repetitiva for


En algunas ocasiones, sabemos a ciencia cierta el nmero de veces que se tiene que repetir una misma accin o bloque de acciones. Y para ello es que nos sirve, esta estructura. Su sintaxis es la siguiente: for( valor inicial; condicin; incremento) accion; Donde: Valor inicial: es el valor con el cual inicializamos nuestra variable de control. Condicin: si la cumple, ejecuta la accin o acciones e incrementa o decrementa la variable de control, sino la cumple la condicin, se sale del ciclo. Incremento: que puede ser positivo o negativo (decremento). 17 Ejemplo 9: Disee un programa que imprima los primeros 10 nmeros 18 Ejemplo 10: Disee un programa en C, que calcule las compras totales, realizadas por un grupo de 10 amas de casa. Luego con esa informacin obtenga la

Cont
Prctica: 19 En un cine, se tienen 3 diferentes clases de boletos. Se pide que disee un programa en el cual: se lea el precio de las 3 clase de boletos Se lea el numero de boletos vendidos de cada tipo Calcular cual boleto es el que se vendi menos El total recaudado en taquilla Adems se sabe que durante el da se realizaron un total de n ventas

Ciclo Do... while


Este ciclo funciona de la siguiente manera, realiza la accin o conjunto de acciones, luego evala una condicin de resultar cierta vuelve a realizar la/s accion/es. Cuando sea falsa, se sale del ciclo. Formato : do { sentencia; . } while(<expL>); La diferencia fundamental, entre el ciclo while y do...while, es que en este ultimo, las sentencias se realizarn por lo menos una vez, en cambio, con while, solo se cumplirn mientras se cumpla la condicin, lo cual puede ser nunca. 20 Ejemplo 12: Programa que determina si un ao es bisiesto o no. Y un ao es bisiesto si es mltiplo de cuatro, pero excluyendo aquellos que son mltiplos de 100 pero no de 400

Tarea
21Muestre un programa en c, que imprima en pantalla los nmeros desde un valor inicial, hasta un valor final, ingresados por el usuario, tanto en forma descendente como ascendente. 22Si en un pas hubieron elecciones para elegir al presidente. El pas consta de 7 provincias o regiones, de las cuales se han levantado actas que contiene el total de votos obtenidos por los 4 partidos polticos en dicha regin. Disee un programa en c, que lea las actas de las 7 provincias, muestre que partido gan las elecciones y en caso de empate, lo especifique con un mensaje. 23En un supermercado, hay 3 departamentos (de ropa, comestibles y perfumera), en lo cuales se realizan un descuento de 5%, 3.5% y 8% respectivamente, por las compras totales mayores de $100.00. disee un programa que dado el monto de la compra, realice los descuentos pertinentes por departamento, le indique al usuario a cuanto asciende su nuevo monto e indique, cuanto fue lo recaudado al final del da. 24Una compaa de telfonos, cobra $0.03 por minuto la llamada nacional local, $0.06 por la llamada de larga distancia nacional y $0.10 la llamada de larga distancia internacional. Disee un programa que calcule las facturas mensuales de los clientes, sabiendo que, si las llamadas fueron realizadas por la maana tienen un doble valor, y si los 10 primeros minutos de llamadas locales son gratis, en cualquier horario.