Computing">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
7 vues19 pages

Introduction au langage Python en physique

Ce document est un cours sur le langage Python, couvrant des sujets tels que les instructions, les boucles, les listes, les chaînes de caractères, et les modules. Il introduit également des concepts de base en machine learning et fournit des exemples pratiques d'utilisation de Python. Le cours est destiné aux étudiants de la faculté des sciences de l'université de Douala et est dirigé par Pr DAFOUNANSOU Ousmanou.

Transféré par

evacheuffambouwe
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues19 pages

Introduction au langage Python en physique

Ce document est un cours sur le langage Python, couvrant des sujets tels que les instructions, les boucles, les listes, les chaînes de caractères, et les modules. Il introduit également des concepts de base en machine learning et fournit des exemples pratiques d'utilisation de Python. Le cours est destiné aux étudiants de la faculté des sciences de l'université de Douala et est dirigé par Pr DAFOUNANSOU Ousmanou.

Transféré par

evacheuffambouwe
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Faculté des sciences de l’université de Douala

Département de physique

Cours d’informatique: Phy code

LANGAGE PYTHON

Par: Pr DAFOUNANSOU Ousmanou

31 janvier 2025
Table des matières

0.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
0.2 Quelques instructions . . . . . . . . . . . . . . . . . . . . . . . 1
0.3 Boucles et instructions conditionnelles . . . . . . . . . . . . . 4
0.4 Listes et chaines de caractères . . . . . . . . . . . . . . . . . . 6
0.5 Procédures et fonctions . . . . . . . . . . . . . . . . . . . . . . 11
0.6 Les Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
0.7 Les Dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . 15
0.8 Modèles simples du Machine Learning . . . . . . . . . . . . . . 18

0.1 Introduction
Le python fut créé en 1991 par Guido Rossum. La version la plus récente
est le Python 3. Python présente plusieurs avantages L’enregistrement d’ob-
jets est très facile en Python. Python se compile sans difficulté et en quelques
minutes sur la plupart des plates-formes. C’est en fait un langage interprété.
Les programmes peuvent rétablir leur fonctionnement normal même si des
erreurs surviennent dans le code qu’ils appellent.
Python fournit d’excellents outils pour la documentation des fonctions.
Le langage Python, est un langage de programmation répandu, activement
développé et optimisé par des centaines de développeurs. Il est bien adapté
pour lanalyse des donnés, le machine learning. Python possède des frame-
works pour le développement web et pour le deep learning. Pour l’analyse
numérique, l’algèbre linéaire, la visualisation 2D et le calcul formel les uti-
lisateurs de Sage par exemple exploitent directement des packages d’ores et
déjà disponibles pour python.

0.2 Quelques instructions


• Instruction Ecrire :
C’est une instruction qui demande à l’ordinateur d’afficher (print) un mes-

1
sage (commentaire, résultat, indication). Elle se présente ainsi

• Instruction Lire :
L’instruction lire (input) permet d’entrer une donnée (variable) dans la ma-
chine. L’avantage avec Python est qu’il n’est pas toujours nécessaire de don-
ner le type de la variable. Sauf si les oprérations l’exigent. On a par exemple :

L’instruction input se traduit de manière visuel par un curseur qui cli-


gnote ou encore par l’apparition d’une caase rectangulaire a remplir précédée
par un commentaire qui vous donne des indications sur la donnée à intro-
duire. Le programme précédent s’exécute de la manière suivante :

Dans le cas où il est neccessaire de présciser le type, l’introduction d’un


réelle (float) a par exemple, on aura
a=float(input(”donner la valeur du paramètre a”))
Pour les chaines de caractères (string) ce sera str et pour les entier (integer)
ce sera int.
• Adresse en mémoire : id
a = [1, 2; 3] ; b = [1, 2; 3]
a == b affichera True ; et a is b affiche False.
id donne l’adresse en mémoire. id(a) = 4456584048 et id(b) = 4457604032.
Ainsi l’adresse en mémoire de a est différente de celle de b.
Remarque : Dans le langage python les adresses des nombres copris entre −5
et 256 sont identiques. Exemple a = 11 et b = 11 auront la mêmes adresse.
Ainsi a is b affiche True.
• Conversion des types
• Quelques opérations arithmétiques et assignations
Incrémentation i+ = 1 équivaut à i = i + 1
Décrémentation i− = 1 équivaut à i = i − 1
Multiplication i∗ =

2
division i/ =

• Écriture formatée

Exemple en génétique On veut afficher : le génome qui contient 4500G

(nbG + nbC)
et de 2575C,soit une proportion GC de . Nous avons l’écriture
14800
formatée en précisant le type.

3
» a = 43.34456

» b = 12

» print("Un entier et un float ".format(b, a))


Un entier 12 et un float 43.34456

» print("Un entier 0 :03d et un float 1 :.2f".format(b, a))


Un entier 012 et un float 43.34
Si on veut générer une url avec les chaines suivantes :
protocole :"https ://"
nomsite : "facsciences"
extention : "cm"
Par une écriture formatée nous aurons :
url="www..".format(protocole, nomsite,extention)
Il existe aussi le format dit f-string : il s’écrit
url=f"[Link]"

0.3 Boucles et instructions conditionnelles


• Boucle ’for’
La boucle for considère une variable ici i à chaque entrée dans la boucle
et incrémente automatiquement d’un pas. i appartient à un ensemble donnée
généralement une liste.
La liste peut etre crée via la fonction range qui attend un argument entier
positif ou négatif (parfois !).

for i in [0, 1, 2, 3, 4] : est équivalent à for i in range(5) : la fonction range


compte à partir de 0 et ignore la dernière valeur. Si on souhaite éviter 0 et
commencer par 1 par exemple on aura

• Boucle ’tant que’ (while). Elle effetue à peu près la meme tache que

4
la boucle for. Elle donne cependant la possibilité d’incrémenter ou de décré-
menter avec un pas supérieure à 1.
le code précédent peut encore se formuler ainsi :
i=0
while i < 5 :
print(i)
i=i+1
On a aussi l’exemple suivant où on éffectue une décrémentation.

Noter la différence avec le langage C ou Pascal où les blocs d’instructions


sont délimités respectivement par les accolades et par begin suivi de end .
Ici ces blocs sont repérés par décalage ! on parle d’indentation. Ainsi chaque
boucle ou instruction conditionnelle est suivi de deux point : ce qui signifie
que l’instruction ou l’exécution suivante sera indentée (décalée vers la droite).
• condition ’if’

autres exemples

Le elif permet d’éviter les instructions conditionnelles imbriquées voir


exercice sur la résolution d’une équation du second dégré à titre d’exemple.

5
• Instruction break. Elle permet de sortir d’une boucle.
• Instruction continue : Elle permet de sauter i.e de ne rien faire pour
une valeur de i respectant une certaine condition et de passer aux valeurs
suivantes.

0.4 Listes et chaines de caractères


• Les listes
C’est l’équivalent des tableaux, une liste peut etre considérée comme un
vecteur si les éléments sont du meme type. Il est souvent nécessaire d’im-
porter le module numpy pour éffectuer les opérations sur les vecteurs et
matrices. Une liste est représentée par un crochet [ ], et ses éléments sont
séparés par une virgule et peuvent être de types différents. On peut avoir les
exemples suivants : L = [1, 2, 10, 7] L = [0 a0 ,0 c0 , 3.14, true] elle peut être

6
vide L = [ ] ou contenir des opérations algébriques L = [a ∗ a, 5]
Pour accéder à un élément d’une liste, on met l’identificateur et l’indice
en crochet On a pour L = [1, 2, 10, 7] L[0] = 1 L[i] = iime élément
i ∈ [0, 1, 2, ....., n]

On peut aussi utiliser les indices négatifs ce qui correspond au comptage


inverse. pour L = [1, 2, 10, 7] on aura L[−1] = 7 et L[−3] = 2

• Opérations sur les listes


On débute par la fonction len qui donne le nombre d’éléments d’une liste, en
d’autres termes sa longueur !

La fonction ’Append’ permet d’ajouter un élément dans une liste. Si


nous voulons transformer a = [1, 4, 5] en a = [1, 4, 5, 0].

On peut ausi avoir

On peut aussi contruire une autre liste de la manière suivante (Liste en


compréhention) :

7
On peut aussi appliquer la fonction sorted qui permet de trier une liste
et peut donner une autre liste ou écraser la liste précédente si on le veut.
>>> L = [5, 3, 9, 7, 1, −2]
>>> sorted(L)
>>> print(L)
[5, 3, 9, 7, 1, −2]
ou encore
>>> L = [5, 3, 9, 7, 1, −2]
>>> L = sorted(L)
>>> print(L)
[−2, 1, 3, 5, 7, 9]
Nous avons aussi la fonction sort qui par contre modifie directement la liste
on dit que sort est une méthode. Biensur à condition que l’objet soit muable
(mutable) liste, dico .... mais pas les chaines
>>> L = [5, 3, 9, 7, 1, −2]
>>> [Link]( )
>>> print(L)
[−2, 1, 3, 5, 7, 9]

• Les Slices
On peut aussi décider d’extraire une série d’éléments d’une liste donnée.
Considérons une foid de plus la liste lst = [2, 4, 1, 5, 9] du début du para-
graphe.

Remarque : dans le premier cas on n’atteint pas la borne supérieure par


contre les deux point ouverts à droite permettent d’atteindre la borne supé-
rieure.
Ainsi si print(lst[0:]) affiche tous les éléments.
print(lst[:-1]) affiche tous les éléments à l’exeption du dernier.
print(lst[:-2]) affiche tous les éléments à l’exeption des deux derniers.

8
Enfin print(lst[::-1]) inverse la liste, soit [9, 5, 1, 4, 2]. On peut aussi
utiliser la méthode .reverse( ).
print(lst[::2]) recupère un élément sur deux.
print(lst[1::2]) recupère un élément sur deux mais à partir du 2ème.
On peut aussi enlever un élément avec [Link](5) qui enlève seulement la
première occurence de 5.
• Chaines de caractères

En ce qui concerne la notion appartenance, elle est directe pour les chaines
caractères, par contre pour les listes elle concerne les éléments mais pas
les sous listes. A moins que la liste contienne cette sous liste. Considérons
L="bonjour" et la liste [1, 3, 7], on aura :

Seul les éléments 1 et 3 de la liste [1, 3] sont contenus dans la liste [1, 3, 7]
mais la liste elle même n’y ait pas.
Un exemple de liste formée des listes : ces listes peuvent être assimilées aux
matrices. On peut considérer la repartions des animaux sauvage dans un Zoo
où les espèces sont regroupées dans des enlos.
La méthode join : elle appliquée aux chaines de caractères. Exemple :
liste=["python", "est", "un", "langage", "populaire"]
Si on fait r=" ".join(liste) on obtient
r= python est un langage populaire
par contre r="".join(liste) donne r = pythonestunlangagepopulaire.
A noter que dans le premier cas il existe un espace entre les apostrophes.

9
On peut aussi décider de substiruer un segment d’une chaie de caractère
par une autre chaine de caractère. On considère l’expresssion bonjour bon-
jour. il suffit d’apppliquer .replace(S1,S2) où S1 est le segment qui sera
remplacé par S2.

On peut aussi déterminer la position d’un élément dans une liste (index).
Par exemple si on considérons une liste des employés :
employes=["Ali", "Max", "Martin", "Mouloud", "Patrick", "Kamga"]
on aura alors resulat=[Link]("Max")
print(resultat)
1
count permet de trouver le nombre d’occurence d’un élément dans une liste.
r=[Link]("Mouloud")
print(r) affiche 1.
On peut aussi enlever un élément dans une liste par rapport à son indice.
[Link]("-1") enlève le dernier élément de la liste, soit Kamga. Si on
veut vérifier s’il sagit bien de l’élément en question on fait : x= [Link]("-1").
print(x) : cela affichera Kamga.

• comment créer une liste à partir d’une chaine de caractère.


On a tout d’abord la fonction list qui transforme ue chaine de caractère en
liste de caractère.

10
soit l = list(’Pithon’)
print(l) affichera [’P’, ’i’, ’t’, ’h’, ’o’, ’n’]
on peut substituer un élément par l[1] = ’y’
print(l) affichera [’P’, ’y’, ’t’, ’h’, ’o’, ’n’]
avec "-".join(l) on obtient ’P-y-t-h-o-n’ et "".join(l) donne ’Python’.
Autre exemple, on considère la chaine de caractère suivante qui est en fait
un texte :
achats =”riz, pomme, banane, lait, farine”
achats=[Link](", ")
print(achats) affichera : [’riz’,’pomme’,’banane’,’lait’,’farine’].
On remarque l’espace après la virgule dans lla méthode split ? A savoir que
cette dernière n’affecte pas directement la chaine.
• T DN 0 1
Exercice 0.1. Écrire une fonction Python qui calcule la Psomme des inverses
1
des carrés des n premiers entiers naturels non nuls soit n2
.
Exercice 0.2. a) Écrire un programme qui affiche les tables de multiplica-
tions d’un nombre donné de 1 à 10.
b) Écrire un script longeur [Link], qui demande de saisir 2 chaînes de
caractères et qui affiche la plus grande des 2 chaînes (celle qui a le plus de
caractères).
Exercice 0.3. Écrire un programme qui, à partir de la saisie d’un rayon et
d’une hauteur, calcule le volume d’un cône droit et affiche le résultat : on
donne V = 31 πr2 h. Préciser les types à l’entrée et à l’affichage (formatée).
Exercice 0.4. Écrire un programme python qui construit et qui effectue les
opérations suivantes :
- Construit une liste La formée des carrées des 30 premiers entiers positifs
ou nul.
- Construit une liste Lb formée des images de la liste La par la fonction
f (x) = sinx.
- Construit la liste L formée des couples (x, y) avec x ∈ La et y ∈ Lb. -
Afficher La, Lb et L.
Exercice 0.5. Écrire une fonction qui prend en argument un entier n > 0
et retourne le seul entier k positif ou nul tel que 2k < n < 2k+1 .

0.5 Procédures et fonctions


Définition 0.1 (fonction). Une fonction est un algorithme qui présente la
particularité de délivrer(retourner) une valeur d’un type donné que nous al-
lons appeler résultat et qui est affichée par l’instruction return

11
Définition 0.2 (procédure). Pour que l’algorithme soit utilisable en temps
voulu, il est nécessaire d’en faire une procédure c’est à dire une suite d’ins-
tructions nommé que l’on pourra appeler par ce nom chaque fois que l’on
veut l’utiliser.

• Appel d’une procédure ou d’une fonction


Elle correspond à une instruction tandis que l’appel d’une fonction corres-
pond à une valeur(la fonction n’affiche qu’une seule valeur c’est à dire un
seul résultat). Dans les deux cas on appelle par l’identificateur de la fonction
ou procédure en tenant compte des types des arguments qui sont les données.

• Comment se présentent une Fonction ou procédure en python


En fait dans l’environnement python une fonction ou une procédure se pré-
sentent de la meme manière. On écrit le mot clé ’def ’ qui signifie qu’on
défini la fonction, suivit de l’identificateur de la fonction et des parenthèses
qui contiennent eventuellement des paramètres (argruments) ensuite les deux
points : on va la ligne. ’ :’ soit
def identifcateur( a,b,...) :
Pour une fonction l’affichage peut se faire avec print( ) ou avec l’instruction
return. L’avantage de return (retourner ou envoyer) est que la valeur peut
être récupérée dans une variable. Dans le cas où il ya 0 (paramètre) argument
dans les parenthèses, la fonction peut être considérée comme une procédure.
Exemple de fonctions.

L’ordre des argument dans la fonction doit être respectée au cours de


l’exécution.
Avec python nous n’avons pas à préciser le type des arguments. En effet,
python étant un langage de typage dynamique, il reconnait les types de va-
riables au moment de l’exécution. Un autre avantage du python est que les
fonctions sont capables de renvoyer les types t-uplets.

12
La fonction python peut aussi retourner une liste.
• Variable locale variable globale
Une variable est dite locale lorsqu’elle est créée à l’intérieur de la fonction
ou de la procédure. Elle ne sera visible que lors de l’exécution de cette fonc-
tion. Une variable sera dite globale lorsqu’elle est créée dans le programme
principale. Elle sera visible partout dans le programme.

• Fonctions à variables complexes.


Avec python on peut effectuer aussi les calculs impliquant les nombres com-
plexes. 2 − 3i s’érit alors 2 − 3 ∗ 1j. si a = −2 et b = 0.5 on aura z =
complex(a, b) i.e z = −2 + 0.5j. On peut importer les fonctions du module
cmath pour effectuer les opérations sur les nombres complexes.
from cmath import sin, sinh, sqrt ; ou encore from [Link]
import sqrt .De manière plus générale on importe du package numpy tout le
le module suivant : from [Link] import *
• Fonctions récursives vs fonctions itératives

0.6 Les Modules


Définition 0.3. Dans l’univers Python on apelle module un fichier qui contient
plusieurs programmes, et ou des fonctions que l’on est souvent amené à réuti-
liser(appeler). Un module peut etre vu tout simplement comme une biblio-
thèque ou librairie.
On peut donc costruire son propre module. Considérons par exemple un
fichier nommé projet1 qui contient la fonction qui traite la suite de fibonacci,
et d’autres programmes. Pour rendre ce module disponible dans un nouveau

13
code il faut l’importer, on écrit :
import projet1
si on veut affecter le resultat de la suite de fibbonacchi à une variable lst on
écrit : lst =[Link]
On peut aussi donner un surnom au module (Allias ...) ; ainsi on pourra avoir
import projet1 as pr
et ensuite on tout simplement lst =[Link] On peut aussi décider
d’importer seulement une fonction particulière dans le module : on aura
from projet1 import fibonacci
si on veut importer d’un coup toute les fonctions du module on fait
from projet1 import*
étoile signifie all. Cette facon d’appeler est déconseillée et doit etre utiisée
exeptionellement pour un module dont on connait bien les différents noms
de programmes constituants.
La documentation python met à notre didposition des modules qui nous
permettent de faire pludeurs calculs. Voir python module index en ligne.
Exemple : les module math, time, random... Le module math contient
les fonctions mathématiques tel que cos, sin exp, pi ...
Le module mumpy permet de manipuler les matrices et des opérations en
algèbre linéaire. On peut aussi citer scipy pour le numérique, sympy pour le
calcul formel et mathplotlib pour les graphiques. En réalité mathplotlib n’est
pas simplement un module/ C’est un packet de différent modules. On dit un
package.

• Le Module numpy En réalité les trois derniers modules cités précé-


demment sont en fait des ’pakages’ i.e des ensembles de modules. Un packet
de différent modules.

• Le Module [Link] On importer le module pyplot de


mathplotlib par :
import [Link] import numpy as np

exemple :
import [Link] as plt
v0 = 5 ; g = 9.81
t = [Link](0, 1, 1001)
y = v0*t - 0.5*g*t**2
[Link](t, y)
[Link](’t (s)’)
[Link](’y (m)’)
[Link]()

14
Dans le cas où on voudra représenter 2 (plusieurs) courbes sur la même
figure par exemple pour f (t) = t2 et g(t) = et on fera :
import numpy as np
import [Link] as plt
t = [Link](-2, 2, 100)
f = t**2
g = [Link](t)
[Link](t, f, ’r’, t, g, ’b - -’)
[Link](’t’)
[Link](’f and g’)
[Link]([’t**2’, ’e**t’])
[Link](’Plotting of two functions (t**2 and e**t)’)
[Link](’on’)
[Link]([-3, 3, -1, 10])
[Link]()
On peut remarquer qu’il y a des options supplémentaires telles que la légende
le titre, la courbe en pointillé etc ...

0.7 Les Dictionnaires


A la différence des listes ou des sequences les dictionnaires sont des struc-
tures de données qui ne sont pas ordonnées. Autrement dit les éléments ne
sont pas indexés. En revanche les dico ont des clés. A chaque clé on associe
une valeur. La syntaxe est la suivante :
Dictionnaire = {”cle1” : valeur1, ”cle2” : valeur2, ”cle3” : valeur3, ...} On
crée par exemple un dictionnnaire de traduction de la facon suivante :
traduction = {”chien” : ”dog”, ”chat” : ”cat”, ”souris” : ”mouse”, ”oiseau” : ”bird”; ”singe” : ”m
Dans un dictionnaire on ne peut pas avoir la meme clé deux fois. Considérons
un second dictionnaire :
inventaire = {”bananes” : 200, ”pommes” : 400, ”poivres” : 350, ”ananas” : 1250, ”mais” : 52
On peut aussi construire un dictionnaire contenant des dictionnaires (nested
dict).
dicosigma = {”dico1” : traduction, ”dico2” : inventaire}.
Les dictionnaires sont importants pour le machine lraerning, en particulier
pour le stockage de certains paramètres des réseaux de neuronnes.
• Opérations de bases sur les dictionnaires.

on fait print(inventaire) pour aficher le dictionnaire inventaire ci-


dessus : clés + valeurs.

15
On a aussi :
la méthode [Link]() affiche dict-values([200, 400, 350,
1250, 525]) .
Pour les clés on a [Link]() affiche dict-keys([bananes, pomes,

16
poivres, ananas, mais]) .
Pour l’instant si on veut connaitre la taille de notre dictionnaire on applique
la fonction len comme pour les listes. ainsi len(inventaire)=4 ce qui signi-
fie qu’on a 4 associations.
Si on veut ajouter une association on créé une nouvelle clé et une nouvelle
valeur de la facon suivante : inventaire["choux"]=250. En affichant encore
inventaire on obtient un dictionnaire mis à jour qui contient la clé choux et
sa valeur.
On peut aussi créer undictionnaire à partir d’une liste.
Soit listecap=[’douala’, ’paris’, ’londre’, ’rabat’]
on aura [Link](listecap) qui affiche
’douala’:none, ’paris’:none, ’londre’:none, ’rabat’:none
Si on veut associer ue valeur par défaut à ces clés il suffit d’ajouter un ar-
grument choisi. soit [Link](listecap, ecolo) ainsi ecolo va
remplacer none.

On a aussi la méthode pop() qui permet d’extraire un élément dans le


dico et la valeur correspondante peut etre directement récupée dans une va-
riable. [Link](’pommes’) est récupérée par
fruit=[Link](’pommes’). Ainsi print(fruit)=400
Si on fait print(inventaire) le dico s’affiche sans les ’pommes’.

• Utilisation de la boucle for


for i in inventaire:

print(i)

affiche dict-keys([bananes, pomes, poivres, ananas, mais]) i.e les


clés.
Pour afficher les valeurs on fait :
for i in [Link]():

print(i)

pour afficher à la fois les clés et les valeurs on écrit plutot


for i,j in [Link]():

print(i,j)

17
0.8 Modèles simples du Machine Learning
• T DN 0 2

Exercice 0.6. Soit la liste de nombres L = [8, 3, 12.5, 45, 25.5, 52, 1] Triez
les nombres de cette liste par ordre croissant, en utilisant sort et sorted. La
meme question en utilisant plutot les (fonctions) méthodes min(), append()
et remove(). 2. Soit la liste de nombres Lb = [5, 1, 1, 2, 5, 6, 3, 4, 44, 2]. Enlevez
les doublons de cette liste, ensuite triez-là et affichez.

Exercice 0.7. P On se propose de réaliser un programme qui calcule la valeur


du nombre e = ( n!1 ). Ecrire tout d’abord votre propre fonction factoriel par
une méthode récursive. Cette dernière sera alors utilisée pour déterminer la
valeur de la série.

Exercice 0.8. Ecrire um proramme python itératif et un autre récursif qui


traitent la suite de fibonacci suivante : Un = Un−2 + Un−1

Exercice 0.9. Ecrire le programme qui calcule l’intégrale suivante I = ( x21+1 )dx
R

sur le segment réel [ab] on utilisera la méthode dite des rectangle (Riemann).

Exercice 0.10. Montrer que La fonction f (x) = x − 2sin(x) possède une


seule racine comprise entre 1 et 2. Déterminer une valeur approchée de cette
racine à 104 près par la recherche par dichotomie.

18

Vous aimerez peut-être aussi