Вы находитесь на странице: 1из 3

Carrera: Ingeniería en Computadores

Curso: CE-1101 Introducción a la Programación, I Semestre 2019


Examen parcial I, grupo 4 - Valor: 100 puntos, 25%
Fecha: 25 de marzo de 2019 - Hora: 1:00 p.m. a 3:00 p.m. (2 horas)
Profesor: Antonio González Torres

Instrucciones

1. Lea cada pregunta de forma cuidadosa y realice las preguntas que considere necesarias
sobre el planteamiento de estas. El profesor solo responderá preguntas de forma general,
en frente de todo el grupo, durante los 30 minutos posteriores a la entrega del examen.
2. Las copias parciales o totales del examen se anulan automáticamente.
3. El alumno que requiera salir para ir al servicio sanitario deberá dejar su teléfono celular
en el sitio que sea designado por el profesor dentro del aula para tal efecto y al regresar
pasará a recoger.
4. Debe utilizar los nombres de función exactamente como se indican en el enunciado.
5. Se requiere utilizar variables con nombres significativos formados por al menos una
palabra que contenga más de 5 letras (no se permite utilizar letras ni nombres
monosílabos).
6. La solución a todos los problemas debe ser programada en Python y todos los ejercicios
deben ser incluidos en un solo archivo. Se requiere que suba el archivo a TECDigital y
los archivos individuales de cada respuesta a su cuenta de GitHub a más tardar el lunes
25 de abril del 2019 a las 23:55.
a. No se revisarán los exámenes que no sean enviados en formato digital.
b. Las soluciones deben ser copia fiel del examen entregado en formato físico al profesor
el día 25 de abril del 2019.
c. El alumno puede tomar fotos al examen para pasarlo a la computadora.
d. Después de la fecha y hora indicada no se recibirán las soluciones al examen.
7. Las preguntas se deben responder utilizando recursión de pila.
8. Para cada respuesta, utilice una función para validar los parámetros y restricciones de las
entradas. En todos los casos esta función tendrá un valor de 3 puntos.

Preguntas

1. Carmen tiene una pequeña tienda que vende computadoras HP y Dell. Suponga que María
llega a la tienda a comprar dos computadoras, no tiene interés en ninguna marca en
particular, y las selecciona al azar. El inventario se mantiene en dos listas, hp y dell.
Escriba un programa en Python, usando recursión de pila, que crea la lista purchase a
partir de las listas hp y dell, las cuales pueden contener cualquier número de
computadoras, sin que se repita una sola combinación (25 puntos).

>>> combinaciones([ꞌH1ꞌ,ꞌH2ꞌ,ꞌH3ꞌ], [ꞌD1ꞌ,ꞌD2ꞌ])


>>> [ꞌH1D1ꞌ,ꞌH1D2ꞌ,ꞌH2D1ꞌ,ꞌH2D2ꞌ,ꞌH3D1ꞌ,ꞌH3D2ꞌ]

>>> combinaciones([ꞌH1ꞌ,ꞌH2ꞌ,ꞌH3ꞌ,ꞌH4ꞌ], [ꞌD1ꞌ,ꞌD2ꞌ,ꞌD3ꞌ])


>>> [ꞌH1D1ꞌ,ꞌH1D2ꞌ,ꞌH1D3ꞌ,ꞌH2D1ꞌ,ꞌH2D2ꞌ,ꞌH2D3ꞌ,ꞌH3D1ꞌ,ꞌH3D2ꞌ,ꞌH3D3ꞌ,ꞌH4D1ꞌ,ꞌH4D2ꞌ,ꞌH4D3ꞌ]
2. La varianza es una medida vinculada a la dispersión de los valores de las variables que
se expresa por medio de un número. A mayor valor de la medida de dispersión, mayor
variabilidad. En cambio, a menor valor, más homogeneidad. La formula para calcular la
varianza de un conjunto de datos es la siguiente:
2
∑( 𝑥𝑖 − 𝑥)2
𝑆 = , 𝑒𝑛 𝑑𝑜𝑛𝑑𝑒 𝑥 𝑒𝑠 𝑒𝑙 𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑦 𝑛 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑣𝑎𝑙𝑜𝑟𝑒𝑠.
𝑛−1
El valor de 𝑥 está dado por la invocación a la función average(lista), con lista conteniendo
los valores del conjunto de datos, tal que 𝑥 = 𝑎𝑣𝑒𝑟𝑎𝑔𝑒(𝑙𝑖𝑠𝑡𝑎).
En tanto, la desviación estándar es usada para cuantificar la variación de un conjunto de
datos y la tendencia de estos hacia el valor promedio. Un valor alto de la desviación
estándar indica que tan dispersos están los datos en un rango de valores. La fórmula para
calcular la desviación estándar se muestra a continuación:

∑( 𝑥𝑖 − 𝑥)2
𝑆 =√
𝑛−1
Desarrolle un programa en Python para calcular la desviación estándar de un conjunto de
datos, asuma que la función average se encuentra desarrollada y solo necesita invocarla
y utilizar el resultado. Utilice la función math.sqrt para sacar el valor de la raíz cuadrada.
Para desarrollar este programa use como referencia la figura 1 para calcular el resultado
y considere efectuar algunas operaciones en la función de validación después de finalizar
el cálculo en la función auxiliar. (25 puntos).

Figura 1. Ejemplo del cálculo de la varianza de un conjunto de datos.


>>> lista = [0, 24.1, 5.6, 14.1, 17.2, 8.7, 19.2, 14.1, 27.7, 15, 19.3]
>>> avg = average(lista)
>>> std(lista, avg)
>>> 63.97
3. Un valor z score es la desviación estándar por la cual el valor de una observación está por
encima del valor medio de lo que se está observando o midiendo. Los valores observados
por encima de la media tienen puntuaciones estándar positivas, mientras que los valores
por debajo de la media tienen puntuaciones estándar negativas. El cálculo de cada valor
𝑋− 𝑋̅
z score se realiza de acuerdo con la fórmula 𝑍 = , en donde 𝑋̅ = 𝒂𝒗𝒆𝒓𝒂𝒈𝒆(𝑙𝑖𝑠𝑡𝑎)
𝑆
y S = std(lista, avb).
Desarrolle un programa para calcular el valor z score para cada valor x de una lista de
valores. Asuma que las funciones average y std se encuentran desarrolladas y solo debe
utilizarlas. El resultado es una lista con los valores z score (25 puntos).

>>> listaX = [185, 182, 188, 188]


>>> avg = average(listaX)
>>> S = std(listaX, avg)
>>> zScore(listaX, S, avg)
>>> [-0.26, -1.31, 0.78, 0.78]

4. El coeficiente de correlación de Pearson es también conocido como la r de Pearson y es


una medida de la correlación lineal entre dos variables, X y Y. La fórmula para calcular
dicho coeficiente es:
∑( 𝑍𝑋 ∗ 𝑍𝑌 )
𝑟 = , 𝑒𝑛 𝑑𝑜𝑛𝑑𝑒 𝑍𝑋 , 𝑍𝑦 𝑠𝑜𝑛 𝑙𝑖𝑠𝑡𝑎𝑠 𝒛 𝒔𝒄𝒐𝒓𝒆 𝑦 𝒏 𝑒𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜𝑠.
𝑛−1
Así, X y Y son las listas de valores originales y las listas 𝑍𝑋 , 𝑍𝑦 son el resultado de
ejecutar la función zScore para esas listas, tal que 𝑍𝑋 = 𝒛𝑺𝒄𝒐𝒓𝒆(X, S, avg) y 𝑍𝑌 =
𝒛𝑺𝒄𝒐𝒓𝒆(Y, S, avg).
Implemente un programa para calcular el coeficiente de correlación de Pearson. Asuma
que la función 𝒛𝑺𝒄𝒐𝒓𝒆 está implementada y solo debe calcular el valor de la función
rScore. Considere efectuar algunas operaciones en la función de validación después de
finalizar el cálculo en la función auxiliar.
>>> X = [185, 182, 188, 188]
>>> avgX = average(X)
>>> Sx = std(listaX, avg)
>>> 𝑍𝑋 = zScore(X, Sx, avgX) -- [-0.26, -1.31, 0.78, 0.78]
>>> Y = [47.0, 49.9, 55.1, 60.9]
>>> avgY = average(Y)
>>> Sy = std(listaX, avg)
>>> 𝑍𝑦 = zScore(Y, Sy, avgY) -- [-1.02, -0.54, 0.31, 1.26]
>>> rScore(𝑍𝑋 , 𝑍𝑦 )
>>> 0.73

Вам также может понравиться