Ponticia Universidad Javeriana Facultad de Ingeniería 300CIP001 Introducción a la Programación Parcial I 16 de marzo de 2007 En este parcial solo se pueden utilizar los siguientes conceptos vistos en clase: funciones, condicionales y recursión numérica. Toda función desarrollada por usted debe llevar la descripción de sus entradas y salida. Nombre: 1. 2 Puntos Se desea calcular el valor de venta de cualquier producto del supermercado LA 13, al que se le conoce el costo de fabricación. Si el producto es de aseo (tipo 1) la ganancia para el supermercado será el cinco por ciento (5 %). Si el producto es un alimento no perecedero (tipo 2) la ganancia será del 10 %. Si, por el contrario, el producto no es de aseo, ni un alimento no perecedero la ganancia será del 12 %. La función a implementar debe retornar el precio que se cobrará al cliente por el producto. Éste incluye el costo de fabricación y la ganancia del supermercado. Además debe tener en cuenta que al precio que se le cobrará al cliente se le debe agregar el valor del impuesto a las ventas (IVA). El IVA es del 16 % para todos los productos a excepción de los alimentos no perecederos por los cuales se cobra un 2 %. Solución: def precioventa ( costo , tipo ) : if t i p o ==1: return ( costo ∗1.05)∗1.16 else : if t i p o ==2: return ( costo ∗1.1)∗1.02 ( costo ∗1.12)∗1.16 else : return 2. 1.5 Puntos Escriba una función que sume los números pares que hay entre dos enteros positivos m y n incluyéndolos. Considere que n es menor que m. Solución: def par ( x ) : return x %2==0 Ponticia Universidad Javeriana Facultad de Ingeniería 300CIP001 Parcial I Introducción a la Programación 16 de marzo de 2007 #pre : n < m def s u m a p a r e s ( n ,m) : if not if n < m: par ( n ) : return n else : return 0 else : if par ( n ) : return n + s u m a p a r e s ( n +1 ,m) else : return 3. 1.5 Puntos s u m a p a r e s ( n +1 ,m) ¾Está usted de acuerdo con la armación de que la siguiente función averigua si a es menor o igual que b para cualquier par de números a y b, positivos?. Justique su respuesta haciendo el seguimiento a los llamados: def funcion (a , b ) : if a==0: return True else : if b>=1: return f u n c i o n ( a−b , b ) else : if b <0: return f u n c i o n ( b−a , b ) else : return False Page 2 funcion(4,1) y funcion(5,2)