1. Ecrivez une fonction qui affiche un triangle d'étoiles, et qui prend en paramètre le nombre de lignes du triangle:
* *** *****
2. Utilisez cette fonction pour afficher un sapin:
* *** * *** ***** * *** ***** ******* *
Vous devrez certainement modifier un peu la fonction écrite au point 1) afin que votre sapin ressemble à celui dessiné ci-dessus.
1. Tout l'intérêt de l'exercice réside dans la recherche de la relation entre le numéro de ligne et le nombre d'espaces et d'étoiles. Si i est le numéro de ligne, commençant à 0, et lignes
le nombre de lignes, le nombre d'espaces est donné par lignes-i-1
et le nombre d'étoiles par 2*i+1
.
1 2 3 4 5 6 7 8 9 10 11 |
void dessine_etage(int lignes) { for (int i = 0; i < lignes; i++) { for (int j = 0; j < lignes - i - 1; j++) cout << " "; for (int j = 0; j < i * 2 + 1; j++) cout << "*"; cout << endl; } } |
2. Pour obtenir le même dessin que sur l'énoncé, il faut décaler les étages du sapin en ajoutant des espaces suppléntaires. Une solution consiste à légèrement modifier la fonction dessine_etage
en lui ajoutant un paramètre spécifiant le nombre d'espaces supplémentaires.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include using namespace std; void dessine_etage(int lignes, int espaces) { for (int i = 0; i < lignes; i++) { for (int j = 0; j < espaces + lignes - i - 1; j++) cout << " "; for (int j = 0; j < i * 2 + 1; j++) cout << "*"; cout << endl; } } int main(int argc, char **argv) { dessine_etage(2, 2); dessine_etage(3, 1); dessine_etage(4, 0); dessine_etage(1, 3); return 0; } |