You are on page 1of 8

FACULTAD DE INGENIERIA

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION PAUTA - PRUEBA ESCRITA PROGRAMADA N2


ASPECTOS GENERALES DE LA PRUEBA

SERIE A

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

1 A B C D E

10

11

12

13

14

28-AGO-2013

FUNDAMENTOS DE COMPUTACION Y PROGRAMACION PRUEBA ESCRITA PROGRAMADA N2

SERIE A

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)?
a) b) c) d) e) I y III II y IV I, II y V I, IV y V III, IV y V

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.

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) Slo el programa 1 Slo el programa 2 Slo los programas Slo los programas Los 3 programas si 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 1
def logz (x): if x < 0: return log (-x) if x == 0: return log (1) if x >= 0: return log (x)

Programa 2
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)

3.

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
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

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

4.

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 largo = len (lista) while indice <= largo: elemento = lista [ndice - 1] lista [largo - indice] = elemento indice = indice + 1 return lista

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)

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) FUNDAMENTOS DE COMPUTACION Y PROGRAMACION PRUEBA ESCRITA PROGRAMADA N2

28-AGO-2013

SERIE A

5.

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

a) b) c) d) e)

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 2 2 1 2 2 1 1 2 5 4 4 5 5 1 5 5 4 4 4 3 3 3 3 3

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

7.

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?
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

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

8.

Cul es la sentencia correcta para invocar la funcin resta() y lograr que por pantalla se imprima 6?
a) b) c) d) e) print resta (a,b) print resta (x,y) input (str(resta (x,y))) print resta(b,c) print resta(a,c)

c = 2 def resta (x,y): return x - y a = 2 b = 8

9.

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


a) b) c) d) e) a y b a y c a y b b y c a, b y c

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

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 a) b) c) d) e) I y III II y IV I, II y IV I, IV y V III, IV y V

28-AGO-2013

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]. 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. , por

Tabla 1: Archivo de entrada y salida por pantalla ndices.txt -21 0 8 -2.5 0 1 Salida por pantalla 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

You might also like