<?php
//renvoie la ligne suivante d'une ligne d'un triangle de Pascal
function ligne_suivante($ligne_precedente){
$ligne_suivante = array();
$ligne_suivante[] = 1;
foreach($ligne_precedente as $i => $val){
$ligne_suivante[] = $val+
(isset($ligne_precedente[$i+1])?$ligne_precedente[$i+1]:0);
}
return $ligne_suivante;
}
//crée un triangle de Pascal
function cree_triangle_pascal($hauteur){
$triangle = array();
$ligne_courante = array(1);
$triangle[] = $ligne_courante;
for($i = 0; $i < $hauteur ; $i++){
$ligne_courante = ligne_suivante($ligne_courante);
$triangle[] = $ligne_courante;
}
return $triangle;
}
//cette fonction affiche le triangle
function affiche_triangle_pascal($hauteur){
$triangle = cree_triangle_pascal($hauteur);
echo "<table border=0 cellspacing=4>\n";
foreach($triangle as $ligne){
echo "<tr>";
foreach($ligne as $valeur){
echo "<td style='text-align:center'>".$valeur."</td>";
}
echo "</tr>\n";
}
echo "</table>";
}
//exemple d'utilisation
affiche_triangle_pascal(15);
?>