PHP compter valeur

Fermé
capa57 Messages postés 352 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 26 mai 2016 - 13 nov. 2009 à 13:18
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 16 nov. 2009 à 16:07
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;
}

A voir également:

5 réponses

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
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
13 nov. 2009 à 13:34
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
capa57 Messages postés 352 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 26 mai 2016 13
13 nov. 2009 à 13:41
ah cool :)
merci ça fonctionne
0
capa57 Messages postés 352 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 26 mai 2016 13
13 nov. 2009 à 13:47
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
16 nov. 2009 à 16:07
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