Tema 4 – Pag 1
PENSAMIENTO COMPUTACIONAL (90)
EXAMEN: PRIMER PARCIAL TEMA 4
APELLIDO: CALIFICACIÓN:
NOMBRE:
DNI (registrado en SIU Guaraní):
E-MAIL: DOCENTE
(nombre y
TEL: apellido):
AULA:
Duración del examen: 1:30h.
Escribir claramente el nombre en todas las páginas.
El examen consta de 10 preguntas de opción múltiple.
Cada pregunta tiene una y sólo una respuesta correcta.
Las respuestas seleccionadas deben consignarse en la siguiente matriz de
opciones.
Sólo se considerarán las respuestas anotadas en la matriz.
Las preguntas de la 1 a la 7 inclusive permiten acumular 1 punto (si son
correctas), de la 8 a la 10 cada una acumula 2 puntos o 0.
La nota final se calcula de acuerdo a la siguiente función:
Punt 1o 3o 5o 7 8 9 10 11 12 13
os 2 4 6
Nota 1 2 3 4 5 6 7 8 9 10
Matriz de Respuestas
Ej 1 Ej 2 Ej 3 Ej 4 Ej 5 Ej 6 Ej 7 Ej 8 Ej 9 Ej 10
1 Pto 1 Pto 1 Pto 1 Pto 1 Pto 1 Pto 1 Pto 2 2 2
Ptos Ptos Ptos
1 1
2 2
3 3
4 4
¡ATENCIÓN! Las respuestas sólo se considerarán válidas si se encuentran en
la matriz. De haber diferencias entre la opción seleccionada en el ejercicio y
en la matriz, se considerará como válida esta última.
1
Tema 4 – Pag 2
0104 – 1 Pto
Si nom='ana' y permiso=True, Cuál programa evalúa menos condiciones?:
if nom=='marta':
if permiso:
print('Primero')
else:
print('Segundo')
if nom=='juan':
1 if permiso: 1
print('Tercero')
else:
print('Cuarto')
if nom!='marta' and nom!='juan':
print('Quinto')
if nom not in ('marta','juan') :
if permiso:
print('Primero')
2 else: 2
print('Segundo')
else:
print('Quinto')
if (nom=='marta' and not permiso)or nom=='juan'):
print('Primero')
elif nom=='marta':
3 print('Segundo') 3
elif permiso:
print('Quinto')
if nom in ('marta','juan'):
if nom=='marta':
if permiso:
print('Primero')
else:
print('Segundo')
4 else: X 4
if permiso:
print('Tercero')
else:
print('Cuarto')
else:
print('Quinto')
0204 – 1 Pto
¿Cuál de las siguientes condiciones no es equivalente al resto?
Sugerencia: Probá para los siguientes valores…
dia=29 , mes=2 , anio=2021
(anio%4==0 and mes==2) or dia in range(1,30) X
1 1
dia in range(1,29) or
2 2
(dia==29 and mes==2 and anio%4==0)
(mes==2 and anio%4==0 and dia==29) or
3 3
(dia>0 and dia<29)
(anio%4==0 and dia>28 and dia<30 and mes in
4 4
range(2,3)) or dia in range(1,29,1)
2
Tema 4 – Pag 3
0304 – 1 Pto
¿Cuál de los siguientes programas no deja la lista c de la siguiente manera?
c= [0, 6, 7, 0, 6, 7]
Notas:
El método extend() le agrega al final una lista a otra
Ej:
a=[1,0]
[Link]([2,3]) -> [1,0,2,3]
El operador + concatena listas, respetando el orden
Ej:
a=[1,0,2,1] b=[5,5]
a+b -> [1,0,2,1,5,5] y b+a -> [5,5,1,0,2,1]
El operador * repite listas
Ej:
a=[1,0,2]
a*2 -> [1,0,2,1,0,2]
a=[1]
b=[0,6,7]
1 largo=len(b)-len(a) 1
c=b*largo
a=[1]
b=[0,6,7]
c=[]
2 for i in range(1,(len(b)-len(a))+1): 2
[Link](b)
a=[1]
b=[0,6,7]
3 c=a*len(b) X 3
a=[1]
b=[0,6,7]
c=[]
4 largo=len(b)-len(a) 4
for i in range(largo):
c=c+b
3
Tema 4 – Pag 4
0404 – 1 Pto
¿Cuál de los siguientes códigos muestran por pantalla exactamente 4
asteriscos?
Nota:
El método islower() devuelve True si el texto tiene letras y todas ellas son
minúsculas
Ej:
‘9’.islower() -> False y ‘m’.islower() -> True
for letra in ('a','A','e','E','i'):
if [Link]():
print('*')
1 for i in range(1): X 1
print('*')
i=1
for letra in ('a','A','e','E','i'):
print('*')
i+=1
2 while i>0: 2
print('*')
i-=1
for i in range(4,1,-3):
for j in range(2,2):
3 print('*') 3
for i in range(4):
for j in range(2):
4 print('*') 4
print('*')
0504 – 1 Pto
¿Cuál será la salida por pantalla del siguiente programa?
traductor={'P':0,'F':5,'R':1,'Q':6,'T':2,'C':7}
cambia='prtsmfqc'
txt='TANTO VA EL CÁNTARO A LA FUENTE QUE AL FINAL SE ROMPE'
txtEditado=txt
for mayusc in traductor:
txtEditado=[Link](mayusc,cambia[traductor[mayusc]])
print(txtEditado)
1 TANO VA EL CÁNAO A LA FUENE QUE AL FINAL SE ROME 1
2 tanto va el cántaro a la fuente que al final se rompe 2
3 22721526510 3
X
4 tANtO VA EL cÁNtArO A LA fUENtE qUE AL fINAL SE rOMpE 4
0604 – 1 Pto
¿Qué devuelve fun() si recibe la siguiente lista:
['carne','Pasta','pollo','Sushi']?
def fun(lista):
txt=''
for plato in lista:
plato=[Link]()
if plato[1] in'aáeé':
txt+=[Link]()
txt+=' '
return txt
4
Tema 4 – Pag 5
1 'carnepastapollosushi' 1
2 '' 2
3 'pollosushi' 3
X
4 'CARNE PASTA' 4
0704 – 1 Pto
¿Cuál de los códigos no es equivalente al siguiente?
nombres=['lara','juan','PABLO','Ema']
for nom in nombres[2:]:
print([Link]())
Nota:
El método reverse() invierte una lista
Ej:
a=[1,0]
[Link]() -> a=[0,1]
i=2
nombres=['lara','juan','PABLO','Ema']
while i<len(nombres):
1 print(nombres[i].lower()) 1
i+=1
nombres=['lara','juan','PABLO','Ema']
[Link]()
for i in range(2):
2 print(nombres[i]) X 2
print(nombres[i])
nombres=['lara','juan','PABLO','Ema']
nombres=nombres[2:]
3 for i in range(len(nombres)): 3
print(nombres[i].lower())
nombres=['lara','juan','PABLO','Ema']
for i in range(len(nombres)):
4 if i>1: 4
print(nombres[i].lower())
5
Tema 4 – Pag 6
0804 – 2 Ptos
¿Qué función edita hay que usar para que el siguiente programa modifique
un texto remplazando letra p por 0, letra u por 2, letra e por 3 y letra r por
4?
def edita(…):
-
-
-
#PPal
texto='Luis es el primo de Fernando'
antes='puer'
queda='0234'
print('Frase original:',texto)
nuevoTexto=edita(texto,antes,queda)
print('Frase editada:',nuevoTexto)
El programa debería mostrar por pantalla lo siguiente:
Frase original: Luis es el primo de Fernando
Frase editada: L2is 3s 3l 04imo d3 F34nando
Nota:
El método replace() cambia las ocurrencias del primer argumento por el
segundo
Ej:
'Hola qué tal!'.replace('a', 'e') ->'Hole qué tel!'
def edita(t):
for i in range(len(ant)):
1 if ant[i] in t: 1
t=[Link](ant[i],que[0])
def edita(t,a,q):
for car in q:
if car in t:
2 t=[Link](car,a[0]) 2
return a
def edita(t,a,q):
for i in range(len(a)):
if a[i] in t:
3 t=[Link](a[i],q[i]) X 3
return t
def edita(antes,queda,t):
for i in range(len(antes)):
if antes[i] in t:
4 [Link](queda[i],antes[i]) 4
return t
0904 – 2 Ptos
¿Qué muestra por pantalla el siguiente programa?
a=2.5
b=10
c=0
d=2
calculo= b*(d+a)//(b-d)-c
print(calculo)
1 -7.02 1
2 5.0 X 2
3 20.0 3
6
Tema 4 – Pag 7
4 0.0 4
1004 – 2 Ptos
Indique cuál es la salida correcta del siguiente programa:
def terminaCons(pal):
ultima=pal[-1]
return [Link]() not in 'aeiou'
golosinas=['Alfajor','CARAMELO','BOMBÓN','chupetín','chicle']
i=0
while i<len(golosinas):
if terminaCons(golosinas[i]):
[Link](i)
else:
i+=1
print(golosinas)
Nota:
El método pop() elimina el elemento de la lista que está en la posición indicada
en el argumento
Ej:
a=[1,2,3,4,5]
[Link](2) -> a=[1,2,4,5]
Un índice negativo -i apunta a un elemento i posiciones antes del final
Ej:
a=[1,2,3,4,5]
a[-2] -> 4
1 ['CARAMELO', 'chicle'] X 1
2 ['alfajor', 'caramelo', 'bombón', 'chupetín', 'chicle'] 2
3 [] 3
4 ['alfajor', 'bombón', 'chupetín'] 4