Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Programmation Python

Posté par
Elvis2018
12-11-18 à 23:05

Bonjour,

Voici l'énoncé de mon exercice :

Écrire 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, calculé 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=racine carrée de 3 et b=1

J'ai réussi à faire un programme qui fonctionne mais j'ai un problème avec la racine carrée, Python bloque...

Merci de votre aide.

Posté par
mathafou Moderateur
re : Programmation Python 12-11-18 à 23:08

Bonjour,

"J'ai réussi à faire un programme qui fonctionne
mais" donc qui ne fonctionne pas

mais si tu veux qu'on te dise ce qui ne fonctionne pas, peut être que donner ton programme ici serait un peu nécessaire, tu ne penses pas ?

Posté par
Elvis2018
re : Programmation Python 12-11-18 à 23:13

Pardon...

Voici mon programme :

from math import*


print ("Entrez les côtés de votre triangle")
a=float(input("Donner la valeur de a:"))
b=float(input("Donner la valeur de b:"))
aire = b/2 * sqrt(a**2 - b**2 / 4)
print("L'aire du triangle est environ:")
print(round(aire,2))

Posté par
matheuxmatou
re : Programmation Python 12-11-18 à 23:16

ben faudra revoir l'aire d'un triangle isocèle ! de base a

Posté par
mathafou Moderateur
re : Programmation Python 12-11-18 à 23:53

il est très bien ce programme
que lui reproches tu ?

que répondre en entrée le texte "sqrt(3)" ne marche pas ?
c'est normal, un texte n'est pas un nombre !
pour traduire des textes en exécution des calculs contenus dans ce texte il faut bien plus que float(...) !!
et je ne pense pas que ce soit du niveau ni que ce soit demandé !!
en tout cas je ne sais pas faire ça en Python

tu prends ta calculette et tu tapes racine de 3 dessus et tu copies colle la valeur de la calculette vers la zone de saisie de Python.

autre méthode : une fonction et pas un programme !

def aire(a,b) :
aire = b/2 * sqrt(a**2 - b**2 / 4)
print("L'aire du triangle est environ:")
return (round(aire,2))


et dans la console Python on tapera
aire(1,1)
et il répondra ce qu'on attend car il affiche la valeur de retour de la fonction

ou bien
aire(sqrt(3),1) et ça marchera !
car il évalue sqrt(3) avant de le transmettre comme valeur d'argument à la fonction.

Posté par
matheuxmatou
re : Programmation Python 12-11-18 à 23:56

mathafou
mais la formule de l'aire me semble fausse non ?
a est la base ...

Posté par
mathafou Moderateur
re : Programmation Python 12-11-18 à 23:58

matheuxmatou oui, (j'ai mal relu la formule tapée par rapport à mon brouillon ! raa)
le calcul est faux mais à part ça le principe est bon et le problème de Elvis2018 est très certainement ce que j'ai dit : on ne peut pas entrer "sqrt(3)" dans la zone de saisie d'un"input" et espérer qu'il va prendre la valeur de sqrt(3) comme nombre saisi !

Posté par
matheuxmatou
re : Programmation Python 13-11-18 à 00:00

mathafou
ah oui ça je suis d'accord...

Posté par
matheuxmatou
re : Programmation Python 13-11-18 à 00:02

mathafou (cette fois c'est pas moi qui voit plus clair )

Posté par
Elvis2018
re : Programmation Python 13-11-18 à 00:09

Merci à tous les 2, oui, c'etait bien mon problème !

J'ai mis a /2 à la place de b/2.

Bonne nuit.

Posté par
matheuxmatou
re : Programmation Python 13-11-18 à 00:10

ben dans la racine c'est faux aussi !

Posté par
Elvis2018
re : Programmation Python 13-11-18 à 12:49

Merci, j'ai corrigé.

Posté par
matheuxmatou
re : Programmation Python 13-11-18 à 13:54

pas de quoi

Posté par
alb12
re : Programmation Python 13-11-18 à 14:53

salut,
programmer en python dans Xcas permet de beneficier du calcul formel
il faut eviter de donner le meme nom à la fonction et à la variable locale

Posté par
mathafou Moderateur
re : Programmation Python 13-11-18 à 15:04

il faut eviter de donner le meme nom à la fonction et à la variable locale
c'est bien d'accord, ce fut une erreur.

surtout que la variable locale ne sert pas à grand chose en fait :

def aire(a,b) :
print("L'aire du triangle est environ :")
return (round(a/2 * sqrt(b**2 - a**2 / 4) ,2))

parce que si on veut détailler les calculs dans le programme par des variables intermédiaires, tant qu'à faire :

h=sqrt(b**2 - a**2 / 4)
S = a*h/2

etc

Posté par
alb12
re : Programmation Python 13-11-18 à 19:04

je trouve que c'est encore mieux car plus lisible.



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 1675 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 !