Soyez le premier à donner votre avis sur cette source.
Vue 8 612 fois - Téléchargée 446 fois
<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>
26 oct. 2010 à 17:32
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.
26 oct. 2010 à 12:10
<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é.
25 oct. 2010 à 23:34
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.
25 oct. 2010 à 17:34
Notice: Undefined index: puissance in c:\inetpub\wwwroot\triangle_pascal.php on line 20
25 oct. 2010 à 16:24
Si tu a tape un nombre dans le champ de la puissance, cela devrait fonctionner correctement.
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.