Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Escola Politècnica Superior Gognoms:

Graus Enginyeria Nom:


Informàtica Grup:
Numero UdG:

Observacions:
Tot dispositiu de comunicació (mòbil, ordinador,...) ha d’estar apagat.
Teniu 150 minuts.
L’exercici de programació s’han de respondre amb Python.

Donada una seqüència d’enters acabada en 0 entrada per teclat, es demana:

a) (40%) Trobar la mitjana dels elements de la posicions imparells. Trobar també la


desviació típica dels elements imparells. Recordeu que la desviació Standard o típica
es calcula com:
sqrt((∑(xi-mitjana)2)/numero d’elements)
b) (30%) Dir si hi ha algun número de Fibonacci dintre l’interval tancat
[int(mitjana)-int(desviació Standard), int(mitjana)+int(desviació Standard)]
Recordeu que la sèrie de Fibonacci comença per 1,1 i cada element es la suma dels
dos anteriors, així es: 1,1,2,3,5,8,13,21,34,55,98,....
c) (30%) Escriviu les posicions parells de l’entrada que tinguin un valor més gran que la
mitjana que hem calculat i la posició anterior (imparell) tingui un valor inferior.

Exemple:
Entrada: 34 23 2 44 7 18 0
Mitjana posicions imparells: 14.33
Desviació Staandard: 14.05
Interval : [0,28]
A l’interval hi ha un numero de Fibonacci
A la posició 4 amb valor 44 compleix que es més gran que 14.33 i el seu anterior 2 es
inferior.
A la posició 6 amb valor 18 compleix que es més gran que 14.33 i el seu anterior 7 es
inferior.
#Esquema de recorregut amb un while
num=int(input("Entreu un número: "))
llnum=[]
while not num==0:
llnum.append(num)
num=int(input("Entreu un número: "))

suma=0
cont=0
#Esquema de recorregut amb un for
for i in range(0,len(llnum),2):
suma=suma+llnum[i]
cont=cont+1

mitjana=suma/cont
print("la mitjana és:",mitjana)

suma=0
#Esquema de recorregut amb un for
for i in range(0,len(llnum),2):
suma=suma+(llnum[i]-mitjana)**2

suma=suma/cont
desv=suma**(1/2)
print("la desviació és:",desv)

minim=int(mitjana)-int(desv)
maxim=int(mitjana)+int(desv)

#Esquema de cerca amb un booleà


fib=1
fiba=1
trobat=False
while not fib>maxim and not trobat:
trobat=(fib>minim)
if not trobat:
aux=fib
fib=fib+fiba
fiba=aux

if trobat:
print("Hi ha el",fib,"en el l'interval [",minim,',',maxim,"]")
else:
print("No hi ha cap nuúmero en el l'interval [",minim,',',maxim,"]")

#Esquema de recorregut amb un while


i=1
trobat=False
while not i>=len(llnum):
if llnum[i]>mitjana and llnum[i-1]<llnum[i]:
print("A la posició",i+1,"amb valor",llnum[i],"compleix que és més gran que",mitjana,"i el
seu anterior",llnum[i-1],"es inferior.")
i=i+2

You might also like