question

Retrouver tous les sujets résolus.
Anais

question

Message par Anais » mer. 3 nov. 2021 11:41

Bonjour,

I hope you are well.

Héron d'Alexandrie a établi la formle suivante qui donne l'aire s d'un triangle de cotés a,b,c et de demi-périmètre p.
s=√p(p-a)(p-b)(p-c)
Programmer le calcul de l'aire d'un triangle de côtés a,b,c en faisant appel à la fonction dper qui retourne le demi périmètre d'un triangle de cotés a,b,c

Je pense que la fonction dper c'est
def (a,b,c)
return ((a+b+c)/2)

Mais après je ne sais pas comment faire pourriez vous m'aider svp ?

Merci beaucoup d'avance
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 3 nov. 2021 13:28

Bonjour
Oui c’est bon pour ta fonction dper
Il faut ensuite la réutiliser pour calculer l’aire avec la formule de Héron
Il faut d’abord que tu importes la fonction racine carrée dans Python

Code : Tout sélectionner

import math
Puis tu définis une fonction aire_héron prenant en paramètres les trois côtés a, b et c du triangle

Code : Tout sélectionner

def  aire_heron(a,b,c):
p=dper(a,b,c)
aire=math.sqrt(…..)
return aire
Je te laisse terminer
Bonne continuation
Anais

Re: question

Message par Anais » mer. 3 nov. 2021 14:11

Merci beaucoup !
Moi je dois l'écrire sur papier et non pas sur ordi mais je pense que ça revient à faire la même chose.
Par contre pourriez vous me redire ce que c'est sqrt ?
Merci beaucoup !
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 3 nov. 2021 14:54

Bonjour
La fonction sqrt est la racine carrée en langage Python
Bonne continuation
Anais

Re: question

Message par Anais » mer. 3 nov. 2021 15:00

D'accord mais pourquoi en avons nous besoin ici d'une racine carrée ?

Pour moi dans la formule pour calculer l'aire d'un triangle c'est juste coté*coté (ceux de l'angle droit)/2... Donc il ny a pas de racine carrée

Merci
SoS-Math(33)
Messages : 3480
Enregistré le : ven. 25 nov. 2016 14:24

Re: question

Message par SoS-Math(33) » mer. 3 nov. 2021 15:14

Bonjour,
tu as besoin de la racine carrée pour la formule de Héron
\(s=\sqrt{p(p-a)(p-b)(p-c)}\)
SoS-math
Anais

Re: question

Message par Anais » mer. 3 nov. 2021 15:17

Oulaoulala je suis un peu perdue pouvez vous me réexpliquer svp...
Merci !!!
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 3 nov. 2021 16:22

Bonjour,
le but de ton exercice est de programmer le calcul de l'aire d'un triangle en se servant de la formule de héron :
\(V=\sqrt{(p-a)(p-b)(p-c)}\)
Où \(p=\dfrac{a+b+c}{2}\) est le demi-périmètre.
On décompose ce problème en calculant d'abord séparément le démi-périmètre d'un triangle à l'aide de la fonction dper qui prend en paramètres les trois côtés d'un triangle et qui renvoie le demi-périmètre de ce triangle :

Code : Tout sélectionner

def dper(a,b,c):
    p = (a+b+c)/2
    return p
Tu peux ensuite utiliser la formule de Héron. Or, celle-ci utilisant une racine carrée, il faut pouvoir disposer de celle-ci en langage Python, c'est pour cela que je t'avais suggéré l'import du module math.
Tu as donc la fonction aire_heron qui prend en paramètres les trois côtés d'un triangle et qui renvoie l'aire de celui-ci :

Code : Tout sélectionner

import math # pour pouvoir utiliser la racine carrée
def aire_heron(a,b,c):
    p = dper(a,b,c)
    aire = math.sqrt(.....)
    return aire    
Est-ce plus clair ?
Je te laisse compléter les pointillés à l'aide de la formule de héron.
Bonne continuation
Anaïs

Re: question

Message par Anaïs » mer. 3 nov. 2021 17:21

Oui merci infiniment pour toutes ces explications !

Faut il mettre (p-a*p-b*p-c) dans la parenthèse ?

Merci encore
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 3 nov. 2021 17:24

Bonjour,
oui, c'est bien cette expression qu'il faut mettre à condition que tu mettes bien des parenthèses autour de chaque facteur (p-a)*(p-b)*(p-c).
Bonne conclusion
Anais

Re: question

Message par Anais » mer. 3 nov. 2021 18:24

C'est bon, grâce à vous j'ai pu finir cette exercice.

Le pb c'est que j'en ai encore deux d'exercice que je n'arrive pas mais je crains que cela ne vous embêtent trop si je vous pose des question dessus...
SoS-Math(33)
Messages : 3480
Enregistré le : ven. 25 nov. 2016 14:24

Re: question

Message par SoS-Math(33) » mer. 3 nov. 2021 18:29

Bonjour Anais,
tu ne nous embêtes pas, les modérateurs sont là pour aider.
Tu peux continuer à poser tes questions, un modérateur y répondra.
SoS-math
Anais

Re: question

Message par Anais » mer. 3 nov. 2021 18:35

Ooh merci beaucoup (certes je ne vous connais pas mais je vous adore) !
Donc 1ere exercice
On considère l'algorithme ci contre, dans lequel la variable N est un entier non nul, et les variables A et B sont de type flottant.
A<-2/N
B<-1/N+1/2N+1/3N+1/6N
C<-(A=B)

1.Programmer cet algorithme en utilisant une fonction d'argument N et qui retourne la valeur de C.
2. On verra après svp car il faut utilisé la question 1

Déjà là je ne sais pas ce que c'est des variables flottantes...

MERCi
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 3 nov. 2021 18:58

Bonjour,
pour faire simple, un langage comme Python manipule des données qui peuvent être de différents types.
Il connaît les entiers (type int) mais ne connaît pas les réels au sens mathématique du terme. Il manipule des nombres décimaux qui sont un sous-ensemble des nombres réels, on les appelle des flottants (type float).
Tu n'as pas à te soucier de cela pour résoudre ton exercice puisque c'est Python qui va gérer le typage en fonction de la donnée à stocker.
Si tu déclares a=8, il reconnait un entier donc a sera du type int.
Si tu déclares a=3/4, il reconnait un flottant donc a sera du type float.
Pour transformer une séquence d'instructions en une fonction, il suffit d'envelopper cette séquence dans un bloc de fonction.
Cela commence par def suivi du nom de la fonction puis des parenthèses qui entourent les arguments de la fonction.
Ensuite on met deux points : puis on saute à la ligne pour entrer dans le bloc de la fonction.
On écrit les instructions définissant cette fonction
puis on termine par l'instruction return qui va renvoyer une expression construite dans le bloc de la fonction

Code : Tout sélectionner

def calcul(N):
    ... # tu mets ta séquence ici
    ...
    ...
    return C
Est-ce plus clair ?
Anais

Re: question

Message par Anais » mer. 3 nov. 2021 18:59

Oui, tout est clair pour moi la dedans merci !
Répondre