Programmer en Python en 2nde

Fonctions : exercices

Crédits

Toute la structure html/css/js et une partie du contenu ont été réalisés par Nicolas Buyle-Bodin professeur au lycée Lacassagne, avec l'aide de Jean-Manuel Mény, professeur au lycée de la plaine de l'Ain. Ils ont travaillé pendant plusieurs centaines d'heures pour créer un site de formation à destination des enseignants du secondaire de l'académie de Lyon d'une grande qualité visible sur le portail Mathématiques du site académique. Ils ont eu la gentillesse de placer leur code source sous licence Creative Commons BY-NC-SA Respect de la Paternité - Pas d'utilisation commerciale - Partage des conditions initiales à l'identique..

Nous les en remercions chaleureusement.

Géométrie analytique

On considère le plan muni d'un repère orthonormal.

  1. Écrire une fonction coord_vecteur(xA, yA, xB, yB) qui retourne le couple de coordonnées du vecteur lié d'origine A et d'extrémité B.
  2. Écrire une fonction coord_milieu(xA, yA, xB, yB) qui retourne le couple de coordonnées du milieu d'un segment à partir des coordonnées de ses extrémités.
  3. Écrire une fonction distance(xA, yA, xB, yB) qui retourne la distance séparant les points de coordonnées (xA, yA) et (xB, yB).
    La fonction racine carrée se trouve dans le module math et s'appelle sqrt, pour l'utiliser dans un script, il faut d'abord l'importer avec l'instruction suivante :
    
    from math import sqrt
    print(sqrt(3))
        
        
    1.7320508075688772
            
  4. Écrire une fonction coord_symetrique(xA, yA, xB, yB) qui retourne le couple de coordonnées du symétrique du point A par rapport au point B.

					
					
  • Solution Question 1
  • Solution Question 2
  • Solution Question 3
  • Solution Question 4

def  coord_vecteur(xA, yA, xB, yB):
    return (xB - xA, yB - yA)
        

def  coord_milieu(xA, yA, xB, yB):
    return ((xA + xB)/2.0, (yA + yB)/2.0)
        

from math import sqrt

def distance(xA, yA, xB, yB):
    return sqrt((xB - xA) ** 2 + (yB - yA) ** 2)
        

def coord_symetrique(xA, yA, xB, yB):
    return (2 * xB - xA, 2 * yB - yA)
        

modules math et random.

  1. La surface $S$ en mètres carrées de la peau d'un adulte est donnée approximativement par la formule $S=\frac{\sqrt{L \times M}}{6}$ où $L$ est la taille de l'individu en mètres et $M$ sa masse en kilogrammes.
    • Vérifier que la surface corporelle d'un individu de $1,8$ m et $75$ kg est d'environ $1,94~\text{m}^{2}$.
    • Écrire une fonction Python surface(L, M) qui retourne la surface corporelle d'un adulte. On importera la fonction sqrt du module math
  2. En utilisant la fonction random() du module random, écrire en Python une fonction qui retourne un nombre aléatoire dans l'intervalle $[0;2[$ puis une fonction qui retourne un nombre réel aléatoire dans l'intervalle $[1;3[$
  3. En utilisant la fonction randint() du module random, écrire en Python une fonction qui retourne la somme des faces de deux dés cubiques équilibrés dont les faces sont numérotées de $1$ à $6$.

					
					
  • Solution Question 1
  • Solution Question 2
  • Solution Question 3

from math import sqrt

def surface(L, M):
    return sqrt(L * M)/ 6

print(surface(1.8, 75))
        
Et on vérifie le résultat de la question 1 :
1.9364916731

from random import random

def aleatoire1():
    return 2 * random()

def aleatoire2():
    return 1 + aleatoire1()
        

from random import randint

def somme2de():
    return randint(1, 6) + randint(1, 6)
        

trois paramètres.

Écrire une fonction en Python spécifiée comme suit :

Paramètres un entier h, un entier m, un entier s
Valeur renvoyée le temps en secondes correspondant au cumul de h heures, m minutes et s secondes
  • Un code possible

def temps_secondes(h, m, s):
    return h*3600 + m*60 + s
	
h, m, s = 2, 16, 42
print(" {} heures, {} minutes, {} secondes  correspondent à {} secondes.".format(h, m, s, temps_secondes(h, m, s)))