LONGUEUR DE L'HYPOTENUSE, LE TRIANGLE EST-IL RECTANGLE PYTHAGORE

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 18 déc. 2007 à 22:15
cs_lucas74 Messages postés 18 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 10 février 2009 - 25 déc. 2007 à 19:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45111-longueur-de-l-hypotenuse-le-triangle-est-il-rectangle-pythagore

cs_lucas74 Messages postés 18 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 10 février 2009
25 déc. 2007 à 19:38
ok merci beaucoup
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
25 déc. 2007 à 17:34
Y en a dejà 10 000 des sources comme ça ici.
C'est pas un site qui sert à se faire évaluer, ("Avez-vous des remarques sur mon code, sa propreté ? ")sur va sur le forum pour ça...
Là tu n'apportes rien a personne, ce genre de source existe de partout.
Donc si tu dois poster une source, c'est qu'avant tu as cherché si elle n'existait pas déjà... pour ne pas polluer le site de sources inutiles...
xaraan Messages postés 6 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 14 janvier 2008
23 déc. 2007 à 14:23
C'est un bon exercice pour débuter. Je te conseillerais d'appliquer les modifications proposées dans les commentaires mais aussi de réunir toutes fonctions dans une classe "statique" (classe abstraite et méthodes statiques) Triangle, par exemple.
cs_lucas74 Messages postés 18 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 10 février 2009
19 déc. 2007 à 09:56
Only variables can be passed by reference
pour le code :
function isRectangle($cote1,$cote2,$cote3) {
// Si le carré de la longueur du plus grand coté d'un triangle est égal à la somme des carrés
// des longueurs des deux autres cotés, alors ce triangle est rectangle !
if($cote1 && $cote1 && $cote2)
{
$tab=sort(array($cote1,$cote2,$cote3));
$long_hyp=pow($tab[2],2);
$long_cote=pow($tab[1], 2)+pow($tab[0], 2);
if($long_hyp==$long_cote)
return true;
else
return false;
}
else
{
return 0;
}
}
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
19 déc. 2007 à 09:42
Oubliez le "(avec max)", sort va très bien pour ça...
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
19 déc. 2007 à 09:41
En géométrie, une triangle rectangle a FORCEMENT son hypothénuse qui est le plus grand côté puisqu'elle fait 2 fois le rayon, ce qui est la longueur max possible (rappelons qu'un triangle rectangle s'inscrit dans un cercle).

Donc, pour faire plaisir à NEIGEDHIVER, il suffit de récupérer l'argument le plus grand (avec max) et de regarder si la racine de la somme des carrés des deux autres a la même valeur:

function isRectangle($a,$b,$c){
$tmp = sort(array($a,$b,$c));
$hyp = $tmp[2];
$cote1 = $tmp[0];
$cote2 = $tmp[1];
return ($hyp && (pow($hyp, 2) == (pow($cote1, 2) + pow($cote2, 2))));
}
// pas testé...
cs_lucas74 Messages postés 18 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 10 février 2009
18 déc. 2007 à 22:32
Ok merci je vois ça demain !
Je vais rechercher dans mon bouquin une fonction pour comparer des nombres, et je code ça !
@+ et joyeuses fêtes lol.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 déc. 2007 à 22:15
Salut,

Juste pour alléger le code :

function estRectangle($hyp, $cote1, $cote2) {
return ($hyp && (pow($hyp, 2) == (pow($cote1, 2) + pow($cote2, 2))));
}

C'est plus léger, et je pense que c'est plus performant, parce qu'il n'y a pas de boucle if.

Ce qui serait plus intéressant, c'est de pouvoir passer les longueurs des côtés en arguments dans n'importe quel ordre. Avec ton code, on suppose qu'on sait forcément quel est le plus grand côté. Ce qui oblige à un traitement avant (dans le cas de calculs automatisés), et c'est un petit peu dommage.
Rejoignez-nous