Está en la página 1de 8

FACULTAD DE INGENIERIA

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION

SERIE A

PAUTA - PRUEBA ESCRITA PROGRAMADA N2


ASPECTOS GENERALES DE LA PRUEBA

a) La prueba contiene 14 preguntas de alternativas (50%) y una de desarrollo (50%).


b) El/La alumno(a) que se sorprenda en actos deshonestos ser calificado con la nota mnima
1,0.
c) La prueba tiene una duracin total de 120 minutos. 10 minutos al comienzo para entregar las
pruebas y 10 minutos al final para retirarlas. El alumno tendr 100 minutos para responder las
preguntas contenidas en la prueba.
d) Durante el desarrollo de la prueba est prohibido hablar con otros compaeros.
e) Los elementos tecnolgicos deben permanecer apagados y guardados. Queda absolutamente
prohibido el uso todo elemento tecnolgico. Su uso puede significar la nota mnima.
f) La escala de notas a utilizar ser la siguiente:

g)
h)
i)
j)

El alumno recibir del equipo docente, un set de preguntas y hojas para las respuestas.
El alumno deber identificarse con su Cdula de Identidad.
Sobre el escritorio slo podr existir lpiz (obligatorio) y goma/lpiz corrector (opcional).
Se recomienda asistir a la prueba sin bolsos, mochilas u otros de similar uso. Los alumnos que
porten estos objetos debern dejarlos al costado de su asiento y no podrn abrirlos hasta que
finalice la prueba.
k) El equipo docente tiene prohibicin de responder preguntas sobre la prueba.

Nombre

RUT

10

11

12

13

A
B
C
D
E

28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

14

PARTE 1: Alternativas
1.

Desde el punto de vista de la legibilidad y de las buenas prcticas de la programacin Cul(es)


de las siguientes lneas de cdigos es(son) correcta(s)?

I) resultado = calculaSuma (operandoIzquierdo, operandoDerecho)


II) xyz = input (v2: )
III) print el resultado es: , p (a, e, i)
IV) not esPrimo (numeroNatural) and resultadoCorrecto
V) NUMERO_PI = 3.1415

2.

Slo el programa 1
Slo el programa 2
Slo los programas
Slo los programas
Los 3 programas si

Programa 1

def logz (x):


if x < 0:
return log (-x)
elif x == 0:
return log (1)
else:
return log (x)

Programa 3
def logz (x):
if x < 0:
return log (-x)
elif x == 0:
return log (1)
return log (x)

Cul(es) de los siguientes programas da como resultado la suma de los primeros n nmeros
naturales
? Tip: la suma de los primeros 100 nmeros naturales es 5050.
Programa 1

def sumaNNaturales (n):


return (n*(n+1))/2

Programa 2
def sumaNNaturales (n):
contador = 0
resultado = 0
while (contador <= n):
resultado=resultado + contador
contador = contador + 1
return resultado

a) Slo el primer programa con variable de entrada de


tipo entera
b) Slo el segundo programa con variable de entrada
de tipo entera mayor o igual a cero
c) Ambos programas con variable de entrada de tipo
entera
d) Ambos programas con variable de entrada de tipo
entera mayor o igual a cero
e) Ninguna de las anteriores

Cul(es) de los siguientes programas da como resultado una lista invertida y de qu manera
podemos mostrar por pantalla el resultado de llamar a la funcin con parmetro de entrada la
lista [2, 4, 8]?
Programa 1
Programa 2

def invierteLista (lista):


indice = 1
listaAuxiliar = []
largo = len (lista)
while indice <= largo:
elemento = lista [largo - indice]
listaAuxiliar.append(elemento)
indice = indice + 1
return listaAuxiliar

a)
b)
c)
d)
e)

si se ingrese un dato de tipo string.


si se ingrese un dato de tipo entero.
1 y 2 si se ingrese un dato de tipo float.
2 y 3 si se ingrese un dato de tipo string.
se ingrese un dato de tipo entero.

Programa 2

def logz (x):


if x < 0:
return log (-x)
if x == 0:
return log (1)
if x >= 0:
return log (x)

4.

I y III
II y IV
I, II y V
I, IV y V
III, IV y V

Cul(es) de los siguientes programas implementa(n) correctamente la siguiente funcin definida


por intervalos para todo x e Z:
a)
b)
c)
d)
e)

3.

a)
b)
c)
d)
e)

def invierteLista (lista):


indice = 1
largo = len (lista)
while indice <= largo:
elemento = lista [ndice - 1]
lista [largo - indice] = elemento
indice = indice + 1
return lista

Slo el programa 1, print invierteLista (lista)


Slo el programa 1, print invierteLista ([2, 4, 8])
Slo el programa 2, print invierteLista (lista)
Slo el programa 2, print invierteLista ([2, 4, 8])
Ambos programas, print invierteLista (lista)

28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

5.

a)
b)
c)
d)
e)

Cul de las siguientes estructuras de datos (lista, tupla y diccionario) permite modificar el valor
en la posicin (o llave) 3? Por ejemplo, estructura [3] = valor
(lunes, martes, miercoles, jueves, viernes)
[lunes, martes, miercoles, jueves, viernes]
{0: lunes, 1: martes, 2: miercoles, 3: jueves, 4: viernes}
a y b
b y c

6.

Mr. Oso desea tener un listado de los productos y precios de todos sus negocios, el cual est
ordenado por nombre alfabtico de los nombres de los productos, para esto tiene toda la
informacin almacenada en archivos de texto de extensin .txt. La informacin est
estructurada de forma: Nombre_Producto; Precio. Cul es el orden correcto de las sentencias
de la abstraccin de procesos realizada?
a)
b)
c)
d)
e)

1-. Leer la informacin de cada archivo por separado


2-. Pedir al usuario los nombres de los archivos de texto
3-. Entregar la informacin a Mr. Oso
4-. Ordenar los productos de acuerdo a su nombre
5-. Juntar la informacin de los archivos

2
1
1
2
5

4
4
5
5
1

5
5
4
4
4

3
3
3
3
3

Para leer un archivo se ha utilizado la funcin leerArchivo() y su resultado se ha guardado en


la variable datos. La variable datos es una lista en que cada elemento corresponde a una lnea
del archivo (note que el smbolo \n al final de cada lnea correspondiente al salto de carro). Cul
es el resultado del siguiente trozo de cdigo?

7.

>>
>>
>>
>>
>>
>>

1
2
2
1
2

datos = leerArchivo ()
print datos
['24, 31, 45, 28\n', '23, 45, 78, 23']
lista = []
for dato in datos:
lista.append (set (dato.split (',')))

a)
b)
c)
d)
e)

['24', '31', '45', '28\n', '23', '45', '78', '23']


[['24', '31', '45', '28\n'], ['23', '45', '78', '23']]
[set(['24', '31', '45', '28']), set(['23', '45', '78', '23'])]
[set([24, 31, 45, 28]), set([23, 45, 78, 23])]
Ninguna de las anteriores

Cul es la sentencia correcta para invocar la funcin resta() y lograr que por pantalla se
imprima 6?

8.

c = 2
a)
b)
c)
d)
e)

def resta (x,y):


return x - y
a = 2
b = 8

9.

print resta (a,b)


print resta (x,y)
input (str(resta (x,y)))
print resta(b,c)
print resta(a,c)

Cul de estas variables contiene la lista [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]?:


a)
b)
c)
d)
e)

a = range(10)
b = range(0,10,1)
c = range(0,10)

a y b
a y c
a y b
b y c
a, b y c

10. De los siguientes modos para abrir un archivo, indique cul alternativa es correcta:
I.
II.
III.
IV.
V.

r = permite leer desde un archivo


a = permite agregar informacin a un
archivo
b = borra la informacin de un archivo
w = escribe en un archivo
a, w y r = crean un archivo si no existe

28-AGO-2013

a)
b)
c)
d)
e)

I y III
II y IV
I, II y IV
I, IV y V
III, IV y V

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

11. La funcin quick()implementa el algoritmo de ordenacin Quicksort. Recibe una lista con
nmeros enteros sin un orden determinado (por ejemplo [8, 2, 7, 5, 6]) y debe retornar una
lista con los mismos elementos ordenados de menor a mayor (en el ejemplo [2, 5, 6, 7, 8]).
Cul de las siguientes sentencias de retorno corresponde al llamado recursivo correcto?
def quick(lista):
if lista == []:
return lista
else:
menores = []
mayores = []
pivote = lista[0]
for e in lista:
if e<pivote:
menores.append(e)
if e>pivote:
mayores.append(e)
return?

a)
b)
c)
d)
e)

return
return
return
return
return

quick(menores) + quick(mayores)
lista
[pivote]
quick(menores) + [pivote] + quick(mayores)
[pivote] + quick(menores)

12. De las siguientes definiciones indique cules son verdaderas


I.
II.
III.
IV.

Filas: Estructura de datos a la cual se le agregan elementos al final


y cuando se eliminan lo hacen del principio.
Filas: Estructura de datos a la cual se le agregan elementos al inicio
y cuando se eliminan lo hacen del principio.
Pilas: Estructura de datos a la cual se le agregan elementos al final
y cuando se eliminan lo hacen del principio.
Pilas: Estructura de datos a la cual se le agregan elementos al inicio
y cuando se eliminan lo hacen del principio.

a)
b)
c)
d)
e)

I y II
I y III
I y IV
II y IV
II y III

13. La sentencia Python:


set( tuple(range(5)) + (5, 2, 7, 9) + (3, 6, 4, 8))

entrega:
a)
b)
c)
d)
e)

El
El
El
El
El

conjunto
conjunto
conjunto
conjunto
conjunto

inmutable de valores enteros {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}


mutable de valores enteros {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
inmutable de valores enteros {1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9}
mutable de valores enteros {1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9}
mutable de tuplas {(0, 1, 2, 3, 4), (5, 2, 7, 9), (3, 6, 4, 8)}

14. Se tiene un diccionario en Python con el nmero de cajas en vitrina y en bodega de la frutera de la
esquina:
stock = {'pera': (2, 0), 'manzana': (3, 2), 'naranja': (5, 3)}

Revisando, se han encontrado una caja de peras en bodega y una caja de pltanos en vitrina. Cul de
las siguientes sentencias en Python permitiran actualizar el diccionario?
a)
b)
c)
d)
e)

stock[pera][0] = 3; stock[platano][0] = 1; stock[platano][1] = 0


stock[pera][1] = 1; stock[platano] = (1, 0)
stock['pera'][1] = 1; stock['platano'] = 1, 0
stock['pera'] = 2, 1; stock['platano'] = 1, 0
stock['pera'].replace(1, 1); stock['platano'].append(tuple(1, 0))

28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

PARTE 2: Desarrollo
Se desea construir un programa en Python para derivar polinomios. A travs de una abstraccin de datos, se
decidi que la mejor manera para representar un polinomio es mediante una lista, donde la posicin en la lista
indica el grado del trmino y el valor almacenado en la posicin corresponde al coeficiente del polinomio, de
esta forma, el polinomio:
, que sin omitir los trminos nulos corresponde a
, quedara representado de la siguiente manera: [-21, 0, 8, -2.5, 0,
1]. Asumiendo que se obtiene la lista del polinomio desde un archivo de texto indices.txt con el formato
mostrado en la tabla 1.
Construya un programa en Python que:
1. Entregue la derivada del polinomio recibido. En el caso del ejemplo, su derivada es: 5
lo que la funcin entregara: [0, 16, -7.5, 0, 5].

, por

2. Solicite un valor de entrada por teclado al usuario para evaluar el polinomio.


3. Entregue el resultado de evaluar un polinomio con un valor x dado, por ejemplo, para el polinomio
y x = 5, su resultado es: 3.125.4. Entregue como salida, por pantalla lo indicado en la tabla 1.

Tabla 1: Archivo de entrada y salida por pantalla


ndices.txt

Salida por pantalla

-21
0
8
-2.5
0
1

El polinomio [-21, 0, 8, -2.5, 0, 1]


en x = 5
tiene como valor: 3125.0
Y su derivada, que es: [0, 16, -7.5, 0, 5]
tiene como valor: 3017.5

Como gua, utilice el cdigo presentado a continuacin:


# -*- coding: cp1252 -*# Ttulo: SOLUCIN DESARROLLO PREGUNTA N2 OPERATIVA SIN COMENTARIOS EN CDIGO
# Autor: COORDINACIN DE FUNDAMENTOS DE COMPUTACIN Y PROGRAMACIN
# Fecha: 28/08/2013
# -----------------------------------------# DEFINICIN DE FUNCIONES
#------------------------------------------# IMPORTACIN DE FUNCIONES
# Importamos la funcin potencia desde el mdulo math
from math import pow
# DEFINICIN DE FUNCIONES PROPIAS
#
#
#
#
#

Funcin que lee lneas de un archivo de texto y las almacena en una lista de
elementos de tipo float
Entrada : nombre de archivo
Salida : lista de flotantes
Requiere: Que el nombre de archivo corresponde a uno existente

def leerLista(nombreArchivo):
archivo = open(nombreArchivo, 'r')
polinomio = []
for linea in archivo:
valor = float(linea)
polinomio.append(valor)
archivo.close()
return polinomio
28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

# Funcin que calcula la derivada de un polinomio dado y la entrega en una lista con
# formato de polinomio
# Entrada: lista representando un polinomio
# Salida: lista representando un polinomio
# Requiere: Que la lista tenga elementos
def derivarPolinomio(lista):
lista = lista[1:len(lista)]
i = 1
for e in lista:
lista[i-1] = e * i
i = i + 1
return lista

# Funcin que evala un polinomio


# Entrada: lista representando un polinomio, valor para x
# Salida: valor del polinomio evaluado
# Requiere: Que la lista tenga elementos
def evaluarPolinomio(lista, valor):
acum = 0
i = 0
for e in lista :
acum = e * pow(valor, i) + acum
i = i + 1
return acum

#------------------------------------------------# BLOQUE PRINCIPAL


#------------------------------------------------polinomio = leerLista("polinomio.txt")
x = input ("Ingrese valor de entrada: ")
derivada = derivarPolinomio(polinomio)
print "El polinomio ", polinomio
print "en x = ", x
print "tiene como valor:", evaluarPolinomio(polinomio,x)
print "Y su derivada, que es:", derivada
print "tiene como valor: ", evaluarPolinomio(derivada,x)
#------------------------------------------------# FIN DEL PROGRAMA
#-------------------------------------------------

28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

PREGUNTA 2: SOLUCIN CON COMENTARIOS


# -*- coding: cp1252 -*#Titulo: PROGRAMA PREGUNTA DE DESARROLLO PEP N2
#
#Autor: COORDINACIN FUNDAMENTOS DE COMPUTACIN Y PROGRAMACIN
#
#Fecha: 29/08/2013
#
# ---------------------------------------------# DEFINICIN DE FUNCIONES
#----------------------------------------------# IMPORTACIN DE FUNCIONES
# Importamos la funcin potencia
from math import pow
#------------------------------------------# DEFINICIN DE FUNCIONES
#------------------------------------------# Funcin que lee lineas de un archivo de texto y
# las almacena en una lista de elementos de tipo float
# Entrada : mombre de archivo
# Salida : lista de flotantes
# Requiere:
#
Que el nombre de archivo corresponda a uno existente
def leerLista(nombreArchivo):
# Se abre el archivo con el nombre que se entrega
archivo = open(nombreArchivo, 'r')
# Se crea una lista vaca para almacenar el polinomio
polinomio = []
# Para cada lnea en el archivo
for linea in archivo:
# Se obtiene el valor y se transforma de string a nmero
valor = float(linea)
# Se agrega el valor a la lista polinomio
polinomio.append(valor)
#Se Cierra el archivo
archivo.close()
#Se entrega el polinomio
return polinomio
# Funcin que calcula la derivada de un polinomio dado
# y la entrega en una lista con formato de polinomio
# Entrada: lista representando un polinomio
# Salida: lista representando un polinomio
# Requiere:
#
Que la lista tenga elementos
def derivarPolinomio(lista):
# Se elimina el primer elemento de la lista pues su
# derivada siempre es 0
lista = lista[1:len(lista)]
# Se inicializa un contar para el grado, pues for - in
# no trabaja sobre la posicin
i = 1
# Para cada elemento de la lista
for e in lista:
# En la posicin del grado del polinomio - 1
# se agrega el valor de la derivada
lista[i-1] = e * i
# Se aumenta el contador para los grados del polinomio
i = i + 1
# Se entrega la lista
return lista
28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

# Funcin que evalua un polinomio


# Entrada: lista representando un polinomio, valor para x
# Salida: valor del polinomio evaluado
# Requiere:
#
Que la lista tenga elementos
def evaluarPolinomio(lista, valor):
# Se inicializa un acumulador para almacenar la suma
acum = 0
# Se inicializa un contar para el grado, pues for - in
# no trabaja sobre la posicin
i = 0
# Para cada elemento en la lista
for e in lista :
# Se calcula cada trmino del polinomo con el valor dato
# y se le aade al acumulador
acum = e * pow(valor, i) + acum
# Se aumenta el contador para los grados del polinomio
i = i + 1
# Se retorna el valor acumulado
return acum
#------------------------------------------------#
# BLOQUE PRINCIPAL
#
#------------------------------------------------#------------------------------------------------# ENTRADA
#------------------------------------------------# Se lee la lista del archivo y se genera el polinomio
polinomio = leerLista("polinomio.txt")
# Se solicita la entrada del valor de evaluacin
x = input ("Ingrese valor de entrada: ")
#------------------------------------------------# PROCESAMIENTO
#------------------------------------------------# Se evalua el polinomio en x
valor = evaluarPolinomio(polinomio, x)
# Se deriva el polinomio
derivada = derivarPolinomio(polinomio)
# Se calcula el valor de la derivada en x
valorDerivada = evaluarPolinomio(derivada,x)
#------------------------------------------------# SALIDA
#------------------------------------------------print
print
print
print
print

"El polinomio ", polinomio


"en x = ", x
"tiene como valor:", valor
"Y su derivada, que es:", derivada
"tiene como valor: ", valorDerivada

#-----------------------------------------------# FIN DEL PROGRAMA


#------------------------------------------------

28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION


PRUEBA ESCRITA PROGRAMADA N2

SERIE A

También podría gustarte