Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

programme déterminé la nature d'un quadrilatère avec ses ordonné

Posté par
AlexMANS
29-10-19 à 22:24

Bonjour je suis en spécialité NSI et nous devons faire un programme avec certaines formules sur python. Voici le programme posant problème, nous avons réussi avec un camarade à faire le reste:

def long(xa,xb,ya,yb,ab):
    ab=(((xb-xa)**2)+((yb-ya)**2))**0.5
    return ab

def angle(ab,bc,ca,ang):
    if (ab**2)+(bc**2)==ca**2:
        return int(1)

    else:
        return int(0)

xa=float(input("Abscisse de A"))
ya=float(input("Ordonnée de A"))
xb=float(input("Abscisse de B"))
yb=float(input("Ordonnée de B"))
xc=float(input("Abscisse de C"))
yc=float(input("Ordonnée de C"))
xd=float(input("Abscisse de D"))
yd=float(input("Ordonnée de D"))

ab=long(xa,ya,xb,yb,ab)
bc=long(xb,yb,xc,yc,bc)
cd=long(xc,yc,xd,yd,cd)
da=long(xd,yd,xa,ya,da)
dca=long(xc,yc,xa,ya,dca)
dbd=long(xb,yb,xd,yd,dbd)

ang=ang+angle(da,ab,dbd,ang)+angle(ab,bc,dca,ang)+angle(bc,cd,dbd,ang)+angle(cd,da,dca,ang)

print(ang)

Ce programme devrait trouver le nombre d'angle droit dans un quadrilatère ABCD, mais malheureusement il ne trouve que 1 angle.
Merci d'avance pour votre aide

Posté par
mathafou Moderateur
re : programme déterminé la nature d'un quadrilatère avec ses or 29-10-19 à 22:33

Bonjour,

tu devrais t'estimer heureux qu'il en trouve déja un !!

vu que "ang" n'a aucune valeur au départ (ça ne veut pas du tout dire 0, ça veut dire "pas définie") il va avoir du mal à calculer ton résultat !!

et de toute façon à quoi sert le paramètre d'appel "ang" dans la fonction angle(ab,bc,ca,ang) ???
on n'en fait rien du tout !

Posté par
mathafou Moderateur
re : programme déterminé la nature d'un quadrilatère avec ses or 29-10-19 à 22:40

même remarque pour :
long(xa,xb,ya,yb,ab)
ab n'est pas un paramètre d'appel (et la première chose qu'on fait c'est en détruire la valeur) !
c'est une variable interne qui sert à calculer ce qu'on va renvoyer en sortie de la fonction !!

Posté par
AlexMANS
re : programme déterminé la nature d'un quadrilatère avec ses or 29-10-19 à 23:25

excusez moi, j'ai oublié de vous mettre une partie du programme
j' ai aussi les variables:

ab=float(0)
bc=float(0)
cd=float(0)
da=float(0)
dca=float(0)
dbd=float(0)

ang=int(0)

Encore désolé je suis un peu fatigué

Posté par
mathafou Moderateur
re : programme déterminé la nature d'un quadrilatère avec ses or 30-10-19 à 00:11

ça ne change rien du tout au fait que ces paramètres d'appels là sont en trop dans toutes tes fonctions
faut pas confondre paramètre d'appel et valeur retournée par la fonction !!

en tout cas je pense avoir trouvé bien plus significatif comme erreur qu'un paramètre d'appel qui ne sert à rien :

def long(xa,xb,ya,yb):

appelée avec
ab=long(xa,ya,xb,yb)

ce mélange entre des coordonnées conduit à des calculs qui ne riment à rien !!

en corrigeant la définition en accord avec l'ordre dans lequel sont les paramètres lors des appels ça marche (essayé avec un carré incliné)
(j'ai viré les paramètre inutiles, je n'ai pas essayé de les remettre)

faut voir aussi la précision des comparaisons "==" car tout calcul sur des float est forcément une approximation
il serail plus sage de garder les calculs des carrés des distances plutot que d'en extraire les racines carrées pour les élever au carré ensuite !!

Posté par
AlexMANS
re : programme déterminé la nature d'un quadrilatère avec ses or 30-10-19 à 13:59

Merci de m'avoir fait remarqué que j'avais inversé les termes, maintenant le programme fonctionne  extrêmement bien, j'ai pu tout trouver, merci encore et bonne journée



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 !