PHP compter valeur

Bonjour,
voilà mon code

$taille=$_GET['taille'];

if ($taille <=0)
{
for ($i = 1; $i <= 10; $i++)
{
for ($k = 1; $k <= $i; $k++)
{
echo "* ";
}
echo '<br />';
}
}
if ($taille >20)
{
echo " mettre valeur inférieur a 20";
echo "</p>";

}
else if ($taille <20 and $taille >0)
{
for ($i = 1; $i <= $taille; $i++)
{
for ($k = 1; $k <= $i; $k++)
{
echo "* ";
}
echo '<br />';
}
}

exemple il donne ceci :

*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *

J'aimerais compter le nombre d'étoiles qu'il y a ... comment on fait pour compter les valeurs, je bloque

J'ai testé ceci mais ce n'est pas ça je pense
for ($i = 1; $i<=$taille; $i++)
{
$total=$i + ($i+1) ;
echo $total;
}

Configuration: Windows XP Internet Explorer 6.0

5 réponses

  1. Coucou !

    Ça avance à ce que je vois :)

    ton calcul du total n'est pas logique. Tu devrais ajouter $i à ton total à chaque boucle, plutôt que de calculer $i+($i+1), c'est à dire 2*$i+1. Qu'est-ce que ce 2*$i+1 représente ?
    Et tu ne devrais pas afficher le total à chaque passage dans la boucle, mais seulement une fois sorti

    Mais le plus simple c'est d'augmenter $total de 1 chaque fois que tu fais echo '*'. Même si tu changes d'algorithme, ça comptera toujours les étoiles.
    0
    1. Bonjour, voici un exemple pour compter tes étoiles, j'ai améliorer la gestion de ton script aussi :

      <?php
      if(isset($_GET['taille']))
      	$taille = intval($_GET['taille']); 
      else
      	$taille = 10;
      
      if ($taille <= 0) 
      { 
      	echo "Mettre une valeur supérieure à 0 !";
      	$taille = 10;
      } 
      else if ($taille > 20) 
      { 
      	echo "Mettre une valeur inférieure ou égale à 20 !"; 
      	echo "<br />";
      	$taille = 20;
      } 
      
      $compteur_etoiles = 0;
      for ($i = 1; $i <= $taille; $i++) 
      { 
      	for ($k = 1; $k <= $i; $k++) 
      	{ 
      		echo "* "; 
      		$compteur_etoiles++;
      	} 
      	echo '<br />'; 
      }  
      echo "<p>Il y a ".$compteur_etoiles." étoiles.</p>";
      ?>


      Exemple en mettant page.php?taille=7 :
      * 
      * * 
      * * * 
      * * * * 
      * * * * * 
      * * * * * * 
      * * * * * * * 
      Il y a 28 étoiles.
      0
      1. ah cool :)
        merci ça fonctionne
        0
        1. oui , mais il y a un petit soucis quand le nombre que je rentre en paramètre est supérieur a 20 il ne faut PAS qu'il m'affiche de triangle, dans ce cas là si je comprends bien il m'affiche 20 étoiles quand meme
          0
          1. Oui en effet, remplace ce code :
            else if ($taille > 20) 
            { 
            	echo "Mettre une valeur inférieure ou égale à 20 !"; 
            	echo "<br />";
            	$taille = 20;
            } 


            Par ceci si tu veux qu'il s'arrête :
            else if ($taille > 20) 
            { 
            	echo "Mettre une valeur inférieure ou égale à 20 !"; 
            	exit();
            } 
            0