'''TP : formation d'images '''


## Importation des modules

import numpy as np
import matplotlib.pyplot as plt
import random as rd


## Distance focale
# définitions des listes des mesures algébriques OA et OA'
L_OA = [...]
L_OA_prime = [...]

def calcule_focale(OA, OA_prime):
    ''' Fonction qui prend en arguments les deux mesures OA et OAp et qui renvoie
    la distance focale de la lentille '''
    focale = OA*OA_prime /(OA-OA_prime)
    return focale

def calcule_liste_focales(L_OA, L_OA_prime):
    '''fonction qui prend en arguments deux listes dont les éléments sont
    des flottants et qui correspondent respectivement aux mesures
    algébriques OA et OA' et qui renvoie la distance des distances focales  '''
    L_focales = []
    for i in range(len(L_OA)):
        focale = calcule_focale(L_OA[i], L_OA_prime[i])
        L_focales.append(focale)
    return L_focales


L_focales = calcule_liste_focales(L_OA, L_OA_prime)

moyenne_focale = np.mean(L_focales)
ecart_type_focale = np.std(L_focales, ddof = 1)

plt.figure('Focales')
plt.plot(L_focales, 'rs')
plt.plot([0, len(L_focales)], [moyenne_focale, moyenne_focale], 'k--')
plt.ylabel("f' (cm)")
plt.show()

print('distance focale moyenne : ', moyenne_focale, 'cm')
print('écart-type : ', ecart_type_focale, 'cm')
