Revenir
Revenir

Algorithme et programmation

Voici un programme écrit en langage Python.

Sommaire

Le langage PythonRecherche de racine de 2 par balayageLe crible d'Eratosthène en langage Python

Le langage Python

Voici un programme écrit en langage Python.
nombre = input("Écris un nombre entier positif :")
nombre = int(nombre)
i = 2
while i < nombre and nombre%i != 0 :
      i = i + 1
if i == nombre :
     print("Vrai")
else :
     print("Faux")
1.Traduire cet algorithme en langage naturel.
2.Tester ce programme avec les nombres 
23  ;  66  ;  107  ;  65523\;;\;66\;;\;107\;;\;65523;66;107;655
 et 
220912209122091
.
3. La ligne 8 indique l'affichage du texte "Vrai" sous certaines conditions. Expliquer celles-ci puis proposer un autre texte que "Vrai" afin que la phrase affichée permette de mieux comprendre ce que fait ce programme.

Recherche de racine de 2 par balayage

Le nombre 
2\sqrt{2}2​
 est le nombre réel positif tel que 
x2=2x^2=2x2=2
, ce qui équivaut à 
x2−2=0x^2-2=0x2−2=0
.
Nous savons que
\sqrt{2}
est un nombre compris entre 1 et 2.
Nous voulons trouver une valeur approchée de 
2\sqrt{2}2​
.
Pour cela, nous allons procéder par balayage : la méthode par balayage est une technique utilisée en mathématiques pour trouver une solution approchée à un problème ; elle consiste à explorer les possibilités dans un intervalle donné jusqu'à ce que l'on trouve une solution avec la précision souhaitée.
Dans le cas de la recherche d'une valeur approchée de
\sqrt{2}
, la méthode par balayage peut consister à tester différentes valeurs de
xxx
dans l'intervalle [1, 2] jusqu'à ce que l'on trouve une valeur qui satisfait l'équation
x^2 - 2 = 0
avec une précision suffisante.
Voici le programme Python utilisé :
def f(x):
        return x**2-2
def balayage (n) :
        """ Renvoie un encadrement de la solution f(x)=0 avec une largeur de 10**-n"""
        pas = 10**-n
        x = 1
        while  f(x) <0:
             x = x + pas
       x_mini = x - pas
       x_maxi = x
       return (round(x_mini, n), round(x_maxi, n))
1.On veut obtenir un encadrement à
10−310^{-3}10−3
 près de
2\sqrt{2}2​
. Tester le programme. Quel est l'encadrement obtenu ?
2.On veut obtenir un encadrement à
10−510^{-5}10−5
 près de
2\sqrt{2}2​
. Tester le programme. Quel est l'encadrement obtenu ?

Le crible d'Eratosthène en langage Python

Voici un programme Python qui réalise le crible d’Ératosthène.
def eratosthene(n):
    L = [ i for i in range(2,n+1) ]
    P = [ ]
    while len(L) != 0:
        P.append(L[0])
        i = L[0]
        for k in L:
            if k % i == 0:
                del(L[L.index(k)])
    return P
1.Que signifie la fonctionlen(L), en ligne 6 ?
2.Que veut dire la fonctionP.append(L[0]), en ligne 7 ?
3.Que signifie la fonction%, en ligne 11 ?
4.Tester ce programme pour
n=100n=100n=100
.