Le triangle, les variables globales

Petit nouveau ! | 3 Messages

21 déc. 2005, 19:37

salut a tous. Voila je debute dans php, j'ai un exo a faire mais j'ai aucune idée de ce kil faut faire. Pouvez vous m'aider SVP? merci

Je ne vous demande pas de me faire l'exo mais si possible de me donner les clés pour savoir comment faire (j'ai regardé sites spécialisés php et tutoriaux mais je trouve rien qui m'aide). Je suis vraiment débutante, quelle galère...

Voici l'énoncé :
"Le triangle, les variables globales et locales et les fonctions"

1.Ecrire un programme php qui permette d'afficher un triangle rectangle constitué du caractère *. Utiliser une variable taille pour parametrer la taille du triangle (i.e., le nombre de lignes), affecter cette variable a 5.

résultat attendu :
Triangle de taille 5

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

2. Avant d'afficher le triangle, ajouter des tests sur la valeur du parametre taille :
-si elle est superieure à 20, afficher le message "triangle trop grand" et n'afficher pas le triangle.
-si elle est egale à 0, lui attribuer une valeur de 10.
-Sinon afficher le triangle de la taille passée en parametre.
testez votre code php en modifiant la valeur de la taille (recharger la page à chq modif).


On m'a dit que pour faire un triangle c for () mais je sais pas quoi en faire (a part des tableaux html je sais pas faire grand chose) :shock: :?: :?:

Mammouth du PHP | 1311 Messages

21 déc. 2005, 19:47

il faut creer un tableau a 2 dimensions
et le parcourir avec une boucle for ou foreach

Mammouth du PHP | 19672 Messages

21 déc. 2005, 19:47

Bien, ce sont des bases de la programmation.

Si tu observes le triangles que tu as dessiné, il y a un détail qui ne t'aura sans doute pas échappé`au ajoute 1 * à chaque nouvelle ligne.

Tu as également mentionné for() : donc, une boucle. On va créer une boucle et à partir de 1 jusqu'à n (passé en paramètre), tu va ajouter 1 à chaque tour, donc 1, 1+1, 2+1, 3+1 etc...

De quoi as-tu besoin ? D'un petit formulaire html tout bête pour saisir le nombre, de récupérer ce paramètre lors de l'envoi et d'appeler ensuite ta fonction pour exécuter la création des lignes en vérifiant la valeur du paramètre envoyé.

Alors première question : sais-tu récupérer une valeur envoyée par un formulaire en PHP ?

[Note] : Sujet déplacé vers "Débuter en PHP [/Note]
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

21 déc. 2005, 20:31

en html je c juste faire ca :

<htlm>
<head>
<title>Exercice 8 -a de php</title>
</head>
<body>
Triangle de taille 5<br><br>*<br>**<br>***<br>****<br>*****<br></body>
</html>

ms c pa ce kon me demande puiske on veut du php.

Non je ne sais pa comment recuperer une valeur. Tu parles de formulaire html, ms je connais ca juste pour selectionner le nombre de voyageurs (par exemple), reductions etc... (<FORM>...</FORM>) dc je ne vois pas trop le rapport avec mon triangle (mais il y en a forcement un...)

Une autre personne m'a conseillé ceci :
déjà pour faire le triangle : for()

si il est trop grand :

if($num_triangle > 20)
echo '<p>le triangle demandé est trop grand</p>';

si il est == 0, attribuer 10 :

if($num_triangle == 0)
$num_triangle = 10;

et pour la derniere tu le fais dans ta boucle ^^
Est-ce que ca va dans le meme sens ke ta proposition?

ViPHP
fab
ViPHP | 2657 Messages

21 déc. 2005, 21:06

function draw_triangle($lines) // lines est un parametre numéric
{
  $triangle = '';
  for($i=1;$i<$lines;$i++) // pour i compris entre 1 et "lines"
  {
    $nbr_stars = $lines; // nombre d'étoiles sur la ligne
    $stars_line = ''; // on initialise la ligne qui sera envoyé au naviguateur
    for($a=0;$a<$nbr_stars;$i++) // on boucle par avoir le nombre d'étoile correct sur la ligne
    {
       $stars_line .= '*'; // on ajoute une étoile a la ligne
    }
   $stars_line .= '<br>'; // on ajoute un <br> en fin de ligne
   $triangle .= $stars_line; // on ajoute la ligne au triangle
  }
  return $triangle;
}
apres pour l'utilisation je te laisse deviné :), niveau performances ça doit pas etre terrible j'ai fais au plus simple :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 353 Messages

21 déc. 2005, 22:47

Il faut utiliser str_repeat au lieu de refaire une boucle