Cooperación Entre Funciones
Cooperación Entre Funciones
Cooperación Entre Funciones
Ejercicio 1
Se dice que dos números a y b son “amigos” si cada uno de ellos es la suma de los divisores propios del otro.
Los divisores propios son todos los divisores excepto el mismo número.
1
Programación II
Docente: Juan Orlando Monsalve Rodríguez
Documentación de la Función
def sumaDiv(num):
suma=0
k=1
while(k<num):
if((num%k)==0):
suma=suma+k
k+=1
return(suma)
def amigos(num1,num2):
suma1=sumaDiv(num1)
suma2=sumaDiv(num2)
#Código de prueba
x=amigos(220,284)
print(x)#retorna True
x=amigos(1184, 1210)
print(x) #retorna True
x=amigos(125,345)
print(x) #retorna False
Ejercicio 2
Hacer una función que reciba como parámetro un número entero positivo y retorne si es u número narcisista o
no. Un número narcisista es un Número de n dígitos que resulta ser igual a la suma de las potencias de orden
n de sus dígitos. Realizar las funciones necesarias.
Ejemplo:
7 = 71
153 = 1³ + 5³ + 3³.
9474 = 94 + 44 + 74 + 44
2
Programación II
Docente: Juan Orlando Monsalve Rodríguez
return(cont)
def sumaPot(num):
suma=0
expo=contard(num)
while(num>0):
n=num%10
suma=suma+(n)**expo
num=num//10
return(suma)
def narcisista(num):
x=sumaPot(num)
if(x==num):
a=True
else:
a=False
return(a)
#Código de prueba
x=narcisista(153)
print(x) #retorna True
x=narcisista(345)
print(x) #retorna False
x=narcisista(9474)
print(x) #retorna True
Ejercicio 3
El número de combinaciones de m elementos tomados de n en n está determinado por
m m!
Haga una función factorial y una función combinarlo con dos parámetros n y m. Recordar
n n !( m n) !
que n y m son positivos y que si n es mayor que m la combinatoria es cero.
3
Programación II
Docente: Juan Orlando Monsalve Rodríguez
Documentación de la Función
def factorial(num):
k=1
f=1
while(k<=num):
f=f*k
k+=1
return(f)
def combinatoria(m,n):
if(n>m):
c=0
else:
fm=factorial(m)
fn=factorial(n)
fmn=factorial(m-n)
c=(fm)/(fn*fmn)
return(c)
#Casos de prueba
s=combinatoria(10,4)
print(s)
s=combinatoria(7,4)
print(s)
Ejercicio 3
Hacer las funciones necesarias para que dado un entero positivo k se calcule el valor de
1k 1
Utilizando las series de Taylor. 4
k 1 (2k 1)
Documentación de la Función
def potencia(e):
p=-1
if((e%2)==0):
p=1
return(p)
def sumatoria(num):
sumapi=0
k=1
while(k<=num):
num=potencia(k+1)
den=((2*k)-1)
sumapi=sumapi+(num/den)
j+=1
return(4*sumapi)
4
Programación II
Docente: Juan Orlando Monsalve Rodríguez
#Casos de prueba
x=sumatoria(100)
print(x)
x=sumatoria(1000)
print(x)
Ejercicio 4
Hacer las funciones necesarias para que dado un valor real de x se calcule el valor de .
xi
e 1
x
i 1 i!
Documentación de la Función
def potencia(b,e):
k=1
p=1
while(k<=e):
p=p*b
k+=1
return(p)
def factorial(num):
k=1
f=1
while(k<=num):
f=f*k
k+=1
return(f)
def sumatoriaEuler(x):
k=1
sumaE=0
while(k<=100):
num=potencia2(x,k)
den=factorial(k)
sumaE=sumaE+(num/den)
k+=1
return(sumaE+1)
#Casos de prueba
x=sumatoriaEuler(0)
print(x)
x=sumatoriaEuler(1)
print(x)
5
Programación II
Docente: Juan Orlando Monsalve Rodríguez
Ejercicio 5
Hacer las funciones necesarias para que dado un valor real de x en (grados) se calcule el valor de:
15
x 2 k 1
Seno( x ) (1) k
k 0 ( 2k 1)!
Para el cálculo del seno de x (x dado en radianes) (realmente las sumatorias son hasta infinito, pero para
efectos de programación se han acotado lo suficiente para que se puedan realizar los cálculos y que el
resultado sea aproximado al verdadero valor).
return(p)#potencia base -1
def potencia2(b,e):
k=1
p=1
while(k<=e):
p=p*b
k+=1
return(p) #potencia
def factorial(num):
k=1
f=1
while(k<=num):
f=f*k
k+=1
return (f) #factorial
def funcionSeno(x):
rad=(x*3.1415)/180 #grados*pi/180
k=0
sumas=0
while(k<30):
p1=potencia1(k)
num=potencia2(rad,2*k+1)
den=factorial(2*k+1)
sumas=sumas+(p1*num)/den
k+=1
return(sumas)
6
Programación II
Docente: Juan Orlando Monsalve Rodríguez
#Caso prueba
s=funcionSeno(0)
print(s)
s=funcionSeno(90)
print(s)
s=funcionSeno(180)
print(s)
s=funcionSeno(270)
print(s)
Ejercicios propuestos
2. Hacer las funciones necesarias para que dado un valor real de x en (grados) se calcule el valor de:
15
x 2k
Cos( x ) ( 1)
k 0
k
( 2 k )!
Para el cálculo del coseno de x (x dado en radianes) (realmente las sumatorias son hasta infinito, pero para
efectos de programación se han acotado lo suficiente para que se puedan realizar los cálculos y que el
resultado sea aproximado al verdadero valor)
3. Hacer las funciones necesarias para que dado un valor real de x calcule el valor de:
2 k 1
1 x 1
ln( x) 2
k 0 2k 1 x 1
b
k3 kk
4. Calcular la siguiente sumatoria
k a k 5 , para los valores de a y b dados (validando que “a” sea
k 0,k 5
mayor que “b”), y teniendo en cuenta que k no puede ser 5 pues generaría una división por cero, ni k puede
valer 0 pues cero a la cero es indefinido. También tenga en cuenta que la función potencia debe permitir
cálculos de potencias con exponentes negativos dado que k puede tener valores negativos
7
Programación II
Docente: Juan Orlando Monsalve Rodríguez
8
k 3 k k 43 44 63 66 73 77 83 88
Ejemplo si a= 4 y b=8 entonces k 4 k 5
45
65
75
85
k 0 ,k 5
Nota: Documentar la función en Jupyter NoteBooks de cada uno de los ejercicios propuestos.