C2 : Exercices

C2.E1 : Unités d'angles

Rappel de mathématiques sur les unités d'angles : 180 ° = π rad

Pour les fonctions ci-dessous, on utilisera la valeur de pi du module math.

1) Écrire une fonction radToDeg(angle_radian:float) -> float qui prend un nombre correspondant à un angle en radians en paramètre et renvoie un nombre correspondant au même angle mais en degrés.

2) Écrire la fonction inverse degToRad(angle_degres:float) -> float.

Afficher la correction
from math import pi

    def radToDeg(angle_radian:float) -> float:
        angle_degre = angle_radian * 180 / pi
        return angle_degre

    def degToRad(angle_degre:float) -> float:
        angle_radian = angle_degre / 180 * pi
        return angle_radian


    # Programme pincipal
    a_rad = pi/2
    a_deg = radToDeg(a_rad)

    b_deg = 360
    b_rad = degToRad(b_deg)

C2.E2 : Surface d'un parallélépipède rectangle

1) Écrire une fonction aire_rect(larg, long) qui prend deux nombres en paramètres et renvoie l'aire du rectangle dont les valeurs des côtés sont ces deux nombres.

Rectangle avec la largeur et la longueur

2) Écrire une fonction aire_boite(a, b, c) qui prend trois nombres en paramètres et renvoie la somme des aires des côtés d'un parallélépipède rectangle dont les trois valeurs sont les arêtes. Cette fonction devra utiliser la fonction du 1).

Parallélépipède rectangle avec ces côtés a, b et c

3) Écrire le programme principal qui permet de calculer l'aire totale de l'ensemble des côtés d'un parallélépipède rectangle dont les arêtes ont pour valeurs 3, 4, 5.

Afficher la correction
def aire_rect(larg, long):
    return larg * long

def aire_boite(a, b, c):
    aire = 2 * aire_rect(a, b) + 2 * aire_rect(b, c) +2 * aire_rect(a, c)
    return aire


# Programme principal
cote_a = 3
cote_b = 4
cote_c = 5
aire_tot = aire_boite(cote_a, cote_b, cote_c)

C2.E3 : Analyse d'un code

On considère le code ci-dessous.

def fct():
    m = randint(1,12)
    j = randint(1,31)
    a = randint(1900,2100)
    return str(j) + "/" + str(m) + "/" + str(a)

1) Expliquer en une phrase l'utilité de cette fonction.

2) Expliquer les différents éléments de la syntaxe python de la ligne 5.

3) Compléter le code de la fonction avec la docstring et les annotations de type.

Afficher la correction

1) Cette fonction renvoie une date aléatoire (entre l'année 1900 et l'année 2100) sous la forme d'une chaine de caractère au format 'jj/mm/aaaa'. On notera que la fonction peux renvoyer des dates qui n'existent pas.

2) Dans la ligne 5 :

• la fonction str sert à transformer les entiers (correspondant aux jour, au mois et à l'année) en chaines de caractères ;

• l'opérateur + agit donc entre des chaines de caractères, il sert à concaténer les différentes chaines de caractères.

3)

def fct():
    """
    Renvoie une date aléatoire sous la forme d'une chaine de caractères au format 'jj/mm/aaaa'
    Paramètres :
    Valeur renvoyée : (str) date
    """
    m = randint(1,12)
    j = randint(1,31)
    a = randint(1900,2100)
    return str(j) + "/" + str(m) + "/" + str(a)

C2.E4 : Indice de Masse Corporelle

L'indice de masse corporelle (IMC) d'un humain se calcule par la formule : IMC = masse / taille², la masse étant exprimée en kg et la taille en mètres.

1) Proposer le code d'une fonction, avec sa docstring, qui renvoie l'IMC à partir de la masse et de la taille passées en paramètres.

2) Utiliser cette fonction dans le programme principal pour calculer l'IMC d'une personne de 1,65 m ayant une masse de 53 kg.

Afficher la correction
def IMC(masse:float, taille:float) -> float:
    """
    Renvoie l'IMC à partir de la masse et de la taille
    Paramètres :
            masse : (float) masse de la personne en kg
            taille : (float) taille de la personne en m
    Valeur renvoyée : (float) IMC de la personne
    """
    return masse / taille ** 2

# Programme principal
taille_A = 1.65
masse_A = 53
IMC_A = IMC(masse_A, taille_A)