Triangle de pascal et son équation

Soyez le premier à donner votre avis sur cette source.

Vue 7 414 fois - Téléchargée 394 fois

Description

Le code crée un triangle de Pascal à partir d'un formulaire où on indique la puissance maximale que l'on souhaite. Après validation, le triangle s'affiche ainsi que l'équation de la dernière ligne.
L'équation est de la forme (x+y)

Source / Exemple :


<html>
	<head>
		<title>Triangle de Pascal -- pour une équation de la forme (x+y)²</title>
	</head>
	<body>
		<center>
			<h1>Triangle de Pascal</h1>
			<h2>pour (x+y)<sup>n</sup></h2>
			<br>
			<br>
			<p>L'axe vertical correspond à la variable x et l'axe diagonale à la variable y.<br>
			Les lignes correspondent à la puissance n à partir de 0.
			</p>
			<form method="post" action="#">
			   <p>Indiquez la puissance n : <input type="text" name="puissance" size="5" /><input type="submit"/></p>
			</form>
			<br>
			<?php
				// Definition des variables
				$puissance = (int) $_POST['puissance'];
				$colonne = $puissance + 1;
				$ligne = $puissance;
				$_tableau = '';
				$_derniere_ligne = '';
				$equation = '';
				if($puissance!='')
				{
				//Creation du tableau
					$_tableau .= '<table>';
					$_tableau .='<tr align="center"><td width="20" heignt="20"><b>n</b></td>
									<td width="20" heignt="20"><b>|x</b></td>
									<td width="20" heignt="20"><b>\y</b></td>
									</tr>';
					//Remplissage par ligne
					for ($i=0; $i<=$ligne; $i++)
					{//Repetition
					   $_tableau .='<tr align="center">';
					   for ($j=0; $j<=$colonne; $j++)
					   {
							 $_tableau .='<td width="20" heignt="20">';
							 if($j==0)
							 {//Affichage de la puissance
								$_tableau .='<b>';
								$_tableau .=$i;
								$_tableau .='</b>';
							 }
							 elseif($j==1)
							 {//Remplissage du tableau ---- 1ère cellule
								$_cell[]= 1;
								$_tableau .= 1;
							 }
							 elseif($j==$i+1)
							 {//Remplissage du tableau ---- derniere cellule
								$_cell[]= 1;
								$_tableau .= 1;
							 }
							 elseif($j>$i)
							 {//Remplissage du tableau ---- cellules situes apres la derniere cellule
								$_cell[]= '0';
								$_tableau .= '';
							 }
							 else
							 {//Remplissage du tableau ---- les autres cellules situes avant la derniere cellule
								$c = $_cell[((($i-1)*$colonne)+($j-1))-1] + $_cell[((($i-1)*$colonne)+($j))-1];
								$_cell[]= $c;
								$_tableau .= $c;
							 }
							 $_tableau .='</td>';
					   }
					   $_tableau .='</tr>';
					}
					$_tableau .='</table>';
					//Affichage du tableau
					echo $_tableau . '<br><br>';
					//Récupération de la dernièe ligne, celle qui nous interesse
					$i=$ligne;
					for ($j=1; $j<=$colonne; $j++)
					{
						$_derniere_ligne .='' . $_cell[($i * $i) + $j + $i - 1] . ',';
					}
					$derniere_ligne = explode(',',$_derniere_ligne);
					//Creation equation (x+y)
					$equation .= $derniere_ligne[0] . '.x<sup>' . $puissance . '</sup>y<sup>' . ($puissance - $puissance) . '</sup>';//La 1ere ligne est faite manuellement
					for($l=1 AND $puis=1; $puis<=$puissance AND $l<=(count($derniere_ligne)-1); $l++ AND $puis++)
					{
						$equation .= ' + ' . $derniere_ligne[$l] . '.x<sup>' . ($puissance - $puis) . '</sup>y<sup>' . ($puissance - ($puissance - $puis)) . '</sup>';
					}
					//Affichage de l'équation
					$equation_finale = '(x+y)<sup>'. $puissance . '</sup> = ' . $equation;
					echo $equation_finale;
					//FIN
				}
				else
				{}
			?>
		</center>
	</body>
</html>

Conclusion :


Tous les comentaires sont les bienvenus.
Pour ma part je ne vois rien que j'aurais pu oublier.
Si vous avez des amelioration à faire je les accepterez volontier.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
66
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
8 août 2011

@ Norton
Manip intéressante, mettre 554 (au hasard :) comme constante et lancer avec IE6/7/8, Firefox, Chrome, Opera, Safari, pour observer le comportement de chacun des navigateurs.
Messages postés
41
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Pour la forme (sans mauvais jeu de mot), ton form peut aussi devenir :
<form method="post" action="#">

Ce qui revient au même que de nommer explicitement la page, sauf que là, on évite le problème de la mauvaise redirection si le nom de la page est modifié.
Messages postés
41
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 octobre 2010

<form method="post" action="triangle_pascal.php">

devient <form method="post" action="">

Ce qui évite de devoir modifier le nom de l'action si le nom de page diffère.

Tu devrais également vérifier le contenu de l'input lors de la validation (seuls les chiffres sont autorisés).
Pa la même, vérifie la taille du chiffre donné. J'ai testé avec "554" (avec un numéro pseudo-aléatoire) et je me suis retrouvé avec un chargement de la page de 2 min. suivi d'un freeze du navigateur.
Messages postés
66
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
8 août 2011

Oui c'est vrai, mais c'est pour éviter d'avoir ce message au lancement :

Notice: Undefined index: puissance in c:\inetpub\wwwroot\triangle_pascal.php on line 20
Messages postés
4
Date d'inscription
jeudi 2 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2010

Je suis sous vista et cela fonctionne tres bien. Je corrige le nom quand même.
Si tu a tape un nombre dans le champ de la puissance, cela devrait fonctionner correctement.
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.