Document

Anuncio
INTRODUCCIÓN A LA PROGRAMACIÓN
Segundo Parcial - Marzo 22 de 2014
-AConsideraciones Generales
 Esta evaluación es estrictamente individual. Cualquier violación a esta norma será considerada como fraude.
 Solo puede utilizar lapicero, lápiz y borrador. No se permite el uso de ningún tipo de equipo electrónico,
como portátiles, celulares, etc. Cualquier violación a esta norma será considerada como fraude.
 No se permite el préstamo de ningún objeto. El Fraude ocasiona la apertura de proceso disciplinario.
Tiempo de Duración: 2 Horas
CRITERIOS DE EVALUACIÓN:
- El código Python de las funciones y procedimientos propuestos deben dar el resultado esperado, es caso contrario, se
“castigaran” con un 30% de su valor.
- Si las funciones o procedimiento presentan más de 5 errores de sintaxis o estructura, se disminuirá en un 30% adicional el
valor del punto.
- Se valorará con un 20% del puntaje de la pregunta, el adecuado manejo de las entradas y salidas (parámetros, valores de
retorno, impresiones) de las funciones y procedimientos.
- El 20% restante lo evaluará el docente de acuerdo a cada caso particular.
“El estudiante de la Pontificia Universidad Javeriana, como agente de su propia formación, es
corresponsable de la Identidad Institucional, uno de cuyos cimientos es tener como hábito un
comportamiento ético en todos los ámbitos de la vida. En este sentido me comprometo a realizar con
total integridad esta evaluación, solamente empleando los recursos autorizados para su desarrollo".
Consejo Académico, Acta No. 79, abril 19 de 2004
Nombre: ______________________________________ Código: ____________
Pregunta
Puntos
Calificación
1
10
2
20
3
10
4
10
Total
50
1. El objetivo de este ejercicio es evaluar su entendimiento en condicionales. Tiberius está buscando
su trabajo soñado, pero tiene algunas restricciones. El ama California y le gustaría tomar
un trabajo ahí si el pago es mayor a $40.000 al año. El odia Massachusetts y pediría al menos
$100.000 para trabajar ahí. En cualquier otro lugar el estaría contento de trabajar por $60.000 al
año.
El siguiente código muestra su estrategia básica para evaluar una oferta de empleo:
INTRODUCCIÓN A LA PROGRAMACIÓN
Segundo Parcial - Marzo 22 de 2014
def estrategia_de_tiberius_para_buscar_trabajo(pago, ubicacion):
if ubicacion == "U.S.S. Enterprise":
print "Lo tomare, es mi gran sueño!"
elif ubicacion == "Massachusetts":
if pago < 100000:
print "De ninguna manera!"
else:
print "Lo tomare, que mas da!"
elif ubicacion == "California" and pago > 40000:
print "Lo tomare!"
elif pago > 60000:
print "Lo tomare, es una buena opción!"
else:
print "No gracias, yo puedo encontrar algo mejor."
Por cada uno de las siguientes ofertas de trabajo, escriba abajo la salida que se generaría:
a) (2 Puntos) ubicacion = "Massachusetts"
pago = 50000
b) (2 Puntos) ubicacion = "Iowa"
pago = 50000
c) (2 Puntos) ubicacion = "California"
pago = 50000
d) (2 Puntos) ubicacion = "U.S.S. Enterprise"
pago = 1
e) (2 Puntos) ubicacion = "California"
pago = 25000
2.
La empresa de alimentos XYZ, va a lanzar una promoción sobre sus productos de la siguiente
manera:
Si el cliente compra menos de 5 productos, y si estos productos tienen un valor total menor a
$100.000, entonces se realizará un descuento del 10%. Si la compra es por un valor mayor o
igual a $100.000, el descuento es del 15%
Si el cliente compra entre 5 a 10 productos, y el valor total de estos es mayor a $500.000
entonces se realizará un descuento del 20%, de lo contrario el descuento es del 18%.
Si el cliente compra más de 10 productos y el valor total de la compra es menor a $1'000.000, el
descuento será del 30%, en caso contrario el descuento es del 40%
INTRODUCCIÓN A LA PROGRAMACIÓN
Segundo Parcial - Marzo 22 de 2014
a) Realizar una función en Python llamada calcularDescuento, que reciba como parámetros un
valor y un porcentaje de descuento. La función debe aplicar el descuento sobre el valor
ingresado y retornar el valor final. Ejemplo: Si el valor inicial es 100.000, el descuento es el 20%,
entonces, el valor final a retornar es 80.000.
a.1) (3 Puntos). Contrato (análisis)
a.2) (5 Puntos). Código Python de la función
b) Realizar un procedimiento en Python que reciba una cantidad de productos comprados y el
valor total de la compra, y le indique al cliente cuál es el valor final a cancelar dependiendo de
los descuentos especificados. Este procedimiento debe de hacer uso de la función realizada en
el punto anterior calcularDescuento, para indicarle al usuario el valor final a pagar.
b.1) (4 Puntos). Contrato (análisis)
b.2) (8 Puntos). Código Python del procedimiento
3. Un orientador de actitud vocacional formula a un grupo de estudiantes un conjunto de preguntas,
con el propósito de ubicarlos por grupos de tal manera que en un ejercicio posterior, los grupos
tengan algunas características comunes y los estudiantes puedan conversar tranquilamente. El
orientador entrega a cada estudiante una hoja con las siguientes preguntas y les invita a seguir las
indicaciones para que al final queden ubicados por grupos. Las posibles ubicaciones son: “Centro
del Salón”, “Puerta Principal”, “Tablero” y “Escritorio”
1.
2.
3.
4.
5.
Si soy mayor de edad: me coloco de pie.
Si estoy de pie y soy nacido en Cali: en el mismo sitio, me ubico mirando hacia atrás.
Si no estoy de pie y soy nacido en Cali: me dirijo hacia el Centro del salón.
Si estoy mirando hacia atrás y no me gusta bailar: me siento en el piso.
Si estoy mirando hacia atrás y no estoy sentado en el piso y me gusta la leer: me ubico al lado de
la puerta principal.
6. Si no me he movido durante todas las preguntas: me ubico al lado del tablero.
7. Si la persona no se encuentra aun en una ubicación valida, se debe ubicar al lado del escritorio
del orientador.
Simultáneamente, el orientador busca un programador para analizar el problema y le pide que le
ayude a realizar el contrato (análisis) de una función que simule las indicaciones dadas, y que al
ingresar los datos del estudiante que suponen las preguntas, la función retorne, mediante una cadena
de texto, el lugar en el cual debe estar ubicado el estudiante al final de las preguntas.
a)
(10 Puntos) Usted es el programador, por consiguiente debe elaborar el contrato (análisis)
completo (definir entradas y salidas con sus tipos de datos, dominios y/o restricciones, y el algoritmo) para
este problema.
INTRODUCCIÓN A LA PROGRAMACIÓN
Segundo Parcial - Marzo 22 de 2014
4. A continuación se muestra un programa en Python que contiene errores, es decir, si se ejecuta en
Python el programa no mostrará un resultado ya que fallará en varias partes del código escrito.
def convertir(t, r):
c = t - r
f = c
return c
def muchosErrores(a, b, c):
x = a + b
x = c + convertir(x)
y = f
w = 0
if esImpar(x):
w = c + b
r = (b - c)
elif (x = 0) and (x < a):
w = c - a
r = w
else:
r = -1
x = x ** 2
(x != 24):
r = r - (x % 10)
return r
r = -1
return r
e = muchosErrores(5, -1, 0)
print e
a. (5 Puntos) Analice detalladamente el programa completo, identifique los errores y márquelos
encerrándolos en un círculo.
b. (5 Puntos) Escriba nuevamente el programa pero sin errores, de tal manera que si se ejecuta en
Python, esta vez sí debe mostrar un resultado por pantalla.
Nota: No puede eliminar (quitar) completamente las sentencias con error, debe corregirlas, es decir, la
función muchosErrores tiene 18 sentencias o instrucciones que la definen y así mismo debe quedar
cuando usted la corrija. Puede recurrir a cualquier solución siempre y cuando corrija el error.
Descargar