• Aucun résultat trouvé

TP10

N/A
N/A
Protected

Academic year: 2021

Partager "TP10"

Copied!
4
0
0

Texte intégral

(1)

1èreS – TP10: Mesure principale – Algorithmique, Python

1. Introduction.

L’objet de ce TP est de découvrir la notion de fonction en Python, en construisant un algorithme permettant de déterminer la mesure principale d’un angle orienté, puis en le mettant en forme en tant que fonction sous Python, et en l'utilisant dans un programme élémentaire.

2. Ecrire l'algorithme en "langage naturel"

Complétez l'algorithme suivant, qui permet de déterminer la mesure algébrique d'un angle. (On ne déclarera pas les variables)

Si x est négatif: tant que x≤ -π x←... Sinon: tant que ... x←...

3. Exemple de fonction en Python

Prenons l'exemple d'un programme affichant un tableau de valeurs de la fonction f définie sur

{ }

3 − ℝ par ( ) 1 3 x f x x − = − . for x in range(-2,6): if x == 3:

image = "f non définie" else:

image = (x-1)/(x-3) print (x , image)

On va pouvoir simplifier le programme en créant une fonction f que l'on pourra réutiliser dans d'autres programmes:

def f(x):

if x == 3:

return "f non définie" else:

return (x-1)/(x-3)

La fonction est créée, on pourra l'utiliser dans divers programmes: pour la comparer à une autre, pour la combiner à d'autres fonctions, et ci-dessous, pour en obtenir un tableau de valeurs: for x in range (-2,6):

print (x , f(x))

(2)

4. Ecrire notre algorithme sous la forme d'une fonction, en Python.

En vous inspirant de l'exemple ci-dessus, écrivez l'algorithme de la question 1 sous la forme d'une fonction, en Python.

- On aura besoin de la constante π, donc il faudra, au début du code, écrire : from math import pi - On appellera principale la fonction qui détermine la mesure principale d'un angle

- Le test "≤" se note en Python "<="

5. Utiliser notre fonction dans un programme.

Nous allons écrire un petit programme qui génère un angle au hasard, demande à l'utilisateur sa mesure principale, et lui dit si celle-ci est correcte ou non.

Pour cela, nous aurons besoin de la fonction randint qui génère un entier aléatoire dans un intervalle donné. Pour cela, au début du code, nous ajouterons: from random import randint Notre programme va générer un angle au hasard, du type A

B

π

, avec A un entier aléatoire pris entre -10 et 10, et B un entier aléatoire pris entre 1 et 8. La syntaxe de la fonction randint est par exemple: A = randint (-10 , 10)

1°) Ecrivez en Python un programme qui: - génère A

B

π

,

- demande à l'utilisateur sa mesure principale (on notera D la valeur proposée par l'utilisateur), - compare cette réponse avec le résultat donné par notre fonction principale (que l'on notera E), - et dit à l'utilisateur si sa réponse est exacte ou non.

2°) A votre avis, pourquoi l'utilisation du test E==D génère-t-elle des erreurs dans les réponses données par ce programme?

3°) Pour éviter cet écueil, on acceptera une marge d'erreur de 0.1 entre les valeurs de E et D. Modifiez votre programme en conséquence, en utilisant éventuellement la fonction abs( ) de Python, qui donne la valeur absolue d'un nombre.

(3)

1èreS –TP10: Mesure principale – Algorithmique, Python - CORRIGE

1. Introduction.

L’objet de ce TP est de découvrir la notion de fonction en Python, en construisant un algorithme permettant de déterminer la mesure principale d’un angle orienté, puis en le mettant en forme en tant que fonction sous Python, et en l'utilisant dans un programme élémentaire.

2. Ecrire l'algorithme en "langage naturel"

Complétez l'algorithme suivant, qui permet de déterminer la mesure algébrique d'un angle. (On ne déclarera pas les variables)

Si x est négatif: tant que x≤ -π

x←x+2*pi Sinon:

tant que x>pi x←x-2*pi

3. Exemple de fonction en Python

4. Ecrire notre algorithme sous la forme d'une fonction, en Python.

En vous inspirant de l'exemple ci-dessus, écrivez l'algorithme de la question 1 sous la forme d'une fonction, en Python.

5. Utiliser notre fonction dans un programme.

Nous allons écrire un petit programme qui génère un angle au hasard, demande à l'utilisateur sa mesure principale, et lui dit si celle-ci est correcte ou non.

1°) Ecrivez en Python un programme qui: - génère A

B

π

,

- demande à l'utilisateur sa mesure principale (on notera D la valeur proposée par l'utilisateur), - compare cette réponse avec le résultat donné par notre fonction principale (que l'on notera E), - et dit à l'utilisateur si sa réponse est exacte ou non.

(4)

2°) A votre avis, pourquoi l'utilisation du test E==D génère-t-elle des erreurs dans les réponses données par ce programme?

Avec les erreurs éventuelles d'approximation liées au calcul des angles, D et E ne seraont pas reconnus comme parfaitement égaux, même si la mesure principale proposée par l'utilisateur est exacte: il faut accepter une marge d'erreur.

3°) Pour éviter cet écueil, on acceptera une marge d'erreur de 0.1 entre les valeurs de E et D. Modifiez votre programme en conséquence, en utilisant éventuellement la fonction abs( ) de Python, qui donne la valeur absolue d'un nombre.

Références

Documents relatifs

Mais M.Brisse, m'ayant appris que cet algorithme avait déjà été étudié par Wronski qui le nommait fonction aleph et en avait fait un fréquent usage, je me borne à énoncer celles

La phase I (initialisation de l'algorithme ou recherche d'un sommet d'un polyèdre convexe qui se sert de la phase II comme dans l'algorithme du simplexe) est construite sous deux

On reviendra sur les relations de similarité et de divisibilité entre les sous-résultants (elles sont déjà bien connues, voir les ouvrages précités ci-dessus) grâce à de

En déduire qu’un couplage de poids minimum sur les sommets de degré impair dans T est inférieur ou égal à la moitié du poids de C opt... Préambule : technique pour montrer

Afin de rechercher plus efficacement un motif, on dispose d’une fonction de hachage H sur les mots.. Évaluer le nombre de comparaisons de

• un algorithme de multiplication de deux matrices triangulaires, l’une inf´ erieure et l’autre sup´ erieure,. • un algorithme de multiplication de deux

Ouverture en incrémentiel ou Création du fichier log_ua Ecriture dans le fichier log_ua la date début – date fin Pour chaque user agents. Mettre dans l’ordre suivant le nombre

BOUL.] , n'est pleinement effi- cace que si le nombre de points I contenu dans chaque boule est peu élevé : ce nombre devrait être de l'ordre de grandeur du nombre des