# Ex 1
# input sert à demander une valeur à l'utilisateur pendant l'exécution du programme.
# Ex 2
# Le script 1 ne fonctionne pas car type(input(""))==Str
# Le script 2 fonctionne car eval permet de transformer ici un chiffre en Str en Float
# Ex 3
"""l=[eval(input("Note 1 et coeff: ")), eval(input("Note 2 et coeff: ")), eval(input("Note 3 et coeff: "))]
print(sum([i[0]*i[1] for i in l])/sum([i[1] for i in l]))"""
# Ex 4
"""from math import pi
r=float(input("Rayon de la sphère: "))
print(f"Aire: {4*pi*(r**2)}, Volume: {(4/3)*pi*(r**3)}")"""
# Ex 5
"""p=[float(input("Prix: ")), float(input("Pourcentage: "))]
print(p[0]*(1-p[1]/10020))"""
# Ex 6
"""AB=[eval(input("Coos de A")),
eval(input("Coos de B"))]
Vdir=((AB[1][0])-(AB[0][0]), (AB[1][1])-(AB[0][1]))
c=-((AB[1][0])*(-Vdir[1])+(AB[1][1])*Vdir[0])
print(f"{-Vdir[1]}*x+{Vdir[0]}*y+{c}=0")"""
# Ex 7
# Le script 1 fonctionne, mais pas le 2 car il manque une tabulation avant print, la boucle est donc vide
# Ex 8
# d=16, d=12, d=9, d=5
# En enlevant la tabulation, on sort une instruction de la boucle, qui ne sera donc exécuté qu'une seule fois après fin de boucle
# Ex 9
# range(borne de départ inclue, borne d'arrivée exclue, pas)
# renvoie un objet range que l'on peut parcourir et qui, transformé en liste, donne une liste de chiffres allant de Binf à Bsup exclue avec un pas donné (1 par defaut)
"""print(list(range(1,20,2)))"""
# Ex 10
# Le script 1 print qu'une seule fois à la fin du programme, alors que le script 2 print à chaque itération de la boucle
# Ex 11
"""for i in range(21):
print(i**2)"""
# Ex 12
# a) Car il faut sommer pour tout k allant de 1 à n. Or la borne sup est exlue en python, donc il faut aller jusqu'à n+1
# b) L'erreur est le manque de tabulation avant S=S+1/k**2
# Ex 13
"""def f(n):
s=0
for i in range(1,n+1):
s+=1/i**3
return s
print(f(100000))"""
'''def f(n):
s=0
for i in range(1,n+1):
s+=1/i**4
return s
print(f(100000))'''
"""def f(n):
s=0
for i in range(n+1):
s+=(1/2)**i
return s
print(f(1000))"""
"""def f(n):
s=0
for i in range(1,n+1):
s+=(1/i*(i+1))
return s
print(f(1000))"""
# Ex 14
"""def f(n:int):
\"""n>=1\"""
p=1
for i in range(1,n+1):
p*=(1+1/i)
return p
print(f(10))"""
"""def f(n:int):
p=1
for i in range(1,n+1):
p*=(i/(1+i))
return p
print(f(10))"""
"""def f(n:int):
p=1
for i in range(2,n+1):
p*=(1-(1/(i**2)))
return p
print(f(10))"""
"""def f(n:int):
p=1
for i in range(1,n+1):
p*=i
return p
print(f(10))"""
# Ex 15
"""def f1(n):
s=0
for i in range(n+1):
s+=2*i+1
return s
print(f1(11))
def bonus1(n):
s=0
i=0
while 2*i+1<=2*n+1:
s+=2*i+1
i+=1
return s
print(bonus1(11))
def f1(n):
s=0
for i in range(2*n+2):
if not i%2:
s+=i+1
return s
print(f1(11))
def f1(n):
s=0
for i in range(0, 2*n+2, 2):
s+=i+1
return s
print(f1(11))"""
"""def f1(n):
s=0
for i in range(n+1):
s+=2*i
return s
print(f1(11))
def bonus1(n):
s=0
i=0
while 2*i<=2*n:
s+=2*i
i+=1
return s
print(bonus1(11))
def f1(n):
s=0
for i in range(2*n+1):
if i%2:
s+=i+1
return s
print(f1(11))
def f1(n):
s=0
for i in range(0, 2*n+2, 2):
s+=i
return s
print(f1(11))"""
# Ex 16
'''def f(n):
s=0
for i in range(1,n+1):
s+=(1/i**2)
return s
print(f(1000))
def f(n):
s=0
for i in range(1,n+1):
s+=(1/(2*i)**2)
return s
print(f(1000))
def f(n):
s=0
for i in range(1,n+1):
s+=(1/(2*i-1)**2)
return s
print(f(1000))'''
# Ex 17
"""from math import sqrt
def f(n):
s=0
for i in range(1,n+1):
s+=(1/sqrt(i))
return s
print(f(10))"""
#Ex 18
"""u=1
x=eval(input("Valeur de x: "))
while u>x:
u=(u**2)/(u**2+1)
print(u)"""
# Renvoye la premiere valeur de la suite u(n) a partir de laquelle u<=x
# Ex 19
"""from math import log
x=eval(input("Valeur de x: "))
n=1
while log(n)<x:
n+=1
print(n)"""
# Ex 20
"""from math import exp
def f(n):
for i in range(n,n+11):
print((exp(i)-i)/(exp(i)+2*i))
f(0)
def f(n):
i=n
while i<n+11:
print((exp(i)-i)/(exp(i)+2*i))
i+=1
f(100) #Limit = 1"""
# Ex 21
"""from math import log
def f(a):
u=0
for i in range(1,a+1):
u+=(1/i)
v=u
u-=log(a)
v-=log(a+1)
print((u+v)/2)
f(100)"""
# Ex 23
"""def f(a):
k=1
s=0
while k<a:
s+=(1/k**3)
k+=1
print(s)
f(1000)
def f(a):
k=1
s=0
while k<a:
s+=(1/k**4)
k+=1
print(s)
f(1000)
def f(a):
k=1
s=0
while k<a:
s+=(0.5**k)
k+=1
print(s)
f(1000)
def f(a):
k=1
s=0
while k<a:
s+=(1/(k*(k+1)))
k+=1
print(s)
f(1000)"""
# Ex 24
"""def f(a):
s=0
i=1
while s<a:
s+=i
i+=1
print(s)
f(11)"""
# Ex 25
"""from math import factorial
def f(a):
if a==0:
print(1)
elif a<0:
print("Existe pas")
else:
p=1
for i in range(2,a+1):
p*=i
print(p)
f(-1)
def f(a):
print(factorial(a) if a>=0 else "Existe pas")
f(-1)"""
# Ex 26
"""def f(a:float|int):
print(a if a>=0 else -a)
f(-5)
f(5)
f(0)
"""
# Ex 27
"""def f(a,b):
print(max(a,b))
f(2,-5)
def f(a,b):
print(a if a>=b else b)
f(2,-5)"""
# Ex 28
"""import fractions
def f(a,b):
print(fractions.Fraction(-b,a) if a!=0 else "x inexistant")
f(3,26)
f(0,5)"""
# Ex 30
"""def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=i+j
print(s)
f(100)
def f(n):
s=0
i=1
while i<=n:
j=1
while j<=n:
s+=i+j
j+=1
i+=1
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=i*j
print(s)
f(100)
def f(n):
s=0
i=1
while i<=n:
j=1
while j<=n:
s+=i*j
j+=1
i+=1
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=(3*i-2*j)**2
print(s)
f(100)
def f(n):
s=0
i=1
while i<=n:
j=1
while j<=n:
s+=(3*i-2*j)**2
j+=1
i+=1
print(s)
f(100)"""
# Ex 31
"""def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=min(i,j)
print(s)
f(100)
def f(n):
s=0
i=1
while i<=n:
j=1
while j<=n:
s+=min(i,j)
j+=1
i+=1
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=i if i<=j else j
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=max(i,j)
print(s)
f(100)
def f(n):
s=0
i=1
while i<=n:
j=1
while j<=n:
s+=max(i,j)
j+=1
i+=1
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=i if i>=j else j
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=abs(i-j)
print(s)
f(100)
def f(n):
s=0
i=1
while i<=n:
j=1
while j<=n:
s+=abs(i-j)
j+=1
i+=1
print(s)
f(100)
def f(n):
s=0
for i in range(1,n+1):
for j in range(1, n+1):
s+=i-j if i-j>=0 else j-i
print(s)
f(100)"""
# Ex 32
"""def d(a,b,p):
def f(x): return x**3+3*x-5
while abs(b-a)>p:
m=(a+b)/2
if (f(a)*f(m)<0):
b=m
else:
a=m
print(m)
d(10,1,0.0001)
from math import exp
def d(a,b,p):
def f(x): return x+exp(x)-8
while abs(b-a)>p:
m=(a+b)/2
if (f(a)*f(m)<0):
b=m
else:
a=m
print(m)
d(100,-100,0.0001)
def d(a,b,p):
def f(x): return (exp(x)-exp(-x))/2-4
while abs(b-a)>p:
m=(a+b)/2
if (f(a)*f(m)<0):
b=m
else:
a=m
print(m)
d(100,-100,0.0001)"""
# Ex 33
"""def f(x):
print(bin(x))
f(100)
def f(x):
b=[]
while x!=0 and x!=1:
b.append(x%2)
x//=2
b.append(x)
print("".join(str(i) for i in b[::-1]))
f(100)"""
# Ex 35
from math import sqrt, log
def f(x): print(x+7 if x>=1 else x**2)
f(100)
def f(x): print(abs(x-1) if x<3 else sqrt(x**2+1) if x>=3 and x<8 else log(x-6))
f(100)
def f(x): print(x if x==1 else (x+5)/(x+2) if x>=-1 and x<6 else x**2+2*x-3)
f(100)