Le but de cet exercice est de dessiner des carrés emboités les uns dans les autres en utilisant des lettres. Voici un exemple pour les lettres 'o', 'x', 'i' et 'u' :
uuuuuuu uiiiiiu uixxxiu uixoxiu uixxxiu uiiiiiu uuuuuuu
Tout au centre se trouve la première lettre 'o'. Cette lettre est entourée par un carré de 'x'. Ce carré est lui même entouré d'un carré de 'i'. Enfin un carré de 'u' entoure l'ensemble de la figure.
La séquence des lettres à utiliser pour dessiner les carrés vous est donnée en entrée, en commençant par les lettres à utiliser pour dessiner les petits carrés du milieu.
Vous devez afficher des carrés imbriqués les uns dans les autres comme décrit dans le sujet (et aussi dans l'exemple ci-dessous).
entrée :
5 carre
sortie :
eeeeeeeee errrrrrre errrrrrre erraaarre erracarre erraaarre errrrrrre errrrrrre eeeeeeeee
Nous vous proposons des indications pour lire l'entrée et afficher la sortie, en C++ et Caml, afin que vous ne risquiez pas d'être bloqué là-dessus. Il n'est pas du tout obligatoire de les utiliser.
Entrée-Sortie en C++
#include <stdio.h> const int MAX_NB_LETTRES = 300; int nbLettres; char lettres[MAX_NB_LETTRES+1]; int main() { scanf("%d%s", &nbLettres, lettres); // affichage du dessin ... putchar(lettres[idLettre]); // pour afficher une lettre ... putchar('\n'); // pour retourner à la ligne ... return 0; }
Note : la variable "nbLettres
" contient le nombre de lettres, et "lettres[idLettre]
" contient la idLettre-ème lettre (pour idLettre
compris entre 0
à nbLettres-1
inclus).
Entrée-Sortie en Caml
open Printf;; let nbLettres, lettres = Scanf.scanf " %d %s" (fun x y -> x,y);; ... print_char lettres.[idLettre]; (* pour afficher une lettre *) ... print_char '\n'; (* pour retourner à la ligne *) ...
Note : la variable "nbLettres
" contient le nombre de lettres, et "lettres.[idLettre]
" contient la idLettre-ème lettre (pour idLettre
compris entre 0
à nbLettres-1
inclus).