Fecha de efectividad: Septiembre de 2013 UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio PROGRAMA EDUCATIVO LSC 2009-2 PRÁCTICA No. 6 PLAN DE ESTUDIO LABORATORIO DE NOMBRE DE LA PRÁCTICA CLAVE DE UNIDAD DE APRENDIZAJE 11290 NOMBRE DE LA UNIDAD DE APRENDIZAJE Introducción a la Programación DURACIÓN (HORAS) Licenciado en Sistemas Computacionales Decisiones anidadas 2 1. INTRODUCCIÓN La utilización de decisiones sencillas son muy útiles, sin embargo en ocasiones es necesario utilizar decisiones anidadas ya que podemos encontrarnos con situaciones problemáticas donde las acciones a ejecutar dependen de una o varias condiciones lo cual nos permitirá llegar a la solución de una manera óptima. 2. OBJETIVO (COMPETENCIA) El alumno elaborará programas de cómputo utilizando decisiones anidadas para solucionar problemas con una actitud analítica y creativa, resolviéndolos de manera previa por medio de diagramas de flujo. 3. FUNDAMENTO Es común que en los programas, las acciones que se toman dependen de que una o varias condiciones se cumplan, inclusive una condición puede a su vez contener otras condiciones, cuando esto sucede estamos frente a un problema de decisiones anidadas. En C se puede manejar la estructura if, o if-else para la toma de decisiones. Esta estructura puede anidar una similar o diferente, es decir una estructura if puede anidar a otra estructura if construyendo de este modo estructuras de decisiones anidadas. Un if anidado es una estructura if que es objeto de otra estructura if. Cuando tenemos if anidados, resulta problemático identificar a que if corresponde cada else. Las siguientes reglas solucionan el problema: • Un else está enlazado con el if más cercano que no tenga ya una sentencia else asociada. Formuló Revisó LSC. Natalia Rodríguez Castellón I.C. Julia Corrales I.C. Josefina Mariscal Camacho Nombre y Firma del Maestro Nombre y Firma del Responsable de Programa Educativo Autorizó Dr. David I. Rosas Almeida Nombre y Firma del Director / Representante de la Dirección Código: GC-N4-017 Revisión: 4 Página 1 de 5 Fecha de efectividad: UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio • Cuando se usan llaves se elude la asociación normal, y el else que esta después de un bloque encerrado entre llaves { } estará asociado con el if colocado antes de la llave que indica el inicio del bloque. Ejemplo 1: if (a==0) if (b!=3) sentencia1... else sentencia2... Ejemplo 2: if(a==0) { if(b!=3) sentencia1 } else sentencia2 En el ejemplo 1 el else está asociado con la condición if(b!=3), en el ejemplo 2 está asociado con la condición if(a==0). La escalera if-else-if Una construcción común en programación es la escalera if-else-if que se ve de la siguiente forma: if (condición) sentencia1; else if (condición) sentencia2; else if (condición) sentencia3; else if (condición) sentencia4; else sentencia5; La computadora evalúa las expresiones condicionales iniciando con la primera, y continuando con la siguiente en forma descendente hasta encontrar una condición verdadera, en cuyo caso la computadora ejecuta la sentencia asociada a esta condición y salta el resto de la escalera, si ninguna condición es verdadera se ejecutará la sentencia asociada con el else final. Si todas las condiciones son falsas y no hay else final, no hace nada. Código: GC-N4-017 Revisión: 4 Página 2 de 5 Fecha de efectividad: UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio Ejemplo: Un restaurante ofrece el siguiente menú, con los siguientes costos por platillo: 1.- Carne en su Jugo 89.60 2.- Hígado encebollado 60.25 Adicionalmente el cliente puede elegir uno de los siguientes postres, por los cuales se agregará al costo del platillo las cantidades que se indican: 1) Flan 5.00 2) Gelatina 3.50 3) No desea postre (el cliente pagará 10.00 pesos menos por su platillo). El programa deberá pedir la información referente al platillo y al postre, a través de un menú y al final mostrará un mensaje con el monto que el cliente deberá pagar. El siguiente programa soluciona el problema anterior con estructuras if anidadas. #include <stdio.h> void main() { int platillo,postre; float costo=0.0; printf("\n\nQue platillo desea el cliente\n"); printf(" 1)Carne en su Jugo ó 2)Hígado encebollado\n"); printf("Proporcione la Opción (1 ó 2): [ ]\b\b"); scanf("%d",&platillo); if(platillo==1) { printf("\nSeleccione postre\n"); printf("1-Flan, 2-Gelatina 3-No desea postre)\n"); printf("Proporcione la Opción (1,2 ó 3): [ ]\b\b"); scanf("%d",&postre); if (postre==1) costo=89.60+5.00; else if (postre==2) costo=89.60+3.50; else if (postre==3) costo=89.60-10.00; else printf("\nExiste un error en la selección del postre\n"); } else if(platillo==2) { printf("\nSeleccione postre\n"); printf("Proporcione la Opción (1,2 ó 3): [ ]\b\b"); scanf("%d",&postre); Código: GC-N4-017 Revisión: 4 Página 3 de 5 Fecha de efectividad: UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio if (postre==1) costo=60.25+5.00; if (postre==2) costo=60.25+3.50; if (postre==3) costo=60.25-10.00; } else printf("Error en la seleccion del platillo\n"); printf("\nEl total a pagar es %.2f \n",costo); } 4. PROCEDIMIENTO (DESCRIPCIÓN) A) EQUIPO NECESARIO MATERIAL DE APOYO computadora con Linux instalado Practica impresa y leída B) DESARROLLO DE LA PRÁCTICA Resolver el ejercicio que le indique su maestro, realizar el diagrama de flujo y programa : 1.- Solicitar el número de día y el número de mes, desplegar a cual signo zodiacal pertenece, tomando en cuenta la siguiente tabla : FECHA DE INICIO 20 DE ENERO 19 DE FEBRERO 21 DE MARZO 21 DE ABRIL 21 DE MAYO 21 DE JUNIO 21 DE JULIO 22 DE AGOSTO 23 DE SEPTIEMBRE 23 DE OCTUBRE 23 DE NOVIEMBRE 21 DE DICIEMBRE FECHA FINAL 18 DE FEBRERO 20 DE MARZO 20 DE ABRIL 20 DE MAYO 20 DE JUNIO 20 DE JULIO 21 DE AGOSTO 22 DE SEPTIEMBRE 22 DE OCTUBRE 22 DE NOVIEMBRE 20 DE DICIEMBRE 19 DE ENERO SIGNO ACUARIO PISCIS ARIES TAURO GEMINIS CANCER LEO VIRGO LIBRA ESCORPION SAGITARIO CAPRICORNIO 2.- La empresa “X”, s.a. de c.v. está solicitando empleados , en un departamento solicitan personal de sexo femenino y de una edad no mayor a los 50 años pero no menor de 18 y además que tenga secundaria terminada, y en otro departamento se solicitan varones que cumplan con los siguientes requisitos mayor de 18 y menor de 60, pero también deben de contar con su cartilla militar y que tengan la primaria terminada. En ambos casos si se cumplen las condiciones serán aceptados en caso contrario serán rechazados. Código: GC-N4-017 Revisión: 4 Página 4 de 5 Fecha de efectividad: UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio 3.- Solicitar una fecha proporcionando el número de día, el número de mes y el número de año, mostrar un mensaje si dicha fecha es válida o no, en caso de que no lo sea mostrar cual es el error, considerando que ninguno de los datos introducidos debe ser menor o igual a 0, si el mes es febrero, determinar y desplegar si el año es bisiesto o no lo es así como desplegar cuantos días tiene como máximo, en caso de cualquier otro mes desplegar la cantidad de días que trae ese mes. Deberá considerar que los meses únicamente llegan hasta 12. Nota : Los ejercicios serán realizados sin utilizar operadores lógicos 1) CÁLCULOS (SI APLICA) Y REPORTE Revisión de práctica de forma INDIVIDUAL, que hará el maestro al finalizar la práctica a cada alumno. 5. RESULTADOS Y CONCLUSIONES Los resultados serán solo a nivel de visualización, no serán impresos, estos podrán variar dependiendo de los datos de entrada que el alumno introduzca. 6. ANEXOS 7. REFERENCIAS Metodología de la programación Algoritmos, diagramas de flujo y programas Osvaldo Cairo Alfaomega 3ra edición 2005 Código: GC-N4-017 Revisión: 4 Página 5 de 5