Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Programmation Python

Posté par
toutrevoir
05-01-19 à 14:23

Bonjour à vous,

Je suis en difficulté face à la programmation, je n'ai pas encore eu l'occasion d'apprendre quoique ce soit là-dessus...Je viens de télécharger un logiciel Python qui semble marcher, mais je suis perdue face à l'exercice qui m'est demandé:

"Ecrire en Python un programme qui, à partir (entrées) des valeurs des 2 côtés a=BC et b=AC=AB d'un triangle ABC isocèle de sommet A, calcule une valeur approchée de l'aire du triangle.
Vous testerez votre programme, au moins, pour les deux cas suivants:
a=1 et b=1
a= 3 et b=1"

J'ai déjà fait quelques recherches sur ce fameux python et son fonctionnement, tout le monde dit que c'est très facile mais quand on est seul face à langage inconnu...C'est autre chose je crois . J'ai besoin de conclure cet exercice, je ne l'ai pas commencé.
Je vous en prie, aidez-moi, je vous serai vraiment redevable.
Merci d'avance à tous ceux qui voudront bien me donner de leur temps.

Posté par
mathafou Moderateur
re : Programmation Python 05-01-19 à 15:38

Bonjour,

comme toujours la première chose à faire n'est pas de s'intéresser à Python mais d'analyser le problème d'un point de vue purement mathématique

comment faire "à la main" pour résoudre un tel problème ?
quelles seront les formules utilisées ?
pour calculer quoi ? etc

et c'est seulement là quand tout ce qu'il faut faire et l'ordre dans lequel il faut le faire sera clair et précisément écrit "mathématiquement", "en langage naturel" (= en simple français et formules)
il suffira de traduire ça dans son langage préféré (que ce soit Python ou un autre ce sera quasiment pareil à quelques "virgules de détail d'écriture" (syntaxe, mots clés etc) près.

Posté par
toutrevoir
re : Programmation Python 05-01-19 à 17:26

Merci beaucoup Mathafou!

Tu as raison, je vais commencer par cela. J'ai tendance à m'affoler rapidement quand je ne connais pas quelque chose.

Déjà, je sais que l'aire d'un triangle isocèle se calcule grâce à la formule base*hauteur/2.
Ici on nous demande de calculer l'aire grâce aux côtés b et a.
"a" est la base. Nous n'avons cependant pas la hauteur. Donc il doit y avoir utilisation du théorème de Pythagore, si on n'oublie pas de séparer en deux le triangle, et donc d'obtenir deux angles droits. Le point D appartient au segment BC, il le coupe au milieu. On a alors le segment AD (celui qui coupe le triangle BAC de façon symétrique et verticale).
Maintenant, AC est l'hypoténuse du triangle ADC. Donc AC[/sup]=AD[sup]+DC[/sup]
Alors on a: b[sup]
=h[/sup]+a[sup]
Après cela, on ne peut plus avancer sans valeur chiffrable.
Je réalise mon calcul d'abord avec a=1 et b=1
1[/sup]=h[sup]+1[/sup]
1=h[sup]
+1
1-1=h
0=h
0=h
0=h
La hauteur est égale à 0...?
Si on calcule l'aire: A= 1*0/2=0
Est-ce possible?

Deuxième proposition avec a=3 et b=1
On réitère la chose:
AC[/sup]=AD[sup]+DC[/sup]
1=h[sup]
+3
3-1=h
0,7321h

Calculons maintenant l'aire: A= 3*0,7321/20,6340

Voilà, pour l'instant est-ce que ça va aller?

Posté par
toutrevoir
re : Programmation Python 05-01-19 à 17:28

Les "sup" sont censés vouloir dire que c'est au carré...C'est pas passé correctement, désolée.

Posté par
mathafou Moderateur
re : Programmation Python 05-01-19 à 17:43

les [sup][/sup] veulent dire : "mettre en exposant ce qu'on écrit entre les balises" et rien d'autre.
si on n'écrit rien du tout entre les balises ou si on les détruit ou modifie, bien entendu ça ne marche pas
dès qu'on utilise des trucs de formatage du texte, des symboles spéciaux etc l'utilisation du bouton Aperçu avant de poster est obligatoire
(et c'est de toute façon conseillé dans tous les cas)

ce n'est pas tellement des calculs numériques que l'on attend ici
c'est du calcul littéral (sinon comment pourrait on obtenir une formule que l'on pourrait programmer ensuite ???

donc tu reprends tes calculs
- en les rendant lisible (Aperçu avant de poster et corriger jusqu'à ce que ce soit "publiable")
- rien que en littéral avec a écrit a et b écrit b

Posté par
toutrevoir
re : Programmation Python 05-01-19 à 18:06

J'ai cru que les [sup][/sup] mettaient au carré le nombre. Merci pour l'information.

Je recommence:
Déjà, je sais que l'aire d'un triangle isocèle se calcule grâce à la formule base*hauteur/2.
Ici on nous demande de calculer l'aire grâce aux côtés b et a.
"a" est la base. Nous n'avons cependant pas la hauteur. Donc il doit y avoir utilisation du théorème de Pythagore, si on n'oublie pas de séparer en deux le triangle, et donc d'obtenir deux angles droits. Le point D appartient au segment BC, il le coupe au milieu. On a alors le segment AD (celui qui coupe le triangle BAC de façon symétrique et verticale).
Maintenant, AC est l'hypoténuse du triangle ADC. Donc AC²=AD²+DC²
Alors on a: b²=h²+a²
Ça résume le reste de ma réponse précédente, qui finalement ne sert pas beaucoup puisque j'ai fait du calcul numérique.
Après cette étape, si déjà elle est bonne, j'ai du mal à imaginer comment établir une formule adaptée?

Posté par
toutrevoir
re : Programmation Python 05-01-19 à 18:08

Je dois m'en aller pour ce soir, je reviens demain au plus vite.

Posté par
mathafou Moderateur
re : Programmation Python 05-01-19 à 18:12

bein si , tu l'avais fait en numérique
je te demande de le faire en littéral mais ça va jusqu'au bout pareil

déja
AC²=AD²+DC² OK
b²=h²+a² non CD n'est pas a mais a/2

et ensuite cela donne bien h = (....)
(en littéral toujours) etc

Posté par
toutrevoir
re : Programmation Python 06-01-19 à 10:20

Bonjour,

D'accord.

b²=h²+a/2 (c'est toujours au carré le "a/2" ou pas? Normalement oui mais là j'ai un doute)

Je ne vois pas vraiment comment faire avec la première proposition...Je vais tenter quand même.
1²=h²+1/2²
1²+1/2²=h²
Aire=h


Ensuite la deuxième proposition,
1²=h²+3/2²
1²+3/2²=h²
Aire=h




  

Posté par
ZEDMAT
re : Programmation Python 06-01-19 à 10:53

En attendant Mathafou et pour que tu puisses avancer...

toutrevoir @ 06-01-2019 à 10:20

Bonjour,

D'accord.

b²=h²+a/2 (c'est toujours au carré le "a/2" ou pas? Normalement oui mais là j'ai un doute)
Tu as écrit :
AC²=AD²+DC²
Si CD = a/2
b²=h²+(a/2)²
d'où h = ....

Pourquoi vouloir en venir tout de suite aux cas particuliers ?
Calcule l'aire dans le cas général en fonction de a, de b et de h = ... avec la formule aire = 1/2*base*hauteur



Je ne vois pas vraiment comment faire avec la première proposition...Je vais tenter quand même.
1²=h²+1/2²
1²+1/2²=h²
Aire=h


Ensuite la deuxième proposition,
1²=h²+3/2²
1²+3/2²=h²
Aire=h




  

Posté par
toutrevoir
re : Programmation Python 06-01-19 à 12:55

Merci ZEDMAT, c'est gentil!

Je ne vois pas trop comment faire de formule générale avec h .
Pour moi c'est b*h/2 et j'ai du mal à imaginer une autre solution...sans avoir recours aux cas particuliers.
Est-ce b²+a/2²=h ??

Posté par
ZEDMAT
re : Programmation Python 06-01-19 à 13:56

Je ne comprends pas la raison de ton blocage.
On est en train d'établir une relation générale exprimant l'aire de ce triangle isocèle en fonction de a et b.
Donc on doit aboutir à une expression générale donnant l'aire A du triangle ABC en fonction de a et b.

Tu avais fait le plus délicat à savoir penser à tracer la hauteur [AH]....
Le théorème de Monsieur Pythagore t'a permis d'exprimer cette hauteur h en fonction de a et b.

h² = b²-(a/2)² d'où h = (b²-(a/2)²)

L'aire du triangle ABC est
A = 1/2*base*hauteur avec base = BC = a et hauteur= AH = h =  (b²-(a/2)²)

d'où l'expression de l'aire du triangle ABC en fonction de a et b :

A = 1/2*a*(b²-(a/2)²)

NB : Tu peux maintenant voir ce que donne cette formule avec les 2 cas particuliers donnés.

Posté par
ZEDMAT
re : Programmation Python 06-01-19 à 14:24

Grace à Malou, je m'entraîne en Latex

Citation :
A=\dfrac 1 2 a \sqrt{b^2-\left(\dfrac a 2\right)^2


La puissance 2 du b n'est peut-être pas très.... orthodoxe !!

Pour l'écriture de l'algorithme en langage Python, Mathafou saura mieux faire que moi

Posté par
mathafou Moderateur
re : Programmation Python 06-01-19 à 21:00

oui enfin en langage Python cet algorithme est direct de chez direct

entrées de a et de b (deux fois input())
calcul de aire =la formule ci dessus directement
sortie du résultat par un print()
terminé !

la difficulté si difficulté il y a est de mettre les bonnes parenthèses obligatoires (mais c'est exactement les mêmes qu'ici quand on écrit une formule en texte ordinaire)
et les bonnes syntaxes pour
élever au carré :
X2 peut s'écrire X*X ou X**2 (sans oublier des parenthèses si besoin)
et racine carrée de X s'écrit sqrt(X)
à condition d'avoir "importé" la bibliothèque "math" de Python)

autre façon plus intéressante de le faire : définir une fonction

def aire_iso(a, b) : # a et b sont les entrées de la fonction,
return (le calcul de l'aire, toujours la même formule)

et pour utiliser cette fonction il suffira de taper dans la console
aire_iso(1,1) et il répond la valeur de l'aire
ou aire_iso(sqrt(3), 1)

ou dans le programme de mettre print(aire_iso1(sqrt(3),1))

nota :
donner ainsi en entrée sqrt(3) ne marchera pas avec un input qui exige une valeur numérique (tapée en décimal)

d'où l'avantage de le faire via une fonction.
le faire avec un input nécessite de prendre en entrée non pas les nombres a et b mais du texte représentant ces nombres et de traduire ce texte pour l'interpréter, y compris avec toutes les opérations algébriques qu'il pourrait contenir, ce qui est plus compliqué (au niveau des connaissances requises de Python, l'écriture étant au final "presque" pareil)

Posté par
toutrevoir
re : Programmation Python 07-01-19 à 16:12

MERCI à vous deux!! Vraiment. Je comprends mieux maintenant   
Je vois déjà mieux comment faire et je vais pouvoir travailler sur des problèmes futurs en m'appuyant sur ces raisonnements, cet exemple.
Merci encore, je vous suis très reconnaissante.

Posté par
ZEDMAT
re : Programmation Python 07-01-19 à 17:16

Voilà un gentil "merci" comme on les aime

Bonne continuation.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !