Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : pythagore, rectangle, triangle, hypoténuse, géométrie Niveau : Débutant Date de création : 18/12/2007 Date de mise à jour : 19/12/2007 13:52:55 Vu / téléchargé: 10 596 / 43

Note :
4 / 10 - par 2 personnes
4,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Ce script comprend 2 fonctions :
-calculer la longueur de l'hypoténuse d'un triangle rectangle : fonction hypotenuse()
-calculer la longueur d'un autre côté : fonction pythagore()
-savoir si un triangle est rectangle : fonction isRectangle()
--------------------------------------------------------------------
D'après le théorème de Pythagore (je suis en 4° donc en plein dedans lol !!)
 

Source

  • <?php
  • //theoreme
  • function hypotenuse($cote1,$cote2) {
  • // Si un triangle est rectangle, alors le carre de la longueur de l'hypoténuse est égal a la somme
  • // des carrés de longueurs des deux autres cotes
  • if($cote1 && $cote2)
  • {
  • $hyp_carre=pow($cote1,2)+pow($cote2,2);
  • $hyp=sqrt($hyp_carre);
  • return $hyp;
  • }
  • else
  • {
  • return false;
  • }
  • }
  • function pythagore($cote1,$cote2) {
  • if($cote1 && $cote2)
  • {
  • $tmp=array($cote1,$cote2);
  • sort($tmp);
  • $cote=pow($tmp[1],2)-pow($tmp[0],2);
  • $cote=sqrt($cote);
  • return $cote;
  • }
  • else
  • {
  • return false;
  • }
  • }
  • //reciproque
  • 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 !
  • $tmp=array($cote1,$cote2,$cote3);
  • sort($tmp);
  • $long_hyp=pow($tmp[2],2);
  • $long_cote=pow($tmp[1], 2)+pow($tmp[0],2);
  • if($long_hyp==$long_cote)
  • return true;
  • else
  • return false;
  • }
  • echo hypotenuse(4,3);
  • //affiche 5
  • echo pythagore(5,3);
  • //affiche 4
  • if(isRectangle(4,3,5))
  • echo '<p>rectangle !!!</p>';
  • else
  • echo '<p>Pas rectangle,ou argument manquant</p>';
  • //affiche <p>rectangle !!!</p>
  • ?>
<?php 
//theoreme
function hypotenuse($cote1,$cote2) {
// Si un triangle est rectangle, alors le carre de la longueur de l'hypoténuse est égal a la somme
// des carrés de longueurs des deux autres cotes
	if($cote1 && $cote2)
	{
		$hyp_carre=pow($cote1,2)+pow($cote2,2);
		$hyp=sqrt($hyp_carre);
		return $hyp;
	}
	else
	{
		return false;
	}
}

function pythagore($cote1,$cote2) {
	if($cote1 && $cote2) 
	{
		$tmp=array($cote1,$cote2);
		sort($tmp);
		$cote=pow($tmp[1],2)-pow($tmp[0],2);
		$cote=sqrt($cote);
		return $cote;
	}
	
	else
	{
	return false;
	}
}

//reciproque
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 !
	$tmp=array($cote1,$cote2,$cote3);
	sort($tmp);
	$long_hyp=pow($tmp[2],2);
	$long_cote=pow($tmp[1], 2)+pow($tmp[0],2);
	if($long_hyp==$long_cote)
	 return true;
	else
	 return false;
}

echo hypotenuse(4,3);
//affiche 5

echo pythagore(5,3);
//affiche 4

if(isRectangle(4,3,5))
echo '<p>rectangle !!!</p>';
else
echo '<p>Pas rectangle,ou argument manquant</p>';
//affiche <p>rectangle !!!</p>
?>

Conclusion

Avez-vous des remarques sur mon code, sa propreté ?
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

19 décembre 2007 10:02:26 :
La fonction isRectangle trouve automatiquement quel est le plus grand côté.
19 décembre 2007 10:16:55 :
Alégement du code
19 décembre 2007 13:52:55 :
Rajout de la fonction pythagore(), qui calcule la longueur d'un cote d'un triangle rectangle qui n'est pas l'hypoténuse.

Commentaires et avis

signaler à un administrateur
Commentaire de neigedhiver le 18/12/2007 22:15:57

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.

signaler à un administrateur
Commentaire de lucas74 le 18/12/2007 22:32:35

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.

signaler à un administrateur
Commentaire de malik7934 le 19/12/2007 09:41:18

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é...

signaler à un administrateur
Commentaire de malik7934 le 19/12/2007 09:42:02

Oubliez le "(avec max)", sort va très bien pour ça...

signaler à un administrateur
Commentaire de lucas74 le 19/12/2007 09:56:18

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;
}
}

signaler à un administrateur
Commentaire de xaraan le 23/12/2007 14:23:25 7/10

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.

signaler à un administrateur
Commentaire de zoukozouko le 25/12/2007 17:34:43 1/10

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...

signaler à un administrateur
Commentaire de lucas74 le 25/12/2007 19:38:45

ok merci beaucoup

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

help plz [ par rours ] voila mon probleme,&nbsp;&nbsp; j ai une carte de la france avec plusieur rectangle dessus, chacun de ces "rectangle " est un lien vers un autre site, un piti coup de pouce plz ;D [ par rours ] bon voila, j ai une carte de la france avec des gros rectangle, je veu que lorsque je lick sur les rectangle une page s'affiche(sa c bon je sai le fai Problème fonctions GD [ par puisea ] Bonsoir, alors je d&#233;bute&nbsp; en fonctions GD pour faire des figures math&#233;matiques simples enfin bref, je test d&#233;ja une partie de code Ne pas afficher rectangle blanc et croix rouge [ par bakalai ] Bonjour,Je cherche a ne pas afficher le rectangle blanc avec la croix rouge sous Internet Explorer.J'ai essayé avec Mozilla et Opera c'edt OK.Voici le Motif de remplissage d'un rectangle (avec imagefilledrectangle ?) [ par flexx ] BonjourAfin de différencier les différentes zones d'un graphique généré en PHP lors d'une impression en noir &amp; blanc, je souhaiterais remplacer la


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.