👤

Participez aux discussions sur FRstudy.me et obtenez des réponses pertinentes. Posez n'importe quelle question et obtenez une réponse détaillée et fiable de la part de notre communauté d'experts.

Bonjour, voici un exercice d’un DM de première. Je n’arrive pas à le faire. Pourriez vous m’aider s’il vous plaît car je dois l’avoir fini dans moins d’une semaine. Merci d’avance.

Comprendre un algorithme
On considère l'algorithme Langage naturel
ci-contre qui définit
la fonction racine 1,
dans lequel L est une
liste de nombres et
les variables k et n des
entiers naturels.

Ci-dessous sa traduction en langage naturel :
Fonction racine1
L <= liste vide
Pour k allant de -n à n Faire
Si ak au carré + bk + c = 0 Alors
Ajouter k à L
Fin Si
Fin pour
Retourner L
Fin fonction

Ci-dessous
sa traduction
en langage Python:
def racine1 (n, a, b, c) :
L = [ ]
for k in range (-n, n + 1) :
if a*k**2+b*k+c==0 :
L.append (k)
return L

1. À quoi correspondent les éventuelles valeurs stoc-
kées dans la liste L? Quelles sont les longueurs pos-
sibles de la liste L?
2. Exécuter à la main la fonction racine 1 dans chacun
des cas suivants.
a. n=2; a=2; b=-3 et c=1
b. n=2; a=2; b=7 et c=-15
3. Programmer et exécuter cet algorithme en
Python et vérifier les résultats obtenus à la question 2.
Qu'obtient-on en modifiant la valeur de n ?
4. Quel est le rôle de cet algorithme ? Quelles en sont
les limites?

Info :

• L'instruction python L.append(k) ajoute k à la fin de
la liste L.
• L'Instruction python len(L) renvoie la longueur de la
liste L.


Sagot :

Réponse :

Bjr,

Erreur dans l'énoncé à propos de k :

- les variables k et n des

entiers naturels

- k allant de -n à n

1. Les éventuelles valeurs de L sont solution de l'équation :

a x² + b x + c = 0

Et une solution de l'équation a x² + b x + c = 0 est une racine du polynôme a x² + b x + c.

Un polynôme de degré 2 possède 0, 1 ou 2 racines réelles.

La liste L peut rester vide ou avoir un ou deux éléments.

2.a. 2 (-2)² - 3(-2) + 1 = 8 + 6 + 1 = 15

2 (-1)² - 3(-1) + 1 = 2 + 3 + 1 = 6

2 (0)² - 3(0) + 1 = 1

2 (1)² - 3(1) + 1 = 2 - 3 + 1 = 0

2 (2)² - 3(2) + 1 = 8 - 6 + 1 = 3

Dans la liste L, on a un seul élément, le nombre 1.

b. 2 (-2)² + 7(-2) - 15 = 8 - 14 - 15 = -21

2 (-1)² + 7(-1) - 15 = 2 - 7 - 15 = -20

2 (0)² + 7(0) - 15 = -15

2 (1)² + 7(1) - 15 = 2 + 7 - 15 = -6

2 (2)² + 7(2) - 15 = 8 + 14 - 15 = 7

La liste L reste vide dans cet exemple.

3. >>> racine1(2,2,-3,1)

[1]

>>> racine1(2,2,7,-15)

[ ]

Modification de n :

>>> racine1(100,2,-3,1)

[1]

>>> racine1(100,2,7,-15)

[-5]

En changeant la valeur de n, une racine a été trouvée pour le polynôme 2 x² + 7 x - 15.

4. Cet algorithme a pour rôle d'afficher d'éventuelles racines réelles d'un polynôme de degré deux.

Limites :

- le programme teste des valeurs dans un intervalle lié à n. Les racines peuvent se situer hors intervalle.

- dans l'intervalle, le programme utilise seulement des nombres entiers. Les racines sont souvent des nombres non entiers.

- les capacités de calcul de Python dans certains cas :

On a déterminé que -5 est racine du polynôme 2 x² + 7 x - 15 et donc que -5 est solution de l'équation :

2 x² + 7 x - 15 = 0

2 x² + 7 x - 15 = 0 est équivalent à (2 x² + 7 x - 15)/3 = 0/3

On obtient le polynôme a x² + b x + c avec :

a = 2/3

b = 7/3

c = -5

-5 est aussi racine de ce polynôme.

>>> racine1(100,2/3,7/3,-5)

[ ]

Pourtant la liste L reste vide !

>>> 2/3*(-5)**2+7/3*(-5)

4.9999999999999964

Calcul qui est égal à 5 au lieu de 4,9999999999999964.

Exemple de programme Python corrigé :

def racine1 (n, a, b, c) :

   L = [ ]

   for k in range (-n, n + 1) :

       if a*k**2+b*k+c==0 :

           L.append (k)

       else:

           if abs(a*k**2+b*k+c)<10**-6 :

               print("Attention, valeur à vérifier :",k)

   return L

Et exécuté :

>>> racine1(100,2/3,7/3,-5)

Attention, valeur à vérifier : -5

[ ]

>>>

Nous sommes ravis de vous avoir parmi nous. Continuez à poser des questions et à partager vos réponses. Ensemble, nous pouvons créer une ressource de connaissances précieuse pour tous. Merci de choisir FRstudy.me. Revenez bientôt pour découvrir encore plus de solutions à toutes vos questions.