Obtenez les meilleures solutions à vos questions sur Laurentvidal.fr, la plateforme de Q&R de confiance. Obtenez des réponses rapides à vos questions grâce à un réseau de professionnels expérimentés sur notre plateforme de questions-réponses. Expérimentez la commodité d'obtenir des réponses précises à vos questions grâce à une communauté dévouée de professionnels.

Bonjour j ai un exercice en nsi je comprend vraiment pas quelqu’un pourrait m’aider s’il vous plaît !!



Exercice 1: A= n²- 2n +3 (n est un entier naturel)
Ecrire un programme Python qui stocke les valeurs de A dans une liste « valeurs » pour n allant de 0 à 10, et qui
affiche cette liste.

Sagot :

Bonjour

Adapter la formule

La première étape c'est d'assurer qu'on sache retranscrire la formule de A en opérateurs que Python comprendra.

Pour ça, voici quelque tips:

  • Les multiplications (×) sont notées avec un astérisque *
  • Les soustractions et additions gardent leurs signes respectifs: + et -
  • Les exposants se notent à l'aide d'un double astérisque **

Quand on sait ça, cette étape semble bien plus simple, la formule étant:

▌ A = n**2 - 2*n + 3

Choisir la méthode

Ce qu'on nous demande de faire c'est de calculer la valeur de A pour un n allant de 0 à 10, donc il faudra faire 11 passages avec la même formule.

En Python qui dit passages rémanents dit... boucle ! On a alors deux choix possibles:

Boucle while

Puisque while signifie en français "tant que", on utilise généralement cette boucle quand on ne sait pas exactement combien de passages seront nécessaires.

Boucle for

C'est souvent la boucle qu'on utilise pour passer sur tous les éléments d'une liste ou d'un tableau. Elle permet également de faire un nombre précis de répétition puisque for peut se traduire "pour [untelle condition]".

Nous en soit on sait qu'on devra faire 11 passages (de 0 à 10 compris). On va donc choisir la méthode for.

Rappel la boucle for

Je suppose que tu as déjà vu en cours ce que c'était, je vais donc simplement te rafraichir la mémoire:

for i in range(x):

▌    code à exécuter à chaque passage (x nombre de passage)

J'ai pris i comme "itérations" (synonyme de répétition) mais n'importe quelle lettre/mot marche évidement.

On peut traduire la première ligne comme: "Pour la valeur de i dans une portée de (x)".

Ecriture du code

Ci-joint tu peux trouver le code final, j'explique ici la démarche.

1. Définition

On définit simplement le tableau "valeurs" qui est vide pour le moment.

2. Boucle for

On déclare la boucle for qui va traiter n dans une portée de 11 (0,1,2,3,...,10).

3. On pose l'équation de A

Puisqu'on est rentrés dans la boucle for, on lui dit ce qu'elle devra appliquer à chaque passage.

J'ai gardé la même présentation pour rendre ça plus compréhensible mais à nouveau les lettres choisies n'ont aucune importance, on aurait pu utiliser v au lieu de A, etc.

4. On ajoute la valeur à la liste[]

Pour ajouter une valeur à la fin d'une liste il y a la méthode .append(). C'est une fonction native de Python qu'il faut connaitre et retenir (au même titre que le print() par exemple).

5. On affiche la liste finale

Une fois qu'on est sorti de la boucle for (ce sont les tabulations qui nous l'indiquent), on peut afficher dans la console la liste des valeurs.

Valeurs de A = [3, 2, 3, 6, 11, 18, 27, 38, 51, 66, 83]

Bonus

En bonus je te mets le code pour faire l'exercice avec une boucle while, ce n'est pas la bonne méthode à employer mais comme ça tu vois au moins comment il faudrait l'utiliser.

Le principal inconvénient c'est que la machine doit vérifier à chaque passage la valeur de n, alors qu'une boucle for demande simplement de répéter x fois, ca demande moins de puissance de calcul.

Bonne journée,

Si tu as mal compris mes explications n'hésite pas à poser tes questions en commentaire

View image ClementCg
View image ClementCg