420-202-RE – Exemple : classe Triangle

À titre de rappel, l'énoncé (informel) du problème était : écrire une petite classe Triangle telle que le programme suivant :

// ...
Triangle t = new(5, 'A');
t.Dessiner();
// ...

... affichera à la console la chose suivante :

    A
   AAA
  AAAAA
 AAAAAAA
AAAAAAAAA

Une solution possible suit (voir https://dotnetfiddle.net/AvrSBS pour une version incluant le programme principal) :

using System;

class Triangle
{
   public int Hauteur
   {
      get; private set;
   }
   public char Symbole
   {
      get; private set;
   }
   public Triangle(int hauteur, char symbole)
   {
      Hauteur = hauteur;
      Symbole = symbole;
   }
   public void Dessiner()
   {
      // pour chaque ligne
      for (int ligne = 1; ligne <= Hauteur; ++ligne)
      {
         // afficher blancs
         int nbBlancs = Hauteur - ligne;
         for(int i = 0; i < nbBlancs; ++i)
         {
            Console.Write(' ');
         }
         // afficher symboles
         int nbSymboles = 2 * ligne - 1;
         for (int i = 0; i < nbSymboles; ++i)
         {
            Console.Write(Symbole);
         }
         Console.WriteLine();
      }
   }
}

Valid XHTML 1.0 Transitional

CSS Valide !