Sei sulla pagina 1di 8

FACULTAD DE INGENIERA

DEPARTAMENTO DE INGENIERA INFORMTICA


FUNDAMENTOS DE COMPUTACIN Y PROGRAMACIN
SERIE C

PRUEBA ESCRITA PROGRAMADA N2 2/2013


RUN

I.

NOMBRE

SECCIN

PLANTILLA PARA RESPUESTAS


Para cada pregunta marque con X la alternativa seleccionada
1

10

a
b
c
d
E
II.

ASPECTOS GENERALES DE LA PRUEBA


a)

El estudiante deber identificarse con su Cdula de Identidad.

b)

Queda prohibido el uso de elementos tecnolgicos.

c)

El desarrollo de la prueba es individual, queda prohibido hablar o compartir informacin con otros
estudiantes.

d)

El estudiante que sea sorprendido en actos deshonestos ser calificado con la nota mnima.

e)

Sobre el escritorio slo podr existir lpiz (obligatorio) y goma/lpiz corrector (opcional).

f)

Se recomienda asistir a la prueba sin bolsos, mochilas u otros de similar uso. Los estudiantes que
porten estos objetos debern dejarlos al costado de su asiento y no podrn abrirlos hasta que finalice la
prueba.

g)

El equipo docente tiene prohibicin de responder preguntas sobre la prueba.

h)

El estudiante dispone de un mximo de 70 minutos para responder las preguntas contenidas en la


prueba. Al trmino de ese periodo el equipo docente retirar las pruebas pendientes.

i)

La escala de notas a utilizar ser la siguiente:

III.

PREGUNTAS

1. El manejo de archivos poseen las siguientes caractersticas:


(1 Punto)

Respuestas

Cdigo
I. Para leer un archivo slo se puede abrir en modo de
lectura [opcin eliminada]
II. Para escribir en un archivo se debe abrir en modo escritura
o actualizacin
III. Se puede leer lnea a lnea del archivo
IV. Para crear un nuevo archivo se debe abrir en modo lectura
[Si se abre el lectura (r) no se crea el archivo]

a)
b)
c)
d)
e)

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

2. Dado el siguiente cdigo escrita en Python y el elemento [1,2,3,4], indique qu


realiza considerando las siguiente entrada: funcion([1,2,3],0,2,3).
(3 Puntos)

Cdigo
def funcion(numeros, inicio, fin, elemento):
if (inicio == fin):
return inicio
indice = (inicio + fin) / 2
if (elemento < numeros [indice]):
return funcion(numeros, inicio, indice, elemento)
elif (elemento > numeros [indice]):
return funcion(numeros, indice + 1, fin, elemento)
else:
return ndice
Respuestas
a)
b)
c)
d)

Calcula la suma de los elementos de una lista.


Ordena los elementos de una lista.
Separa los elementos de una lista a partir del elemento y los cuenta.
Busca el elemento en una lista. [respuesta correcta, an que especficamente busca el ndice
donde se encuentra el elemento]
e) Ninguna de las anteriores. [tomando que lo que busca es el ndice, esta respuesta tambin
sera correcta]

Pag. 2

FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA INFORMTICA
FUNDAMENTOS DE COMPUTACIN Y PROGRAMACIN
SERIE C

PRUEBA ESCRITA PROGRAMADA N2 2/2013

3. Para el siguiente cdigo Python, indique el valor que es mostrado por pantalla.
(1 punto)

Cdigo

Respuestas

prefijos = "JKLMNOPQ"
sufijo = "ack"
lista = []
i = 0
for letra in prefijos:
lista.append(letra + sufijo)
i = i + 1
print lista[3]
[Ya que el algoritmo imprime el cuarto elemento de
lista generada, solo se mostrar ese. El ciclo for
ejecuta carcter a carcter el prefijo, en cual en
cuarto ciclo posee el valor M, y el sufijo es
mismo siempre, por lo que el valor buscado para
impresin es M+ack = Mack]

a) Lack
b) Mack
c) Nack
d) Jack
e) Oack
la
se
el
el
la

4. Teniendo la siguiente lista, lista=[ [2,1,8], [6, 4, 3], [5, 9, 7] ] y la


instruccin en Python que se muestra a continuacin, qu valores toma la
variable elemento en cada iteracin?.
(1 Punto)

Respuestas

Cdigo
for elemento in lista:
# Sentencias

a) [5, 9, 7] [6, 4, 3] [2, 1, 8]


b) 5 9 7 6 4 3 2 1 8

c) [2, 1, 8] [6, 4, 3] [5, 9, 7]


[Lista, es una lista
donde cada elemento es d) 2 1 8 6 4 3 5 9 7
otra
lista,
el
for
e) 7 9 5 3 4 6 8 1 2
recorre
elemento
a
elemento de la lista]

5. Para el siguiente cdigo en Python, indique el valor que es mostrado por


pantalla. Considere el archivo menu.txt como sigue:
(3 Puntos)

Cdigo
def funcion(s):
lista = s.split(" ")
return len(lista)
[Funcin que separa un String por los
espacios, ingresndolos a una lista,
(separa las palabras), y retorna la
cantidad de palabras que compone ese
String]

menu.txt
ensalada de tomate
papas fritas
pizza

Respuestas
a) 6
b) 7
c) 4
d) 5
e) 2

inp = open("menu.txt","r")
total = 0
for linea in inp.readlines():
total = total + funcion(linea)
[Se cuentan
archivo]

las

palabras

de

todo

el

inp.close()
print total

Pag. 4

FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA INFORMTICA
FUNDAMENTOS DE COMPUTACIN Y PROGRAMACIN
PRUEBA ESCRITA PROGRAMADA N2 2/2013

SERIE C

6. Para construir estructuras de Fila y Pila, respectivamente, debera implementar


las funciones(asuma que estructura es de tipo List):
(3 Puntos)

Cdigo
#Funcin 1 - Agrega un elemento a la estructura
def agregarElemento(elemento, estructura):
estructura.append(elemento)
return estructura

Respuestas
a) - Funcin 1 y Funcin 2
- Funcin 1 y Funcin 3

b) - Funcin 1 y Funcin 2
- Funcin 2 y Funcin 1
[Agrega un elemento al final de una lista, puede
servir para las filas (siempre y cuando se
eliminen elementos por el inicio) y pilas c) Cualquier combinacin con la
(Siempre y cuando se eliminen elementos al
Funcin 1 permite generar
final)]
filas y pilas al mismo tiempo
#Funcin 2 - Elimina un elemento de la
estructura
def eliminarElemento1(estructura):
if len(estructura) > 0:
estructura.pop(0)
return estructura
[Elimina un elemento en la posicin 0 de la
lista, es decir, al inicio. Esto sirve para
representar una fila]
#Funcin 3 - Elimina un elemento de la
estructura
def eliminarElemento2(estructura):
if len(estructura) > 0:
estructura.pop(len(estructura)-1
return estructura
[Elimina un elemento en la posicin n-1 (n el
tamao de la lista) de la lista, es decir, al
inicio. Esto sirve para representar una pila]

d) - Funcin 1 y Funcin 3
- Funcin 1 y Funcin 2
e) - Funcin 2 y Funcin 1
- Funcin 3

7. Analice las siguientes funciones escritas en Python y, segn el contenido


lgico, indique cul sera el mejor nombre para sinNombre1 y sinNombre2
respectivamente:
(2 Puntos)

Cdigo
def sinNombre1(lista):
for i in range(len(lista)):
for j in range(i, len(lista)):
if lista[i] != lista[j] and i != j:
return False
return True
[Dos ciclos for anidados, el primero desde 0 a n-1, y el
segundo desde i hasta n-1, el if se vuelve verdadero para
cualquier i distinto de j, y para cualquier par de elementos
distintos]

Respuestas
a) cuentaIgual y cuentaDistinta
b) cuentaDistinta y cuentaIgual
c) ordenaIguales y ordenaDistintos
d) todosDistintos y todosIguales
e) todosIguales y todosDistintos

def sinNombre2(lista):
for i in range(len(lista)):
for j in range(i, len(lista)):
if lista[i] == lista[j] and i != j:
return False
return True
[Dos ciclos for anidados, el primero desde 0 a n-1, y el
segundo desde i hasta n-1, el if se vuelve verdadero para
cualquier i distinto de j, y para cualquier par de elementos
iguales]
8. Analice las siguientes funciones escritas en Python y, segn el contenido
lgico, indique el valor que es mostrado por pantalla.
(1 Punto)

Cdigo
M = [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
s = 0.0
for i in range(0, 3):
for j in range(0, 3):
s = s+ M[i][j]
print s / 9.0
[El ciclo for realiza una suma de todos los elementos de las
sub listas de la lista M, al verla solo se aprecian 3 unos y
los dems son 0. Al realizar la sentencia del print queda
s=3, entonces es 3/9.0 (flotante), lo que es igual a
0.3333]

Respuestas
a) 0.11111111
b) 0.0
c) 0.66666666
d) 1.0
e) 0.33333333

Pag. 6

FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA INFORMTICA
FUNDAMENTOS DE COMPUTACIN Y PROGRAMACIN
SERIE C

PRUEBA ESCRITA PROGRAMADA N2 2/2013

9. Analice el siguiente cdigo escrito en Python e indique la alternativa


correspondiente a la salida.
(2 Puntos)

Cdigo
def funcion01(lista, valor1, valor2):
for elemento in lista:
if elemento < valor1 or elemento > valor2:
return False
return True
#Proceso
miLista=[12,44,27,45,-10,8,33,87,10,22]
print funcion01(miLista,10,50),funcion01(miLista,1,100),funcion01(miLista,50,100)
[Dada la posiciones de los return, solo se analiza el primer elemento de la
lista, si este se encuentra dentro del rango dados por el valor1 y valor2,
retornar verdadero, en caso contrario, falso, entonces el anlisis es:
12 est entre 10 y 50 Verdadero
12 est entre 1 y 100 Verdadero
12 est entre -50 y 100 Verdadero]
Respuestas
a) False False False
b) False True False
c) False False True
d) True True True
e) True True False

10. Analice el siguiente cdigo escrito en Python e indique la alternativa


correspondiente a la salida.
(1 Punto)

Cdigo
def funcion02(datos,clave,monto):
if clave in datos:
datos[clave]=datos[clave]+monto
return datos
[Si est la clave, se suma el monto, si no, se devuelve el mismo diccionario]
#Proceso
pagos={"Luz":25000,"Agua":12500,"Gas":35000,"Diario":12000,"Gastos
Comunes":120000}
pagos=funcion02(pagos,"Gas",5000)
[Al estar la clave gas, sumo el monto, esto me da 40000 en gas]
print pagos
pagos=funcion02(pagos,"Cable",25000)
[No se encuentra el cable en el diccionario, por lo cual no hago nada]
print pagos
Respuestas
a) {"Luz":25000,"Agua":12500,"Gas":35000,"Diario":12000,"Gastos Comunes":120000}
{"Luz":25000,"Agua":12500,"Gas":40000,"Diario":12000,"Gastos Comunes":120000}
[No actualiza el gas en la primera impresin]
b) {"Luz":25000,"Agua":12500,"Gas":40000,"Diario":12000,"Gastos Comunes":120000}
{"Luz":25000,"Agua":12500,"Gas":35000,"Diario":12000,"Gastos Comunes":120000}
[El gas no debe haber variado en la segunda impresin]
c) {"Luz":25000,"Agua":12500,"Gas":40000,"Diario":12000,"Gastos Comunes":120000}
{"Luz":25000,"Agua":12500,"Gas":40000,"Diario":12000,"Gastos Comunes":120000}
d) {"Luz":25000,"Agua":12500,"Gas":35000,"Diario":12000,"Gastos Comunes":120000}
{"Luz":25000,"Agua":12500,"Gas":35000,"Diario":12000,"Gastos Comunes":120000}
[No actualiza el gas en la primera impresin]
e) Ninguna de las anteriores

Pag. 8

Potrebbero piacerti anche