View difference between Paste ID: p7KhTt2V and ybcKDMB9
SHOW: | | - or go back to the newest paste.
1
<?php
2-
//On met en place la fonction permettant de calculer la factorielle d'un nombre
2+
// On met en place la fonction permettant de calculer la factorielle d'un nombre
3-
function factorielle($nb){
3+
function factorielle($nb) {
4
    // On teste que c'est bien un entier positif
5-
	//On test que c'est bien un entier positif
5+
    if($nb >= 0 && is_int($nb)) {
6-
	if($nb >= 0 && is_int($nb)) {
6+
        // On affecte 1 aux variables pour être sûr qu'elles ne contiennent pas des "cochonneries"
7
        $total = 1;
8-
		//On affecte 1 aux variables pour être sûr qu'elles ne contiennent pas des "cochonneries"
8+
9-
		$total = 1;
9+
        // Traduction : Tant que $i est inférieur ou égal à $nb, on reste dans la boucle
10-
		$i = 1;
10+
        for ($i = 2; $i <= $nb; $i++) {
11
            // Comme la factorielle, c'est pour 5 par exemple 5*4*3*2*1, on va multiplier tous les chiffres de 2 à $nb (inutile de multiplier $nb par 1), $nb compris
12-
		//Traduction : Tant que $i est inférieur ou égal à $nb, on reste dans la boucle
12+
            $total = $total * $i;
13-
		while ($i <= $nb) {
13+
        }
14-
			//Comme la factorielle, c'est pour 5 par exemple 5*4*3*2*1, on va multiplier tous les chiffres de 1 à $nb, $nb compris
14+
        /*
15-
			$total = $total * $i;
15+
            A ce point là, si on voulait la factoriel de 5, voici ce qui s'est passé :
16
            - On rentre dans la boucle, $total est égal à 1, on le multiplie à $i, qui est égal à 1, on a donc 1. On ajoute 1 à $i qui vaut désormais 2.
17-
			//On incrémente $i de 1
17+
            - $i, qui vaut 2 est inférieur ou égal à $nb, qui vaut 5. Deuxième tour donc dans la boucle. On multiplie $total (qui vaut 1) à $i (qui vaut 2) et on stock ça dans $total. On a donc $total qui vaut 2. On ajoute ensuite 1 à $i, qui vaut désormais 3.
18-
			$i++;
18+
            - $i toujours inférieur ou égal à $nb, troisième tour. $total = 2, on le multiplie à 3, ça fait 6. $total vaut donc 6. On rajoute 1 à $i, qui vaut 4.
19-
		}
19+
            - $i : 4 <= à $nb, 4ème tour, $total=6, on multiplie par 4, ça fait 24. On met ça dans $total, et on ajoute encore 1 à $i qui devient 5.
20-
		/*
20+
            - $i qui vaut 5 égal à $nb, on continue dans la boucle, $total prend la valeur de $total (24) x $i (5) ce qui donne 120. On rajoute 1 à $i qui passe à 6.
21-
		A ce point là, si on voulait la factoriel de 5, voici ce qui s'est passé :
21+
            - 6 n'est plus inférieur ou égal à $nb, on arrête de tourner en rond et on sort de la boucle.
22-
		- On rentre dans la boucle, $total est égal à 1, on le multiplie à $i, qui est égal à 1, on a donc 1. On ajoute 1 à $i qui vaut désormais 2.
22+
23-
		- $i, qui vaut 2 est inférieur ou égal à $nb, qui vaut 5. Deuxième tour donc dans la boucle. On multiplie $total (qui vaut 1) à $i (qui vaut 2) et on stock ça dans $total. On a donc $total qui vaut 2. On ajoute ensuite 1 à $i, qui vaut désormais 3.
23+
            On a donc $total = 120.
24-
		- $i toujours inférieur ou égal à $nb, troisième tour. $total = 2, on le multiplie à 3, ça fait 6. $total vaut donc 6. On rajoute 1 à $i, qui vaut 4.
24+
        */
25-
		- $i : 4 <= à $nb, 4ème tour, $total=6, on multiplie par 4, ça fait 24. On met ça dans $total, et on ajoute encore 1 à $i qui devient 5.
25+
26-
		- $i qui vaut 5 égal à $nb, on continue dans la boucle, $total prend la valeur de $total (24) x $i (5) ce qui donne 120. On rajoute 1 à $i qui passe à 6.
26+
        // Il ne nous qu'à renvoyer le résultat.
27-
		- 6 n'est plus inférieur ou égal à $nb, on arrête de tourner en rond et on sort de la boucle.
27+
        return $total;
28
    }
29-
		On a donc $total = 120.
29+
    else {
30-
		*/
30+
        // Sinon on renvoit -1, comme dans l'énoncé
31
        return -1;
32-
		//Il ne nous qu'à renvoyer le résultat.
32+
    }
33-
		return $total;
33+
34-
	}
34+
35-
	else {
35+
// La fonction est donc opérationnelle, on va pouvoir l'appeler !
36-
		//Sinon on renvoit -1, comme dans l'énoncé
36+
37-
		return -1;
37+
38-
	}
38+
39
40
// Cela va afficher "La factorielle de 5 est 120"
41-
//La fonction est donc opérationnelle, on va pouvoir l'appeler !
41+
echo '<ul>';
42
echo '<li>La factorielle de ' . $n . ' est ' . $fact . '.</li>'; 
43
44
$n=3;
45-
echo "<li>La factorielle de ".$n." est ".$fact.".</li>"; //Cela va afficher "La factorielle de 5 est 120"
45+
46
47
// Cela va afficher "La factorielle de 3 est 6"
48
echo '<li>La factorielle de ' . $n . ' est ' . $fact . '.</li>';
49-
echo "<li>La factorielle de ".$n." est ".$fact.".</li>"; //Cela va afficher "La factorielle de 3 est 6"
49+
echo '</ul>';
50
51-
?>
51+
// Bonne pratique : Ne pas fermer le tag si le fichier ne contient que du PHP