PHP compter valeur

capa57 Messages postés 383 Statut Membre -  
scriptiz Messages postés 1494 Statut Membre -
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. le père
     
    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
  2. scriptiz Messages postés 1494 Statut Membre 425
     
    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
  3. capa57 Messages postés 383 Statut Membre 13
     
    ah cool :)
    merci ça fonctionne
    0
  4. capa57 Messages postés 383 Statut Membre 13
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. scriptiz Messages postés 1494 Statut Membre 425
     
    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