Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PEP 1 - Fundamentos de Computaci - N (2013-2)
PEP 1 - Fundamentos de Computaci - N (2013-2)
SERIE A
a)
b)
c)
d)
El estudiante recibir del equipo docente, un set de preguntas y hojas para las respuestas.
El estudiante 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.
e) Durante el desarrollo de la prueba queda prohibido hablar con los compaeros(as).
f) Los elementos tecnolgicos deben permanecer apagados y guardados. Queda
absolutamente prohibido el uso todo elemento tecnolgico. Su uso puede significar la nota
mnima.
g) El/La estudiante que se sorprenda en actos deshonestos ser calificado con la nota
mnima.
h) La prueba contiene 12 preguntas de alternativas y 1 pregunta de desarrollo y un total de 30
puntos.
i) La escala de notas a usar ser la siguiente:
j)
RUT
10
11
12
A
B
C
D
E
27-NOV-2013
SERIE A
Parte 1.
Alternativas
Para cada pregunta marque la alternativa correcta en la hoja de respuestas de la pgina de aspectos generales.
El puntaje total de esta parte es de: 23 puntos.
1.
Dado el modelo de Von Neumann, cules de los siguientes dispositivos son considerados de entrada: (1 punto)
I.
II.
III.
IV.
V.
2.
a)
b)
c)
d)
e)
I y IV
I y II
I, III y IV
I, II, IV y V
Todas
Segn las buenas prcticas de programacin, el orden en que se declara un buen programa sera: (1 punto)
I.
II.
III.
IV.
V.
3.
Procesamiento [4]
Importacin y definicin de funciones [2]
Salida [5]
Entrada [3]
Importacin y definicin de constantes [1]
a)
b)
c)
d)
e)
V - II - IV - I III
IV - I - V - II - III
IV - II - V - I - III
V - IV - II - I - III
V - II - I - IV III
I.
Parmetros formales: nombres que se utilizan al definir una funcin para referirse a los argumentos que
se le entregan al invocarla.
Parmetros actuales: nombres que se utilizan al definir una funcin para referirse a los argumentos que
se le entregan al invocarla. [Definicin de parmetro formal]
Parmetros formales: nombres que utilizan al invocar a la funcin, para dar valor a los argumentos que la
definen. [Definicin de parmetro actual]
Parmetros actuales: nombres que utilizan al invocar a la funcin, para dar valor a los argumentos que la
definen.
II.
III.
IV.
4.
a)
b)
c)
d)
e)
I y IV
I y II
II y III
I y III
II y IV
El resultado binario (con palabras de 1 byte) de la operacin (31)2 - (42)2 es: (2 puntos)
a)
b)
c)
d)
e)
5.
11110100
00001011
00110101
11110101
00110100
Opcin 1
00011111 00101010
00101010 11010101 11010110
00011111 + 11010110 11110101
Opcin 2:
31 42 = - 11
(11)10 (00001011)2
(-11)10 (11110100)2 + (00000001)2 (11110101)2
I.
II.
III.
IV.
a)
b)
c)
d)
e)
Slo I
I y II
I, II y III
I, II y IV
Todos
6.
De acuerdo a la siguiente expresin escrita en Python, qu caractersticas debera cumplir la variable X para que
se ejecuten las sentencias del bloque condicional? (2 puntos)
if x % 2 != 0 or x < 10 and x > 0:
...
a) La variable X debe ser un nmero impar
conjunto de sentencias
menor que 10 y mayor que 0
...
b) La variable X puede ser cualquier nmero
x % 2 != 0 : Condicin para que entren nmeros
positivo
impares.
c) La variable X debe ser un nmero positivo de
x < 10 and x > 0: Condicin para que entren
un solo dgito
nmeros entre 0 y 10
d) La variable X debe ser un nmero impar o un
Dado que es un or entrar si es impar, por lo cual
nmero par positivo menor que 10
solo nos queda ver la opcin de los pares, los
e) Nunca se ejecuta el bloque condicional porque
cuales entran siempre y cuando sean mayor que 0
la condicin est, lgicamente, mal escrita
(positivos) y menor que 10.
27-NOV-2013
SERIE A
7.
def calculaResultado(x):
resultado = 0
i = 5
while i < x:
if i%2 == 0 :
resultado = x * 2.0 + resultado
x = x - 1
return resultado
calculaResultado(25)
a)
b)
c)
d)
e)
0
500.0
300.0
300
500
La condicin del if se cumple para los valores i pares, pero el valor de i nunca varia y se mantiene en
su valor inicial 5, por lo cual nunca se entra al if, y nunca se actualiza el valor de resultado,
manteniendo el valor inicial de este ltimo (0).
8.
En el siguiente cdigo falta una instruccin marcada como ?. Sabiendo esto es correcto afirmar: (2 puntos)
num=10
if num==10:
print "a",
num += 1
? num ==11:
print "b",
num -= 1
if num == 10:
print "c"
a)
b)
c)
d)
e)
9.
27-NOV-2013
SERIE A
11. En una empresa de videojuegos se est desarrollando un novedoso juego llamado laberinto. Este consiste en
atravesar un laberinto desde una posicin inicial (E) hasta un objetivo (S), tal como se muestra en la figura 1. Los
caminos se representan por un entero que contiene solo los dgitos 2 (avanzar un paso hacia abajo) y 4(avanzar
un paso a la derecha). Para el ejemplo, un posible camino sera 444222 (derecha, derecha, derecha, bajar, bajar,
bajar, comenzando en E para llegar a S).
27-NOV-2013
SERIE A
12. Se puede estimar la poblacin mundial que habr el siguiente ao con la siguiente frmula:
poblacion_futura = poblacion_actual + (tasa_nacimiento tasa_defunciones)*poblacin_actual
A partir de esta frmula es posible crear una funcin que calcule la poblacin mundial dada la poblacin actual,
las tasas de nacimiento y defuncin y el ao en que se quiere estimar la poblacin. Cul(es) de las siguientes
funciones dado los parmetros anteriores calcula efectivamente la poblacin mundial para un ao
determinado? Considere tNac = Tasa de nacimiento y tMor = Tasa de mortandad y anoActual <= anoFuturo. (3
puntos)
# Ej. De entrada: poblacionFutura (0.0191, 0.00799, 7000000000)
def poblacionFutura (tNac, tMor, poblacionActual):
poblacionFutura = poblacionActual
poblacionFutura += (tNac - tMor)*poblacionActual
return poblacionFutura
I. # Ej. De entrada:
# poblacionFutura (0.0191, 0.00799, 7000000000, 2013, 2025)
# Este ejemplo es vlido para las opciones II, III y IV
II.
III.
Calcula la poblacin futura solo del siguiente ao, no depende de la cantidad de aos que
uno indique.
def poblacionFutura (tNac, tMor, poblacionActual, anoActual, anoFuturo):
poblacionFutura = poblacionActual
ano = anoActual
while ano < anoFuturo:
poblacionFutura += (tNac - tMor)*poblacionActual
ano += 1
return poblacionFutura
def poblacionFutura (tNac, tMor, poblacionActual, anoActual, anoFuturo):
if anoActual == anoFuturo:
return (tNac - tMor)*poblacionActual + poblacionActual
else:
return poblacionFutura (tNac, tMor, poblacionActual, anoActual+1, anoFuturo)
Calcula la poblacin futura solo del siguiente ao, no depende de la cantidad de aos que
uno indique.
def poblacionFutura (tNac, tMor, poblacionActual, anoActual, anoFuturo):
if anoActual == anoFuturo -1:
return (tNac - tMor)*poblacionActual + poblacionActual
IV.
else:
return
(tNac
tMor)*poblacionActual
+
poblacionFutura
(tNac,
tMor,
poblacionActual, anoActual+1, anoFuturo)
a) Solo I
b) III y IV
c) I y III
d) II y IV
e) Solo III
27-NOV-2013
SERIE A
Parte 2.
Desarrollo
7 puntos
El siguiente programa escrito en Python, est construido considerando las buenas prcticas de la programacin. Se observa
que estn definidas las funciones que permiten calcular la resta entre dos nmeros enteros, compuestos por 0 s y 1s , que
representan un nmero binario.
Se solicita que analice el programa y construya el bloque principal, necesario para invocar/llamar las funciones
realizarn la operacin aritmtica (resta).
Ejemplo : (1000)2 (10)2 = (110)2
############## Encabezado
#### Objetivo: Composicin de funciones
#### Autor: Coordinacin Fundamentos de Computacin y Programacin
#### Fecha: 2-2013
#### Versin: 2.3
###### Constantes
## No hay
###### Funciones
## Definicin
###### Funcion que verifica si la entrada es correcta o no
## Entrada: Nada
## Salida: Numero entero compuesto por 0's y 1's que representa un numero binario
def solicitarEntrada():
numero = input ("Ingrese un numero binario: ")
while (not verificarNumeroBinario(numero)) and contarDigitos(numero) <= 8:
print "Puede ser que el numero tenga ms de 8 bits."
print "Si es que el numero ingresado comienza con 0, por favor no los ingrese."
numero = input ("Ingrese un numero binario: ")
return numero
###### Funcion que cuenta cuantos dgitos tiene un numero
## Entrada: Un numero entero
## Salida: Cantidad de dgitos del numero ingresado
def contarDigitos(n):
contador = 0
while n > 0:
contador += 1
n /= 10
return contador
###### Funcion que verifica si el numero ingresado esta compuesto por 0s y 1s o no
## Entrada: Un numero entero
## Salida: Verdadero si el numero esta compuesto por 0s o 1s o falso en caso contrario
def verificarNumeroBinario(n):
while n > 0:
resto = n%10
if resto != 0 and resto != 1:
return False
n = n/10
return True
###### Funcion que complementa un numero binario, cambiando los 0's por 1's y los 1's por
## 0's
## Entrada: Un numero entero compuesto por 8 0's o 1's
## Salida: Un numero entero compuesto por 8 0's o 1's
def complementarBinario(numero):
respuesta = 0
cont = 7
while cont >= 0:
resto = numero/10**cont
if resto==0:
respuesta = respuesta + 10**cont * 1
else:
respuesta = respuesta + 10**cont * 0
numero = numero-(numero / 10**cont)*10**cont
cont -= 1
return respuesta
27-NOV-2013
SERIE A
que
27-NOV-2013
SERIE A